Computing Science - 1P Programming COMPSCI1001

  • Academic Session: 2016-17
  • 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
  • Available to Erasmus Students: Yes

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.


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





Examination 60%, Class Tests 20%, Laboratory examinations 20%.

Main Assessment In: April/May

Are reassessment opportunities available for all summative assessments? No

Reassessments are normally available for all courses, except those which contribute to the Honours classification. For non Honours courses, students are offered reassessment in all or any of the components of assessment if the satisfactory (threshold) grade for the overall course is not achieved at the first attempt. This is normally grade D3 for undergraduate students and grade C3 for postgraduate students. Exceptionally it may not be possible to offer reassessment of some coursework items, in which case the mark achieved at the first attempt will be counted towards the final course grade. Any such exceptions for this course are described below. 


The coursework cannot be redone because the feedback provided to the students after the original coursework would give any students redoing the coursework an unfair advantage.

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. Identify and use core computational concepts and data structures as exemplified in one or more programming languages;

2. Identify and apply a range of techniques for solving problems;

3. Explain solutions to problems at various levels of abstraction;

4. Amend existing programs to adjust or correct their functionality;

5. Program in contexts involving text, numbers and graphics;

6. Produce top-level plans with refinements;

7. Translate well-structured plans into working programs;

8. Explain the similarities and differences between at least two computational paradigms, e.g. procedural and functional;

9. Deploy testing strategies to identify and correct semantic errors in programs;

10. Analyse programs with a view to assessing their complexity;

11. Augment programs with error and event handling capabilities;

12. Develop user-defined data structures as part of the solution to problems;

13. Incorporate advanced techniques in solutions to problems, e.g. recursion;

14. Identify a number of standard algorithms, e.g. sorting and searching, and incorporate them effectively in solutions to problems;

15. Communicate their understanding of problems and their solutions clearly.

Minimum Requirement for Award of Credits

Students must submit at least 75% by weight of the components (including examinations) of the course's summative assessment, and satisfy requirements on attendance and formative assessment as laid out in course documentation.