Module Information
Course Delivery
Delivery Type | Delivery length / details |
---|---|
Lecture | 22 hours |
Practical | 22 hours |
Assessment
Assessment Type | Assessment length / details | Proportion |
---|---|---|
Semester Assessment | Submission of a portfolio | 40% |
Semester Assessment | Mid-semester test | 30% |
Semester Exam | 2 Hours Written exam | 30% |
Supplementary Assessment | Equivalent of a Portfolio Note - Students must resit failed examination and/or resubmission of failed/non-submitted coursework components or ones of equivalent value. | 40% |
Supplementary Exam | 2 Hours Written exam | 60% |
Learning Outcomes
On successful completion of this module students should be able to:
1. convert integers and rational numbers into binary representations and discuss properties of the different formats
2. manipulate logical expressions, write truth tables, discriminate between valid and invalid reasoning
3. implement simple searches and sorts
4. analyse simple algorithms and sorts and compare their efficiency
5. perform matrix operations using 2 dimensional arrays
6. be able to implement simple recursive algorithms
7. describe the concept of computability and give an example of a non-computable problem
8. describe an important algorithm that has significant real-world impact
Aims
This module aims to introduce some of the mathematical fundamentals of computing in an engaging and practical way. Building on CS12020 Introduction to Programming it uses C as programming language.
Brief description
This module will build on CS12020 Introduction to Programming. It reviews fundamental mathematical concepts and illustrates how those concepts are implemented in computing contexts. Topics covered include representation of numbers, fundamental Boolean logic, analysis of algorithms, searching and sorting, matrix operations, recursion and computability.
Content
1. Fundamentals of Computing (representing numbers (integers, floating point), Boolean logic)
2. Analysing algorithm complexity (asymptotic notation, worst, best and average case; searching in a sorted array (linear, binary), sorting)
3. Matrices and arrays (2D arrays, matrix addition and multiplication)
4. Recursion (binary search, sorting)
5. Computability
6. CS Highlights (e.g., data compression, PageRank)
Module Skills
Skills Type | Skills details |
---|---|
Application of Number | Understanding and implementing binary representations of numbers is inherent to this module. |
Communication | Developed in the creation of a portfolio. |
Improving own Learning and Performance | |
Information Technology | Computers will be used to implement algorithms to solve fundamental algorithmic problems. |
Personal Development and Career planning | |
Problem solving | Developed practically, solving coding problems. |
Research skills | |
Subject Specific Skills | |
Team work |
Reading List
General TextCormen, T.H. & Leiserson, C. E. & Rivest, R. L. & Stein, T. (2001.) Introduction to algorithms 2nd ed. MIT Press Primo search
Graham, Ronald L. (c1994.) Concrete mathematics :a foundation for computer science /Ronald L. Graham, Donald E. Knuth, Oren Patashnik. 2nd ed. Addison-Wesley Primo search Lecky-Thompson, Guy W. (c2008.) Just enough C/C ++ programmingGuy W. Lecky-Thompson. http://site.ebrary.com/lib/aber/Doc?id=10228169 Thomson Course Technology PTR Patterson, David A. (c2007.) Computer organization and designthe hardware/software interface /David A. Patterson and John L. Hennessy. http://site.ebrary.com/lib/aber/Doc?id=10382827 3rd ed. revised. Morgan Kaufmann ; Tanenbaum, Andrew S. (2005.) Structured computer organization /Andrew S. Tanenbaum. 5th ed. Pearson Prentice Hall Primo search Vine, Michael A. (2007.) C programming for the absolute beginnerMichael Vine. http://site.ebrary.com/lib/aber/Doc?id=10228219 2nd ed. Thompson Course Technology
Notes
This module is at CQFW Level 4