COMP1140 Data Structures and Algorithms II
First Year Course
|
Offered By
|
School of Computer Science
|
|
Academic Career
|
Undergraduate
|
|
Course Subject
|
Computer Science
|
|
Offered in
|
Second Semester, 2010 and Second Semester, 2011
|
|
Unit Value
|
6 units
|
|
Course Description
|
This course, and its prequel, COMP1130 Data Structures and Algorithms I, will study problem solving using programming languages, data structures and algorithms. The mode of delivery will be via problem seminars which will be seeded by an academic who will introduce a problem, typically associated with his/her research area. Each problem will be worked on by the students who will report in class on their solutions. The problems will be selected to be appropriate vehicles for the students to use to learn about various syllabus topics. After the completion of both courses, students will have improved their problem solving abilities and have implemented algorithms in at least two languages, including a functional one and an object-oriented one.
|
|
Learning Outcomes
|
Upon completion of this course, the student will be able to: - describe the concepts of an object-oriented programming language (Java).
- given the specification of a simple task, write an Eiffel program to perform that task.
- in the context of an Eiffel program involving several programmer-written classes and several library classes:
- systematically determine program properties such as class relationships (client diagram, inheritance diagram) and flow properties (control flow diagram, data flow diagram),
- systematically determine the run-time behaviour of the program, and
- write a narrative description of selected program properties.
- given an appropriate specification, modify the behaviour of a given program within by such techniques as
- changing relevant program parameters,
- modification of relevant routine bodies,
- class extension, and
- construction of new classes.
- complete the implementation of an Eiffel class, given as specification of the required behaviour of the class.
- analyze alternatives among simple data-structures -- stacks, queues, and arrays, for example -- and select the most appropriate structure for a simple task.
- explain and analyze alternatives among simple algorithms -- sorting and searching, for example -- and select the most appropriate for a simple task.
- reason about the correctness of a simple program fragment given a description of its required behaviour.
- apply their knowledge of regular expressions to devise regular expressions and to match target phrases (strings).
- apply their knowledge of testing principles to select appropriate test data for an individual software routine.
- identify economic implications of the software life cycle to the process of software construction.
- identify the invariant of a simple loop.
- apply the technique of recursion to implement simple requirements.
- independently use selected writings in computing to analyse and explain technical computing problems.
|
|
Indicative Assessment
|
Assignments (30%); Final exam (70%)
|
|
Workload
|
Approximately 2 hours per week
|
|
Areas of Interest
|
Computer Science
|
|
Requisite Statement
|
Enrolment in BCS (Honours) or permission from Head of Computer Science.
|
|
Prescribed Texts
|
Alfred V. Aho and Jeffrey D. Ullman, Foundations of Computer Science, C Edition, 1995.
|
The information published on the Study at ANU 2010 website applies to the 2010 academic year only. All information provided on this website replaces the information contained in the Study at ANU 2009 website.