production
Skip to Content

CS1527: OBJECT ORIENTED PROGRAMMING (2018-2019)

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
Term Second Term Credit Points 15 credits (7.5 ECTS credits)
Campus Old Aberdeen Sustained Study No
Co-ordinators
  • Dr Wei Pang

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

What other courses must be taken with this course?

None.

What courses cannot be taken with this course?

None.

Are there a limited number of places available?

No

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 30 August 2024 for 1st term courses and 20 December 2024 for 2nd term 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.

Feedback

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

    • Knowledge & understanding of common practices in programming, object oriented programming, classic algorithms and data structure implementation
    • Understanding of the need for principled approaches to programming problems: ability to think algorithmically: to break a problem down into various components, translating these component problems into data structures and algorithms that solve it.
    • The ability to use existing programming tools, frameworks and systems, and to build systems.
    • Practical skill: Modular programming (object-oriented programming, dealing with components, separate modules, standalone runnings outwith the IDE, the inclusion of libraries etc)
    • Practical skills in Test-driven development, Unit testing, Code management and versioning
    • Transferable skills: Ability to apply programming techniques to a wide class of challenging problems.

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.