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 the unit is to ensure that students develop competence, confidence and agility as a programmer, and become able to comprehend and analyse some key algorithms. The unit will familiarise students with key intellectual tools to implement and analyse algorithms – quick code is no good if the algorithm it implements is slow! For instance, we look at algorithmic complexity and validity using classic algorithms like sorting. The object oriented programming paradigm will be studied and Java will be introduced as an example language. In conjunction, first principles of software engineering will be studied across language paradigms and illustrated by good example. Theoretical content is complemented by incremental software development in increasingly complex projects.
Successful completion of this unit will enable students to:
An average of 3 lectures per week; supported by programming labs (which should last no less than 2 hours)
50% coursework and 50% exam
The unit does not rely on a particular textbook. However, reading suggestions include the following books:
- Head First Java by Kathy Sierra and Bert Bates, 2nd Edition, O'Reilly Media, ISBN:0596009208
- Head First Design Patterns by Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra, O'Reilly Media, ISBN: 0000596007124
- Java Precisely by Peter Sestoft, 2nd Edition, MIT Press, ISBN: 9780262693257
- Introduction to Algorithms by Cormen, Leiserson, Rivest, Stein, 3rd Edition, MIT Press ISBN: 978-0262533058