Skip to Content


Last modified: 22 May 2019 17:07

Course Overview

This course will build on the basic programming skills acquired in the first half-session and equip the students with advanced object oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The students will be challenged with more complicated programming problems through a series of continuous assessments.

Course Details

Study Type Undergraduate Level 1
Session Second Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus Old Aberdeen Sustained Study No
  • Dr Wei Pang

What courses & programmes must have been taken before this course?

What other courses must be taken with this course?


What courses cannot be taken with this course?


Are there a limited number of places available?


Course Description

This course uses Python as the programming language and builds on the basic programming skills acquired in CS1022. This course aims to give students a more solid grounding in programming and further builds up the students’ confidence in developing larger and more sophisticated programs for problem solving as well as further career development.

This course includes three components: (1) object oriented programming, (2) data structure and algorithms, and (3) software engineering basics. The object oriented programming (OOP) includes an introduction of the concepts and practice of OOP, OOP in Python, Python modules, object-oriented analysis, design, and testing. The data structure and algorithms component covers fundamental data structures and their related algorithms, such as stacks, queues, linked lists, trees, maps, dictionaries, and hash tables. The software engineering basics covers design patterns, UML, versioning (git), Python programming best practice, and agile development.

 The course will challenge students with a series of practical exercises and mini-projects.

Further Information & Notes

Assistive technologies may be required for any student who is unable to use a standard keyboard/mouse/computer monitor. Any students wishing to discuss this further should contact the School Disability Coordinator.

Contact Teaching Time

Information on contact teaching time is available from the course guide.

Teaching Breakdown

More Information about Week Numbers

Details, including assessments, may be subject to change until 31 August 2023 for 1st half-session courses and 22 December 2023 for 2nd half-session courses.

Summative Assessments

1st attempt: Three mini assessments containing one or more programming problems (10% each); Mini Project which involves the development of a piece of complicated software and writing a report for the project (40%); Mini projects which involves the development of a piece of complicated software and writing a report for the project. (30%)

Resit: where a student fails the course overall they will be afforded the opportunity to resit those parts of the course that they failed (pass marks will be carried forward).

Formative Assessment

There are no assessments for this course.


Formative feedback for in-course assessments will be provided in written form. Additionally, formative feedback on performance will be provided informally during practical sessions.

Course Learning Outcomes

Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.