Software Engineering BSc/MSci

Computing Science 1PX (Alternate Route) COMPSCI1017

  • Academic Session: 2023-24
  • School: School of Computing Science
  • Credits: 10
  • Level: Level 1 (SCQF level 7)
  • Typically Offered: Semester 2
  • Available to Visiting Students: Yes

Short Description

This course assumes core computational thinking skills and is designed to be a natural follow-on from the CS1CT course for those who decide they wish to continue their study of Computing Science. The course develops students' ability to reason about elements of the software development process, including for example, complexity of algorithms, rigorous testing techniques and problem solving methodologies.


Wednesday and Friday at 12-1 in Semester 2

Excluded Courses





Assignment (40%)

Exam (60%)

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

This course aims to develop in students the core computational thinking skills that are required to be able to understand, reason about, and manipulate the computational systems surrounding us, both natural and artificial.

Intended Learning Outcomes of Course

By the end of this course students will be able to:

1. Produce top-level plans with refinements;

2. Translate well-structured plans into working programs;

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

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

5. Augment programs with error and event handling capabilities;

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

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

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

9. 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.