Introduction to Object Oriented Programming COMPSCI2001
- Academic Session: 2026-27
- School: School of Computing Science
- Credits: 10
- Level: Level 2 (SCQF level 8)
- Typically Offered: Semester 1
- Available to Visiting Students: Yes
- Collaborative Online International Learning: No
- Curriculum For Life: No
Short Description
This course extends students' experience in programming using a strongly typed language and strengthens their problem solving skills. Students will learn the ideas that underpin object-oriented programming and will apply those concepts in developing small and medium sized software systems. Students will also learn to select and re-use existing software components and libraries, and will gain experience in concurrent programming and elementary graphical user-interface (GUI) development.
Timetable
Two 1-hour lectures per week, one 1-hour Tutorial/Examples class per week, one 2-hour laboratory session per week.
Requirements of Entry
Entry to Level 2 Computing Science is guaranteed to students who achieve a GPA of B3 or better in their level 1 courses at the first sitting. All others would be at the discretion of the School.
All grades for Computing Science courses must be at D3 or better at either attempt.
Excluded Courses
Java Object Oriented Software Engineering 2
Co-requisites
None
Assessment
1 hour degree examination (60%), 2 hour laboratory examination (15%), best 6 laboratory exercises (3% each -- 18% total), Peer Review (4%), quizzes (3%).
Main Assessment In: December
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
■ To further develop the students' experience in programming using a strongly typed language and strengthen their problem solving skills;
■ To introduce the ideas that underpin object-oriented programming and ensure students gain the ability to appropriately utilise these concepts in developing small and medium sized software systems;
■ To develop the ability to select and re-use existing software components and libraries from a limited subset of standard libraries;
■ To introduce and develop practical experience in concurrent programming, and to explore a variety of concurrency control mechanisms.
Intended Learning Outcomes of Course
By the end of this course students will be able to:
1. Use all features of the Object Oriented programming languages required to build substantial single-threaded programs;
2. Describe the object model of a language;
3. Explain the significance of the single and multiple inheritance hierarchies; and of implementation and interface inheritance;
4. Explain the purpose of, and pitfalls inherent in, concurrent programming;
5. Demonstrate elementary object-oriented design skills;
6. Build well-structured Object Oriented programs of moderate size using the fundamental class libraries appropriately.