Undergraduate 

Software Engineering BSc/MSci

Introduction to Object Oriented Programming COMPSCI2001

  • Academic Session: 2024-25
  • 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

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.

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 (2%), quizzes (5%). 

Main Assessment In: December

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 student redoing the coursework an unfair advantage.

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.

Minimum Requirement for Award of Credits

Submission of at least one laboratory exercises; attendance at laboratory exam and degree exam.