Programming Fundamentals Using C++

Course Overview

Catalog-style description · module structure · policies · grading · support model


1. Course identification

FieldValue
TitleProgramming Fundamentals Using C++
LevelUndergraduate (year 1)
Duration16 weeks · 16 modules (module n in week n)
Lectures32 (two per week) × 2 hours = 64 contact hours + labs
Credits3 + 1 (adjust to local credit rules)
Language of instructionEnglish (adjust locally)
Primary language taughtC++ (C++17 standard) — see docs/CPP_STANDARD.md

1.1 Description

A first course in structured programming using C++ for students with no prior programming experience. The curriculum progresses through sixteen modules — from what is a program? through types, operators, decisions, loops, algorithm design, functions, arrays (1-D and 2-D), strings, searching and sorting, pointers and references, dynamic memory and structures, file handling and error management, to an introduction to object-oriented programming. Students learn to design, implement, trace, test, and debug small programs, with the emphasis on correct reasoning about program behavior rather than syntax memorization. The module sequence deliberately prepares both target audiences: the machine-model track (pointers, memory, arrays) for BS Computer Science students, and the data track (files, records, string processing) for BS Data Science students.

1.2 Intended audience

1.3 Prerequisites

None. Basic secondary-school algebra is assumed. No prior exposure to programming, the command line, or compiler tooling is assumed — these are taught in Module 1.

1.4 What this course is not


2. Module structure (summary)

ModuleThemeNew "hard idea"
1Introduction to Programming and C++the translation pipeline
2Variables, Data Types, and Input/Outputnamed, typed memory
3Operators and Expressionsexpressions as computed values
4Decision-Making Statementsconditional execution
5Loops and Repetitioncontrolled repetition
6Problem-Solving and Algorithm Designdesign & verification as skills
7Functions Fundamentalsabstraction & the call stack
8Advanced Function Conceptsoverload resolution, references
9One-Dimensional Arrayscollections & indices
10Two-Dimensional Arraysgrids & row-major layout
11Strings and Character Processingtext as processable data
12Searching and Sortingalgorithm comparison & cost
13Pointers and Referencesaddresses & indirection
14Dynamic Memory and Structuresheap lifetime & records
15File Handling and Error Managementpersistence & robustness
16Introduction to Object-Oriented Programmingdata + behavior + access control

The authoritative week-by-week plan with lecture titles, outcomes, and the assessment calendar is COURSE_SCHEDULE.md. The outcome system (CLO-1…8, PF-m.n) is LEARNING_OUTCOMES.md.


3. Weekly rhythm

SlotActivityDuration
Lecture AModule concept part 1 + live coding2 h
Lecture BModule concept part 2 + in-class exercises2 h
Labs (weeks 2, 4, 6, 8, 10, 12, 15)Supervised practice per labs/2 h
HomeworkReleased at second lecture, due before next module ends~4–6 h self-study

4. Assessment & grading

ComponentWeightDetails
Quizzes (16 module quizzes, drop lowest 2)15 %15 min each, week n's second lecture
Programming assignments (8, drop lowest 1)20 %40 marks each, ~every 2 weeks
Lab reports (16 labs)10 %checkpoint-based, weeks 2–15
Midterm (week 8, L16)15 %90 min, closed book, Modules 1–8
Final (week 16, L32)25 %120 min, cumulative, emphasis Modules 9–16
Practical coding assessment5 %2-hour supervised lab exam (variants A–D)
Capstone project (P5)10 %proposal wk 12 · milestone wk 14 · demo wk 16

Pass threshold: ≥ 50 % overall and ≥ 40 % on the final exam (local policy may adjust). The assessment calendar is COURSE_SCHEDULE.md § Assessment calendar; rubrics live next to each assessment.

4.1 Late policy (suggested)

Assignments: −10 % per 24 h up to 3 days, then instructor discretion. Documented illness/exception: equal-footing extension.

4.2 Academic integrity

Collaboration at the idea level only; every submitted line must be written and understood by you. Similarity checks apply; first violation zeroes the item, second fails the course. Suggested AI policy: assistants may explain errors, not write submitted code (see student/GETTING_HELP.md § 4).

5. Required tools

All free; setup in docs/TOOLCHAIN.md: a C++17 compiler (MinGW-w64 / MSVC / Xcode CLT / gcc), VS Code with the C/C++ extension. Verification (Module 1, L01):

g++ -std=c++17 -Wall -Wextra -pedantic examples/hello_world.cpp -o hello

6. Content access policy

Student-visible: lecture planning files, examples, lab manuals, exercise statements, project specs, review guides. Instructor-only: solution folders, quiz keys, exam papers, pacing guide — the complete restricted-path map and the semester-mirror workflow are in instructor/ACCESS_CONTROL.md.

7. Support model

8. Accessibility & inclusion

Text-first markdown materials (screen-reader friendly); live coding always paired with spoken explanation and posted notes; culturally neutral problem contexts across science, data, games, and text processing. Accommodation requests in week 1 — no reason needs to be disclosed.

9. Versioning

Materials carry a semester tag (2026-fall). Changes are logged in docs/CHANGELOG.md; adaptation guidance for adopting instructors is in TEACHING_GUIDE.md § 8.

Programming Fundamentals Using C++ · C++17 · 16 weeksBack to top ↑