- Student Records
Programme & Unit Catalogues

Department of Computer Science, Unit Catalogue 2011/12


CM20214: Advanced programming principles

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: CM20214 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 while taking this unit you must take CM20215 and take CM20216 and in taking this unit you cannot take CM20221
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, individually and in groups.
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), Working with Others (T/F, A), Communication (T/F).

Content:

* 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:

CM20214 is Compulsory on the following programmes:

Department of Computer Science
  • USCM-AFB11 : BSc (hons) Computer Information Systems (Full-time) - Year 2
  • USCM-AKB12 : BSc (hons) Computer Information Systems (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB12 : BSc (hons) Computer Information Systems with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USCM-AFB06 : BSc (hons) Computer Science (Full-time) - Year 2
  • USCM-AKB07 : BSc (hons) Computer Science (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AKB19 : BSc (hons) Computer Science (incl. ab initio Japanese Language & with Industrial Placement) (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AKB18 : BSc (hons) Computer Science (incl. ab initio Mandarin Chinese Lang & with Industrial Placement) (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AFB19 : BSc (hons) Computer Science (including ab initio Japanese Language) (Full-time) - Year 2
  • USCM-AFB18 : BSc (hons) Computer Science (including ab initio Mandarin Chinese Language) (Full-time) - Year 2
  • USCM-AFB09 : BSc (hons) Computer Science with Business (Full-time) - Year 2
  • USCM-AKB10 : BSc (hons) Computer Science with Business (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB10 : BSc (hons) Computer Science with Business with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USCM-AKB15 : BSc (hons) Computer Science with French Language (with Industrial Placement) (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB15 : BSc (hons) Computer Science with French Language (with Study Year Abroad) (Full-time with Study Year Abroad) - Year 2
  • USCM-AKB16 : BSc (hons) Computer Science with German Language (with Industrial Placement) (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB16 : BSc (hons) Computer Science with German Language (with Study Year Abroad) (Full-time with Study Year Abroad) - Year 2
  • USCM-AKB17 : BSc (hons) Computer Science with Spanish Language (with Industrial Placement) (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAB17 : BSc (hons) Computer Science with Spanish Language (with Study Year Abroad) (Full-time with Study Year Abroad) - Year 2
  • USCM-AAB07 : BSc (hons) Computer Science with Study Year Abroad (Full-time with Study Year Abroad) - Year 2
  • USCM-AFM01 : MComp (hons) Computer Science (Full-time) - Year 2
  • USCM-AKM02 : MComp (hons) Computer Science (Full-time with Thick Sandwich Placement) - Year 2
  • USCM-AAM02 : MComp (hons) Computer Science with Study Year Abroad (Full-time with Study Year Abroad) - Year 2

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