An integrated approach is adopted for the teaching of three modules:
(1) Algorithms and Design
(2) Interface and Interactions
(3) Systems Engineering
Module 1 - Algorithms and Design
This module covers data structures and their associated algorithms; and introduces software development practices like modularity, use of libraries, testing methods and debugging techniques through a range of problem tasks in areas like business, science, engineering, education, entertainment, and in life. Students should understand that computational thinking requires abstraction of both data and procedures and that computational thinking is the means to practical and effective solutions for real-world problems. Students will be introduced to a problem-solving framework and solve a defined set of problem tasks that will develop their ability and creativity in problem solving and programming skills.
Module 2 – Interface and Interactions
This module covers communication protocols and standards in a network and introduces interaction styles and techniques as well as design considerations for user interfaces. Students will work individually to create a database application (with appropriate interface and interaction) and test the system for usability. Students should understand that human-computer and computer-computer interface and interaction require an understanding of human behaviour and machine specifications (in terms of hardware and software). Students should understand and be able to explain the social, economic and ethical impact of computer and technology at work, at play and in life.
Module 3 – Systems Engineering
This module covers tools and processes in project management and the stages of a system development cycle. Students will be introduced to the concept of and write reusable codes; and manage a team project that will require them to apply the skills and concepts learnt, together with critical and inventive thinking, to build a net-based application for business, engineering, education or entertainment. Students should understand that careful planning and testing of system solutions are essential for successful implementation and realise that project management techniques have many real-life applications.