Back to Modules
CS101

Programming Fundamentals I

1 CreditsTerm 1

Description

This course introduces students to computational concepts and basic programming. Students will learn the basic programming constructs, and programming techniques to solve problem. An imperative language called C is used as the vehicle of exploration. There is an emphasis on producing clear, robust, and reasonably efficient code using top-down design, and effective testing and debugging.

Requisites

Prerequisites: None

Co-requisites: None

Anti-requisites: CS101/IS200/IS111/COR-IS1704 - Mutually Exclusive

Attributes

Department: SCIS

Course Level: Undergraduate

Tracks: N/A

Areas: Advanced Business Technology Major Business Options Computing Studies Core Digital Business Core Econ Major Rel/Econ Options Grad Req - Dig Tech/Data Ana (Intake 2024 onwards) IS Depth Electives IT Solution Development Core Information Systems Electives Law Related Electives Social Sciences/PLE Major-related Tech for Business Core (Intake 2019 - 2023) Technology Studies Cluster

Learning Outcomes

1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs: variables, expressions, assignments, I/O, control constructs, functions, parameter passing, and recursion. 2. Identify and describe uses of primitive data types. 3. Write programs that use primitive data types. 4. Modify and expand short programs that use standard conditional and iterative control structures and functions. 5. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, the definition of functions, and parameter passing. 6. Write a program that uses file I/O to provide persistence across multiple executions. 7. Choose appropriate conditional and iteration constructs for a given programming task. 8. Describe the concept of recursion and give examples of its use. 9. Identify the base case and the general case of a recursively-defined problem. 10. Determine informally the time complexity of simple algorithms. 11. Differentiate between logical errors, syntax errors, and run-time errors;

Graduate Learning Outcomes

Disciplinary Knowledge, Multidisciplinary Knowledge, Interdisciplinary Knowledge, Critical thinking & problem solving, Innovation and enterprising skills, Self-directed learning

Competencies

Software Design, Agile Software Development, Applications Development, Algorithm Analysis, Software Testing