1 · 100 Level 2 · Second Semester 3 · CSC102 4 · Details
Core100 LevelSecond SemesterFoundations
CSC102

Programming Fundamentals

Course Description

Programming Fundamentals moves from the ideas introduced in CSC101 into sustained program design: functions, data structures, and the habits that separate code that works once from code that can be maintained. Students complete progressively larger projects across the semester, culminating in a multi-file program built and tested incrementally.

Learning Outcomes
  • Design and implement functions with clear responsibilities and interfaces.
  • Use core data structures (lists, dictionaries, simple records) appropriately.
  • Write and run basic automated tests for their own code.
  • Organize a program across multiple files with a coherent structure.
  • Debug systematically using a debugger and structured logging.
  • Read and adapt someone else's codebase for a new purpose.
Weekly Topics
Examines functions & scope from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend lists & iteration, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on dictionaries & records with an in-class exercise students carry into the week's assignment.
Focuses on common mistakes and misconceptions around file input & output, using student work from the previous assignment as material.
Introduces error handling and immediately puts it to use in a small design or implementation task.
Situates introduction to testing within the broader arc of the course, showing how it connects to what comes next.
Uses a guest dataset or scenario to explore mid-semester review in a setting closer to professional practice.
Introduces recursion through short lectures and worked examples, building the vocabulary the rest of the course relies on.
Works through modular program design in a lab-driven session, with guided exercises students complete and discuss in small groups.
Covers debugging techniques in depth, connecting the underlying theory to a concrete example the class builds together.
Examines working with external libraries from a practical angle, using a case drawn from real systems to motivate the concepts.
Builds directly on the previous week to extend project integration, with an emphasis on where the earlier techniques stop working.
Combines a short lecture on revision with an in-class exercise students carry into the week's assignment.
Assessment
Assignments — 20%
Practical Work — 30%
Mid-Semester — 15%
Final Examination — 35%
Prerequisite Map
CSC101 Introduction to Computing CSC102 Programming Fundamentals CSC201 Data Structures & Algorithms CSC203 Object-Oriented Software Design
Related Courses