- Student Records
Programme & Unit Catalogues


CM20221: Advanced programming principles (a)

Follow this link for further information on academic years Academic Year: 2015/6
Further information on owning departmentsOwning Department/School: Department of Computer Science
Further information on credits Credits: 12
Further information on unit levels Level: Intermediate (FHEQ level 5)
Further information on teaching periods Period: Academic Year
Further information on unit assessment Assessment Summary: CW 40%, EX 60%
Further information on unit assessment Assessment Detail:
  • Coursework (CW 20%)
  • Coursework (CW 20%)
  • Examinations (EX 60%)
Further information on supplementary assessment Supplementary Assessment: CM20221A Mandatory Extra Work (where allowed by programme regulations)
Further information on requisites Requisites: Before taking this module you must take CM10227 AND take CM10228
In taking this module you cannot take CM20214
Further information on descriptions Description: Aims:
To give students a practical understanding of different programming paradigms. To give students a deeper understanding of algorithms. To provide students with techniques to compare different programming languages and paradigm and to assess their effectiveness for different problem domains.

Learning Outcomes:
On completion of this unit, students will be able to:
1. To be able to write, and to understand the behaviour of, programs in different programming paradigms
2. To understand more complex data structures and the algorithms that operate on them.
3. To be able to categorise programming languages by their characteristics into the standard categories.

Skills:
Use of IT (T/F, A), Problem Solving (T/F, A).

Content:
As CM20214, viz. the following.
* Programming Paradigms: In this part we look at functional, logic, programming and procedural programming paradigms and discuss their differences and provide different techniques to write programs in these languages. Doing so, we talk about a number of development techniques like event driven, extreme programming and agile development techniques. Programs will be written in languages like: Java, Haskell, Prolog, Lisp, answer set programming, C or C++.
* Algorithms: We look at heaps, AVL trees and similar more complex data structures and the sorting and search algorithms. Furthermore, we talk about lexical analysis, parsing and type checking techniques. To do so, we introduce formal grammars and intermediate code representations.
* Comparative programming languages: We talk about the pre-history of computing (Pascal, Babbage and Turing, etc.) and about computer science started as an industry and as a subject. We introduce the four classical families using example languages such as Lisp, C++, Fortran, Cobol, Snobol, Icon, Apl, Perl, Fortran 90. We examine in detail several new programming languages to understand where they fit in the families and what they offer that is new.
* Basic AI principles: We will introduce the main AI search principles: A
*-search, min-max and others. Furthermore, we look at the way knowledge is represented and how we can reason about it.
Further information on programme availabilityProgramme availability:

CM20221 is Compulsory on the following programmes:

Department of Computer Science
  • USCM-AFB20 : BSc(Hons) Computer Science and Mathematics (Year 2)
  • USCM-AAB20 : BSc(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
  • USCM-AKB20 : BSc(Hons) Computer Science and Mathematics with Year long work placement (Year 2)
  • USCM-AFM14 : MComp(Hons) Computer Science and Mathematics (Year 2)
  • USCM-AAM14 : MComp(Hons) Computer Science and Mathematics with Study year abroad (Year 2)
  • USCM-AKM14 : MComp(Hons) Computer Science and Mathematics with Year long work placement (Year 2)

CM20221 is Optional on the following programmes:

Department of Mathematical Sciences
  • USMA-AFB15 : BSc(Hons) Mathematical Sciences (Year 2)
  • USMA-AFB15 : BSc(Hons) Mathematical Sciences (Year 3)
  • USMA-AAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 2)
  • USMA-AAB16 : BSc(Hons) Mathematical Sciences with Study year abroad (Year 4)
  • USMA-AKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 2)
  • USMA-AKB16 : BSc(Hons) Mathematical Sciences with Year long work placement (Year 4)
  • USMA-AFB13 : BSc(Hons) Mathematics (Year 2)
  • USMA-AFB13 : BSc(Hons) Mathematics (Year 3)
  • USMA-AAB14 : BSc(Hons) Mathematics with Study year abroad (Year 2)
  • USMA-AAB14 : BSc(Hons) Mathematics with Study year abroad (Year 4)
  • USMA-AKB14 : BSc(Hons) Mathematics with Year long work placement (Year 2)
  • USMA-AKB14 : BSc(Hons) Mathematics with Year long work placement (Year 4)
  • USMA-AFM14 : MMath(Hons) Mathematics (Year 3)
  • USMA-AKM15 : MMath(Hons) Mathematics with Year long work placement (Year 4)

Notes:
* This unit catalogue is applicable for the 2015/16 academic year only. Students continuing their studies into 2016/17 and beyond should not assume that this unit will be available in future years in the format displayed here for 2015/16.
* Programmes and units are subject to change at any time, in accordance with normal University procedures.
* Availability of units will be subject to constraints such as staff availability, minimum and maximum group sizes, and timetabling factors as well as a student's ability to meet any pre-requisite rules.