Skip to Main Content

COR-IS1704

Download as PDF

Computational Thinking and Programming

SCIS Sch of Computing & Info Sys

Course (UG/PG)

Undergraduate

Offering Unit/Department

Course Description

This course equips students with both foundational computer programming skills and computational thinking skills, through the use of Python, a widely-used programming language. Upon successful completion of this course, students will understand and be able to appropriately apply fundamental programming concepts including variables, functions, parameters, loops and conditions to solve computational problems. The students will also be introduced to basic data structures including arrays (lists in Python) and hash tables (dictionaries in Python). In addition, students will receive a gentle introduction to computational complexity and apply the notion of complexity to analyse simple algorithms.

Course Learning Outcomes

1. Understand what variables, operators and data types are in programming languages

2. Choose appropriate data types to store data

3. Understand the purpose of defining and calling functions

4. Implement a function based on its description

5. Understand how conditional statements work, identify scenarios when conditional statements are needed, and correctly express the conditions using Python language

6. Understand how loops work, identify scenarios when loops are needed, the stopping conditions of such loops and the actions to be repeated, and correctly express them using Python language

7. Understand the usage of lists and apply the appropriate syntax to manipulate a list

8. Identify scenarios when lists are needed to solve a problem and correctly construct lists to suit the needs

9. Understand the usage of dictionaries and apply the appropriate syntax to manipulate a dictionary

10. Identify scenarios when dictionaries are needed to solve a problem and correctly construct dictionaries to suit the needs

11. Apply the appropriate syntax to read and write text files in Python

12. Divide a complex problem into smaller sub-problems and conquer them one by one with the help of loops, conditions, functions, etc.

13. Understand the notion of computational complexity and how the number of operations is related to the size of the input

14. Understand the time complexity of simple and typical code snippets such as loops and dictionary lookups

15. Apply the notion of computational complexity to analyse simple programs

Discipline-Specific Competencies

Algorithm Analysis

SMU Graduate Learning Outcomes

Disciplinary Knowledge, Critical thinking & problem solving, Understanding of sustainability issues, Self-directed learning

Grading Basis

GRD - Graded

Course Units

1