COR-IS1702
Download as PDF
Computational Thinking
Course (UG/PG)
Offering Unit/Department
Course Description
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
Course 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