Computing Science 1P (Standard Route) COMPSCI1001
- Academic Session: 2026-27
- School: School of Computing Science
- Credits: 20
- Level: Level 1 (SCQF level 7)
- Typically Offered: Runs Throughout Semesters 1 and 2
- Available to Visiting Students: Yes
- Collaborative Online International Learning: No
- Curriculum For Life: No
Short Description
The CS1P course is designed for students with good foundational computational thinking skills - that is, a solid understanding of basic programming concepts and the ability to solve simple unseen programming problems from scratch with no assistance. The course reviews this foundation and then builds on it by developing students' ability to reason about elements of the software development process, including for example, complexity of algorithms, rigorous testing techniques and problem solving methodologies.
Timetable
Lectures 44 taught at 2 per week and a 2-hour laboratory/tutorial session weekly throughout the session. One of the lecture sessions each week may take the form of a large group tutorial.
Requirements of Entry
Eligible students should have a Grade B or above in Higher Mathematics, or a Grade C in Higher Mathematics AND a Grade B or above in Higher Computing/Information Systems, or a suitable equivalent.
Excluded Courses
CS1CT, CS1PX
Co-requisites
None
Assessment
Examination 60%, Class Tests 20%, Laboratory examinations 20%.
Main Assessment In: April/May
Are reassessment opportunities available for all summative assessments? No
It is the default expectation that all courses will offer opportunities for reassessment or deferred assessment. Where it is not possible to offer this in some assessment components, the grade achieved at the first attempt will be counted towards the final course grade, and any exceptions for this course are described below.
[No exceptions]
Course Aims
The aim of the CS1P course is to review and build on students' existing programming skills in order to develop analytic skills critical for embedding sound software engineering practices.
Intended Learning Outcomes of Course
By the end of the course students will be able to:
1. Design, implement, and evaluate programs using fundamental programming constructs, including functions, iteration, recursion, types, strings, files, sequences, maps, sets, sorting, searching, exceptions, classes and arrays;
2. Recognise and apply procedural, functional, event-driven, and object-oriented programming to solve a given problem;
3. Identify, select, and apply appropriate techniques, libraries, and algorithms to solve a given problem;
4. Read and reason about code, and clearly articulate understanding of code in terms of structure, behaviour, correctness, efficiency, style and idiom.
5. Communicate their understanding of a problem and solution approach clearly, design top-level plans for a problem, and translate these plans into a working program;
6. Analyse the time complexity of a program using Big-O notation, and write a efficient code to solve a given problem;
7. Identify different types of errors that can occur in a program, deploy testing strategies to fix these errors, and build robust programs to solve a given problem.