Course co-ordinator(s): John See (Malaysia).
Aims:
To develop further skills and techniques in programming in a high-level language.
Detailed Information
Course Description: Link to Official Course Descriptor.
Pre-requisites: none.
Location: Malaysia.
Semester: 1.
Syllabus:
• static structures – tables
• linear techniques e.g. search, delete, update
• string & text processing
• dynamic structures - stacks & queues
• recursive techniques – linear recursion, accumulation recursion
• sorting & searching e.g. binary search, quicksort, merge sort, hash tables
• linked structures – lists – construction, traversal, delete, update
• linked structures – trees – construction, traversal, delete, update, balance
• file processing
• introductory complexity (e.g. "big O" notation)
• further error handling
Learning Outcomes: Subject Mastery
• To further appreciate the importance of the design and maintenance of code.
• To understand properties of and algorithms for fundamental static, dynamic and linked data structures.
• To know when to deploy fundamental data structures and algorithms in practical problem solving.
• To gain mastery of fundamental linear and recursive programming techniques.
• To know when to deploy linear and recursive programming techniques in practical problem solving.
• To understand fundamental techniques for processing very large data sets from files.
• To gain skill in elementary analyses of fundamental algorithms and data structures to give insight into their time
and space complexity bounds.
• To understand correspondences between different programming techniques.
• To understand correspondences between different data structures and algorithms.
• To make effective usage of version control in software development tasks.
Learning Outcomes: Personal Abilities
• To understand how the choice of algorithms and data structures determines the efficacy of proposed solutions
to problems.
• To be able to explain the implications of choosing particular algorithms and data structures for the time and
space behaviour of solutions.
• Understanding of the importance of regular working habits (pdp).
• Understanding of the use of chatboards and other devices to learn from and instruct others in the class (pdp).
• Ability to compare and evaluate the applicability of simple data structures and code design choices to relevant problems (pdp).
Assessment Methods: Due to covid, assessment methods for Academic Year 2021-22 may vary from those noted on the official course descriptor. Please see the Computer Science Course Weightings and the Maths Course Weightings for 2020-21 Semester 1 assessment methods.
SCQF Level: 8.
Credits: 15.
