Aims:
This module provides a foundation in the design and implementation of well-structured computer programs. After completing this module, the student should be able to:
- construct expressions using numeric, string, Boolean and composite values,
- construct nested code blocks using selection and iteration,
- implement pure functions and those with side effects,
- construct recursive functions,
- implement modular programs that can be tested and debugged easily,
- design test cases.
Content:
- The following topics will be covered in this module:
- Program development: programming cycle, programming tools.
- Program design: abstraction, top down refinement, nested structures.
- Control structures: sequence, selection, loop, recursion.
- Data types: numeric, string, Boolean, composites.
- Basic coding patterns: linear recursion, input-process-output, foreach, map, fold, select.
- Abstraction: functions, modules.
- Debugging and testing.
Evaluation
The students will be continuously evaluated during the course through mini-projects and the final exam at the end of this semester. Mini-projects and corresponding deadlines will be published on the website.
The students will be continuously evaluated during the course through mini-projects and the final exam at the end of this semester. Mini-projects and corresponding deadlines will be published on the website.