Module Title 
Computing for Mathematics

Module Code 
CA167

School 
School of Computing

Online Module Resources

Module Coordinator  Dr David Gray  Office Number  L2.54 
Level 
1

Credit Rating 
15

Prerequisite 
None

Corequisite 
None


Module Aims

The module aims to develop in students the skills and experience to design, code, and test moderatesized programs in C++, especially mathematically oriented programs.

Learning Outcomes

· An understanding of algorithms and their realisation as computer programs.· An understanding of the structure of highlevel programming languages in general, and C++ in detail.· The ability to analyse moderatesized computational problems, implement solutions, and test and debug them. · Appreciate the importance of, and be able to apply, good software engineering practices, including encapsulation and program structure.· Understand computer arithmetic, and be able to manage its limitations when implementing simple numerical algorithms in C++.

Indicative Time Allowances


Hours

Lectures 
72

Tutorials 
24

Laboratories 
48

Seminars 
0

Independent Learning Time 
81



Total 
225

Placements 

Assignments 


NOTE

Assume that a 15 credit module load represents approximately 225 hours' work, which includes all teaching, incourse assignments, laboratory work or other specialised training and an estimated private learning time associated with the module.

Indicative Syllabus

Fundamental notions: The idea of an algorithm; programming languages; computers; compilation. The designcodetest cycle; programming style. Machine limitations; word size; reals; computation time; reliability. Using program development environments. Program testing.Types and type constructors : Integers, booleans, characters, floating point, strings, arrays, structures. Constants and expressions in each of these types; operator precedence; elementary algebra of booleans. Elementary use of pointers. Type conversion.Statements: Variables; declarations and scope; assignment statement, statement sequencing; ifthen statements, loop constructs. Elementary reasoning about loops: induction; termination; loop invariants. Using loops with arrays. Standard input/output. Functions: Role of functions; definition and invocation; parameters and arguments; return values. Recursion; reasoning about recursion; termination. Void return type. Floating point. Floatingpoint format; floating addition/subtraction, multiplication, division; overflow and underflow; roundoff error, accuracy, minimising roundoff error, determining accuracy, precision and speed.Basic algorithms: Linear and binary search; elementary sorting and quicksort. Elementary arithmetic algorithms, e.g. prime generation, factorisation; binomial coefficients; base conversion. Elementary numerical algorithms: e.g. series summation; root finding (bisection method, NewtonRaphson); numeric integration; solution of linear systems; basic vector and matrix operations. Random number generation; applications. Elementary string algorithms, e.g. finding tokens. Algorithm design: Introduction to elementary algorithm design techniques, e.g. divideandconquer, recursion, backtracking; examples. Designing for efficiency. Algorithm complexity: Computational complexity; analysing the complexity of elementary algorithms. BigO notation. Files: Binary vs. text files. Sequential and random access. Index files. Simple visualisation of data.Classes: The idea of classes. Class definition; objects; constructors & destructors; initialisation. Member functions; using "this"; static members; access control. Overloading. Programming with classes: Encapsulation; information hiding; structuring larger programs. Nested classes; object arrays. Encapsulating mathematical structures, e.g. complex numbers, sets. Templates; elementary use of the standard library; e.g. set, multiset, vector, map. Bottomup vs. topdown design.

Assessment  Continuous Assessment  30%  Examination Weight  70% 

Indicative Reading List



Programme or List of Programmes

ACM  BSc Actuarial Mathematics 
BSSA  Study Abroad (DCU Business School) 
BSSAO  Study Abroad (DCU Business School) 
CAFM  Common Entry into Mathematical Sciences 
ECSA  Study Abroad (Engineering & Computing) 
ECSAO  Study Abroad (Engineering & Computing) 
HMSA  Study Abroad (Humanities & Soc Science) 
HMSAO  Study Abroad (Humanities & Soc Science) 
SHSA  Study Abroad (Science & Health) 
SHSAO  Study Abroad (Science & Health) 
Archives:  