|Delivery Type||Delivery length / details|
|Lecture||30 x 1 Hour Lectures|
|Practical||11 x 2 Hour Practicals|
|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%|
On successful completion of this module students should be able to:
Describe the concept of computability and give an example of a non-computable problem.
Convert integers and rational numbers into binary representations and discuss properties of the different formats.
Manipulate logical expressions, write truth tables, discriminate between valid and invalid reasoning.
Perform matrix operations using 2 dimensional arrays.
Analyse simple algorithms and sorts and compare their efficiency.
Implement simple searches and sorts and compare their efficiency.
Be able to implement simple recursive algorithms.
Describe an important algorithm that has significant real-world impact.
The restructuring makes two significant changes. It changes the programming language from Arduino C to Java (away from CS12020 which is taught in Semester 1 towards CS12320 which is taught in parallel in Semester 2). The aim is to have strengthened students’ capabilities in Java when they enter their second year. The second change is to replace the portfolios with worksheets/quizzes. It puts more emphasis on practical skills (instead of revision) and aims at helping the students getting into programming.
This module provides an introduction to some aspects of theoretical computer science. It reviews fundamental mathematical concepts and illustrates how those concepts are implemented in computing contexts. Topics covered include computability, representation of numbers, fundamental Boolean logic, matrix operations, analysis of algorithms, searching and sorting, and recursion.
2. Fundamentals of Computing (representing numbers (integers; floating point); Boolean logic)
3. Matrices and arrays (2D arrays; matrix addition and multiplication)
4. Analysing algorithm complexity (asymptotic notation; worst, best, and average case)
5. Searching in a sorted array (linear, binary)
7. Recursion (binary search, sorting)
8. Highlights of computer science (e.g., data compression, Page rank)
|Skills Type||Skills details|
|Application of Number||Different binary representations of numbers.|
|Improving own Learning and Performance||Weekly assessment guides in improvement of own learning and performance.|
|Information Technology||Inherent to the subject matter.|
|Personal Development and Career planning|
|Problem solving||By means of algorithm design and analysis; also using logic; making use of appropriate representations for data (using numbers as simple example).|
|Research skills||Pointer to literature as part of the reading list; assessed only in the supplementary assessment.|
|Subject Specific Skills||As laid out in the learning outcomes.|
This module is at CQFW Level 4