About this course
Learn to program, a problem-based approach
What it is
As the name implies, you learn programming by solving programming problems, starting from the very basic and then move up the ladder a step-by-step, always keeping the underlying programming concepts in mind - not the immediate language features.
Learning outcomes
After completing this course, students will be able to:
- Design clear, effective program logic for foundational problems.
- Translate that logic into clean, functional Python code
Content
The course consists of six units:
- Expressions and data types
- Assignment operator and sequence. Basic input/output
- Selection statements
- Iteration commands (loops)
- Subprograms
- Arrays
Prerequisites
The participants will need:
- Hardware: A laptop or a PC capable of running a modern web browser.
- Software: A mainstream browser - Open Source browsers like Firefox and the Brave browser are encouraged
- Connectivity: A stable Internet connection for the LMS and the live-sessions
- Mindset: A healthy dose of curiosity and enthusiasm for computers
Our teaching method
The "inverted classroom": We take a problem-based learning approach, also called the inverted classroom. Instead of watching long lectures, you dive straight in to coding:
- Solve: You'll receive programming problems to tackle on your own before we meet.
- Collaborate: . If you get stuck, jump into the forum! Teachers and peers are there to help you troubleshoot.
- Consolidate: We hold a live-session to review concepts and clear up any doubts.
- Level up: Following the session, you'll take on more demanding homework to establish what you've learnt.
No setup required: Our LMS includes a built-in development environment (IDE). You can start coding immediately in your browser—no complex setup needed.
The assignments are not tests!: What students need to understand is that, although the assignments are graded, they are not tests. They are for practice - you can repeat them as many times as you want without fear of penalty. If one attempt has reached the full marks, then you've passed the activity. Note that there are no partial marks. It also greatly simplifies the teacher workload by machine-correcting the programs and also simplify the student-teacher communication.
Assessment
Your progress through the course will be continually assessed:
- Programs are machine-corrected for instant results.
- You can retry assignments as many times as you like without penalty.
- There are no individual due dates, but all work must be completed two days before the course ends.
Note that the progress is linear; you must complete one assignment to unlock the next.
Pro-tip: You can keep track on the deadlines and your progress in the blocks in the right-hand side drawer of the course homepage.
Course completion
To complete the course, you must successfully complete all course activities.
Workload
2-3 hours per unit across 6 units ~= 15 hours average in total