Back to Modules
COR-IS1702

Computational Thinking

1 CreditsBoth

Description

Computational Thinking equips students to tackle complex computational problems; it trains students to design solutions to solve those problems using a computer program. It draws upon concepts from mathematics and computer science – more precisely, discrete mathematics, data structures and algorithm design. This course will hone students’ analytical skills as they are challenged to think abstractly and computationally. Their minds will be open to the wonders of computing, as they go behind the scene to unravel the fundamental analytics that empower Google, consulting agencies and service companies. NOTE: To facilitate learning in this course, you are required to know and use programming. You are advised to pick up the Python programming language before the course, for instance by practising with online tutorials such as http://learnpython.org. By taking this course, students will: • discover the science of computing • model problems and learn practical problem-solving techniques to tackle complex computational problems (beyond what a spreadsheet is capable of solving) • apply problem-solving techniques to develop more elegant and efficient programs • learn to write programs to represent and manipulate with complex data objects • understand the challenge of scale, not only in dealing with large data sets, but also in appreciating the nature of computing and computability

Requisites

Prerequisites: None

Co-requisites: None

Anti-requisites: COR-IS1702/COR-IS1704/IS115 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: N/A

Areas: Analytics Major Business Options Capabilities - Modes of Thinking Data Science and Analytics Core Econ Major Rel/Econ Options General Education Information Systems Core (Intake 2018 and earlier) Smart-City Mgmt &Tech Core (Intake 2018 & earlier) Social Sciences/PLE Major-related Tech for Business Core (Intake 2018 and earlier) Technology & Entrepreneurship Technology Studies Cluster

Learning Outcomes

1. Understanding how an algorithm solves a problem 2. Explaining basic algorithms such as searching and sorting and applying them to solve problems 3. Applying iteration or recursion to design an algorithm 4. Analysing and comparing the complexities of different algorithms 5. Improving the complexity of algorithms by designing more efficient solutions 6. Demonstrating the ability to use fundamental data structures to solve problems 7. Implementing an algorithm in a programming language such as Python 8. Knowing the limits of computations, including concepts such as P, NP, NP-Complete, and NP-Hard 9. Contrast optimal and approximation solutions 10. Use heuristic strategies such as greedy algorithms to solve an intractable problem

Graduate Learning Outcomes

Disciplinary Knowledge, Multidisciplinary Knowledge, Interdisciplinary Knowledge, Critical thinking & problem solving

Competencies

Software Design, Applications Development, Computational Modelling, Problem-solving & analysis, Algorithmic thinking