Syllabuses - UG

CS251 - Programming 2

TIMETABLETEACHING MATERIAL
Credits30
Level2
SemesterTerm 1, Term 2, Term 3
AvailabilityAvailable to participants taking UG Graduate Apprenticeship programmes such as BSc Hons IT: Software Development.
PrerequisitesCS112 Programming 1 or equivalent experience (knowledge of Java programming).
Learning Activities Breakdown24 tutorials, online study, programming exercises and assessed work (see below).
AssessmentThe class is assessed 100% by coursework consisting of short programming tests in terms 1, 2 and 3 (worth 25%), class tests in terms 1 and 2 (worth 40%) and a programming project in term 3 (worth 35%).
LecturerStuart Gale

Aims and Objectives

The aim of the class is to further participants’ skills in object-oriented programming, provide knowledge of key abstract data types along with their implementation and usage, and to provide experience in the development of larger scale software. The main goal is for participants to be able to develop larger programs with specialised data structures and utilising APIs from a specification. Participants will also gain an analytical and empirical appreciation of the behaviour of algorithms and the use of abstract data types.

Learning Outcomes

After completing this class participants will be able to: 

  • Understand and be able to implement a range of fundamental abstract data types. 
  • Understand a number of essential algorithms that are closely associated with these data types. 
  • Use these algorithms and abstract data types in practical applications. 
  • Make a critical assessment of the performance of different implementations of algorithms and abstract data types. 
  • Appreciate a number of fundamental computational problems, and be aware of real-world instances of those problems.

Syllabus

The class will begin with a short revision of the concepts covered during year 1, CS112 Programming 1, e.g. Java basics, base types, objects, special types, selection, iteration, input/output, object-oriented design, inheritance, interfaces, abstract classes, exceptions. 

 The following topics will then be covered. 

  1. ADTs: Lists, Stacks, Queues, Sets, Trees, Graphs, Maps. Collections. Generics. Iterators. 
  2. Algorithms: Searching and Sorting. Graph Traversal Algorithms. 
  3. Efficiency and Complexity of Algorithms and Data Structures. 

Recommended Reading

This list is indicative only – the class lecturer may recommend alternative reading material. Please do not purchase any of the reading material listed below until you have confirmed with the class lecturer that it will be used for this class.

Recommended reading will be suggested by the lecturer via the Myplace, the University's VLE. 

Last updated: 2022-12-14 14:50:45