IPRG5111 · 2026
Welcome to the official repository for Introduction to Programming Logic (IPRG5111).
This repository serves as the central academic resource for the subject. It supports lectures, tutorials, revision, and independent study. Students are encouraged to engage with it consistently throughout the semester.
Programming is not the memorisation of syntax. It is the disciplined practice of structured thinking, logical reasoning, and systematic problem-solving. The materials provided here are designed to develop that intellectual discipline.
This subject introduces the foundational logic that underpins all programming languages. Emphasis is placed on:
- Programming logic
- Algorithmic thinking
- Pseudocode development
- Flowchart design
- Structured problem-solving
The repository will evolve as the semester progresses. Content may be refined, clarified, or expanded in alignment with classroom discussions.
To improve clarity and organisation, materials are arranged into chapter folders.
docs
├─ ch01_programming_and_problem_solving
│ ├─ ch1_g1_p1.txt
│ ├─ ch1_g2_p1.txt
│ └─ ch1_flowchart_example1.png
├─ ch02_programming_basics
│ ├─ ch2_recap.txt
│ └─ ch2_flowchart.vsdx
├─ ch03_logic_structures
├─ ch04_sequential_logic
├─ ch05_decision_logic
├─ ch06_loop_logic
├─ ch07_arrays
└─ ch08_methods
assets
├─ flowcharts
└─ diagrams
This structure ensures:
- Clear separation of topics
- Logical progression of material
- Better version tracking as updates occur
- Each folder contains all materials for that topic
To maintain clarity and consistency:
chX→ Chapter numbergX→ Group identifier (if content differs between groups)pX→ Part number (if the chapter spans multiple sessions)- Descriptive suffixes may be added where necessary
Format:
ch##_topic[_group][_part].extension
Examples:
ch3_g1_p2.txtch5_decision_examples.txtch6_loop_flowchart1.png
This repository includes:
Flat text files are used intentionally. They emphasise logical structure without the distraction of programming-language syntax.
Flowcharts may be provided as:
- Image files for quick reference
- Editable Visio files for modification and practice
Selected problems discussed in class will be documented to illustrate structured problem-solving techniques.
To gain maximum benefit:
- Review the relevant chapter folder before and after lectures
- Rewrite pseudocode examples by hand
- Recreate flowcharts using a visual tool
- Modify examples to test your understanding
- Revisit earlier chapters regularly — programming logic is cumulative
This repository is not a replacement for thinking. It is a framework to guide your thinking.
- Files may be updated during the semester
- Clarifications may be added after class discussions
- Additional examples may be introduced where needed
Students are responsible for remaining aware of updates.
Using GitHub’s Star and Watch features can assist in tracking changes.
All materials are provided for academic use within this subject.
Students are expected to:
- Use the material ethically
- Attempt problems independently
- Engage actively with the logic development process
Copying solutions without understanding defeats the purpose of the subject.
This repository is intended to evolve.
If you identify:
- Errors
- Ambiguities
- Opportunities for improvement
You are encouraged to raise them via GitHub Issues or communicate directly during consultations.
Constructive engagement is welcomed.
This subject is taught by Jessel Sookha
GitHub Profile:
https://github.com/jesselsookha
Students are welcome to explore additional academic materials shared there.
Programming logic is a foundational discipline. It rewards patience, precision, and deliberate practice.
Engage with the material consistently.
Think carefully.
Structure your solutions clearly.
The habits developed here will extend far beyond this module.