- Student Records
Programme & Unit Catalogues

Department of Computer Science, Unit Catalogue 2011/12


CM20221: Advanced programming principles (a)

Click here for further information Credits: 12
Click here for further information Level: Intermediate (FHEQ level 5)
Click here for further information Period: Academic Year
Click here for further information Assessment: CW 40%, EX 60%
Click here for further information Supplementary Assessment: CM20221A Mandatory Extra Work (where allowed by programme regulations)
Click here for further information Requisites: Before taking this unit you must take CM10227 and take CM10228 and in taking this unit you cannot take CM20214
Click here for further information 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.
Click here for further informationProgramme availability:

CM20221 is Compulsory on the following programmes:

Department of Computer Science
  • USCM-AFB13 : BSc (hons) Computer Science with Mathematics (Full-time) - Year 2
  • USCM-AKB14 : BSc (hons) Computer Science with Mathematics (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB14 : BSc (hons) Computer Science with Mathematics with Study Year Abroad (Full-time with Study Year Abroad) - Year 2

CM20221 is Optional on the following programmes:

Department of Mathematical Sciences
  • USMA-AFB15 : BSc (hons) Mathematical Sciences (Full-time) - Year 2
  • USMA-AFB15 : BSc (hons) Mathematical Sciences (Full-time) - Year 3
  • USMA-AKB16 : BSc (hons) Mathematical Sciences (Full-time with Thick Sandwich Placement) - Year 2
  • USMA-AKB16 : BSc (hons) Mathematical Sciences (Full-time with Thick Sandwich Placement) - Year 4
  • USMA-AAB16 : BSc (hons) Mathematical Sciences with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USMA-AAB16 : BSc (hons) Mathematical Sciences with Study Year Abroad (Full-time with Study Year Abroad) - Year 4
  • USMA-AFB13 : BSc (hons) Mathematics (Full-time) - Year 2
  • USMA-AFB13 : BSc (hons) Mathematics (Full-time) - Year 3
  • USMA-AKB14 : BSc (hons) Mathematics (Full-time with Thick Sandwich Placement) - Year 2
  • USMA-AKB14 : BSc (hons) Mathematics (Full-time with Thick Sandwich Placement) - Year 4
  • USMA-AFB01 : BSc (hons) Mathematics and Statistics (Full-time) - Year 3
  • USMA-AKB02 : BSc (hons) Mathematics and Statistics (Full-time with Thick Sandwich Placement) - Year 4
  • USMA-AAB02 : BSc (hons) Mathematics and Statistics with Study Year Abroad (Full-time with Study Year Abroad) - Year 4
  • USMA-AAB14 : BSc (hons) Mathematics with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USMA-AAB14 : BSc (hons) Mathematics with Study Year Abroad (Full-time with Study Year Abroad) - Year 4
  • USMA-AFB05 : BSc (hons) Statistics (Full-time) - Year 2
  • USMA-AFB05 : BSc (hons) Statistics (Full-time) - Year 3
  • USMA-AKB06 : BSc (hons) Statistics (Full-time with Thick Sandwich Placement) - Year 2
  • USMA-AKB06 : BSc (hons) Statistics (Full-time with Thick Sandwich Placement) - Year 4
  • USMA-AAB06 : BSc (hons) Statistics with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USMA-AAB06 : BSc (hons) Statistics with Study Year Abroad (Full-time with Study Year Abroad) - Year 4
  • USMA-AFM14 : MMath Mathematics (Full-time) - Year 3

NB. Programmes and units are subject to change at any time, in accordance with normal University procedures.