Unit name | Programming and Algorithms II |
---|---|
Unit code | COMS10001 |
Credit points | 20 |
Level of study | C/4 |
Teaching block(s) |
Teaching Block 2 (weeks 13 - 24) |
Unit director | Dr. Burghardt |
Open unit status | Not open |
Pre-requisites |
COMS10002 Programming and Algorithms I |
Co-requisites |
none |
School/department | Department of Computer Science |
Faculty | Faculty of Engineering |
Developing software for diverse platforms increasingly requires an agile understanding and use of various programming approaches. The main aim of this unit is to ensure that students develop competence, confidence and agility as programmers, and are able to handle and effectively implement some key algorithms. The unit introduces the concepts of object orientation and scripting exemplified on Java and JavaScript; these paradigms complement existing student knowledge in procedural and functional programming. Fundamental graph and search algorithms are discussed alongside their implementation making use of standard data structures from software libraries. First principles of software engineering and testing are discussed across language paradigms and illustrated by good example. The theoretical content of the unit is complemented by incremental software development in small groups with the objective to construct a client-server application built in stages.
Successful completion of this unit will enable students to:
2 lectures per week supported by a combination of programming labs, problem classes, seminars and project work
85% - programming courseworks; 15% - viva oral examination; plus formative lab assessments
The unit does not rely on a particular textbook. However, reading suggestions include the following two books:
- Head First Java (by Kathy Sierra and Bert Bates), 2nd Edition, O'Reilly Media, ISBN 0596009208
- Java Precisely (by Peter Sestoft), 2nd Edition, MIT Press, ISBN: 9780262693257