Student Records
Programme & Unit Catalogues

## XX10190: Programming and discrete mathematics 1

Credits: 12
Level: Certificate (FHEQ level 4)
Assessment: CW 50%, EX 50%
Supplementary Assessment: XX10190 Mandatory extra work (where allowed by programme regulations)
Requisites: You must have A Level Mathematics grade A or equivalent in order to take this unit.
Description: Aims:
To teach generic programming skills and a range of topics in discrete mathematics which are connected to computation.

Learning Outcomes:
After taking this unit, the student should be able to:
* Apply the basic principles of programming in studying problems in discrete mathematics.
* Make proper use of data structures in the applications context.
* Demonstrate understanding of a range of mathematical topics which relate to computation, such as modular arithmetic, elementary graph theory and elementary computational number theory and their applications.
* Analyse the complexity of simple algorithms
* Explain the use of some famous algorithms such as the Fast Fourier Transform.
* Use the MATLAB programming environment.

Skills:
Numeracy T/F A
Problem Solving T/F A
Information Technology T/F A

Content:
The role of computing in mathematics
Matlab programming environment: Editing, importing and exporting data, getting help, functionality, graphics and mathematical applications.
Control structures for programming: Pseudocode, selection statements, repetition statements. Elementary logic in programming.
Elementary mathematical applications: e.g. summing series.
Data types: integers, real and complex numbers. Binary representation. Arrays, user-defined data structures.
Procedures, types of variables, parameter passing, scope of functions, functions as arguments. Applications, e.g. to modular arithmetic.
Graphs, trees, sorting and searching: applications.
Complexity of algorithms, order of an algorithm, examples of algorithms with logarithmic, polynomial and exponential order. Proofs by induction.
Recursion and its relation to induction.
Mathematical applications of recursion, e.g. Pascal's triangle, Euclid's algorithm, computing fractals.
Matrices and matrix operations. Applications, e.g. Fibonacci numbers, modelling networks.
Object-oriented programming. The object oriented paradigm, defining classes in Matlab, encapsulation. Examples from graphics.
Software development. The difficulty of formal proof, and the importance of testing. "black box" versus "white box" testing. Test coverage, and its importance in Matlab.
Cryptography, RSA. Error correcting codes.
Digital signal processing and FFT.
Programme availability:

#### XX10190 is Compulsory on the following programmes:

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

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