1 x 1-hour lecture-2 weekly 1 x 2-hour lecture-1 weekly 1 x 2-hour laboratory weekly 3 x 13-hour project works per semester
1 of COMP1102, ENGR1721, COMP1201, ENGR1206
Enrolment not permitted
1 of COMP8801, ENGR2701, ENGR8701 has been successfully completed
Basic Java programming ability as acquired in COMP1102. Students without the assumed knowledge should check with the topic coordinator as to the background required, as there will be no additional assistance to compensate for missing background.
This topic provides a second-level exploration of programming, with an emphasis on the data structures that frequently occur in programming problems and the algorithms for traversing and manipulating such structures. The syllabus is built around the theme of data abstraction using object- oriented programming; the main working language is C++, The topic includes an introduction to C++ for students already familiar with another language such as Java.Specific areas covered include:
Basic data representations, including arrays, records, and strings
Key object-oriented computational techniques, including exception handlers, inheritance, recursion, and dynamic memory allocation
Fundamental linked data structures such as lists, stacks, trees, and graphs, together with the pointer and reference operations for manipulating them
Algorithmic strategies, including brute force, divide-and-conquer, and branch-and-bound approaches
An introduction to algorithmic analysis, including complexity classes and an appreciation for space-time tradeoffs
Fundamental computing algorithms, including a variety of common searching, sorting, and traversal algorithms
This topic aims to equip students with the skills needed to solve programming problems of moderate complexity, such as applications that provide an interface to real-world data. The focus is on object-oriented techniques for representing and manipulating program data using either predefined components or custom-designed components.
Expected learning outcomes
At the completion of the topic, students are expected to be able to:
Understand and appropriately use the language and terminology of data abstraction and object-oriented programming
Describe common data structures and choose appropriate data structures for specific application needs
Write code to build and manipulate common linked data structures
Understand and appropriate use the language and terminology of algorithm analysis
Determine the time and space complexity of simple algorithms
Describe the advantages and disadvantages of different algorithmic approaches in specific application contexts
Implement common searching and sorting algorithms
Read C++ programs and use C++ to solve simple data abstraction problems
Key dates and timetable
Timetable details for 2020 are no longer published.
This information is from current details held on the Student Information System. Please report any errors or omissions to the relevant College Office.
If you consent to the use of our cookies then please click the button below:
If you do not consent to the use of all our cookies then please click the button below. Clicking this button will result in all cookies being rejected except for those that are required for essential functionality on our website.