Skip to content

peter-adepoju/Intro-to-Python-Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

169 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction to Programming using Python

The goal of this repository is to present a course on programming with Python as a more structured, deeper, and more practice-driven learning experience. The materials are being developed week by week over 14 weeks, with each week designed to build understanding through explanation, coding practice, notebooks, assignments, quizzes, and projects.

Author

Peter Oluwafemi Adepoju
Email: petera@aims.ac.za

Course Philosophy

This course is designed to go beyond passive reading. The focus is on:

  • deep conceptual understanding
  • step-by-step progression from basics to advanced ideas
  • lots of practice and repetition
  • programming every concept in Python where possible
  • building intuition through examples, exercises, and review
  • connecting theory to computation in a clear, practical way

What You Will Find Here

The repository will include:

  • weekly schedules
  • textbooks and reading materials
  • Jupyter notebooks
  • Python code examples
  • assignments and practice questions
  • quizzes and assessments
  • projects and review materials
  • progress tracking and course resources

Semester Calendar at a Glance

UNIT 1: THE LANGUAGE OF PYTHON (Weeks 1–4)

Core syntax, the fundamental building blocks of every Python program.

Week Title Mon Tue Wed Thu Fri
1 Foundations Intro + types Variables Strings I/O + f-strings Branching
2 Iteration while loops for + range Nested loops Approximation Loop patterns
3 Functions Defining fns Parameters Return + scope Docstrings Fn practice
4 Recursion Recursive thinking Base cases Call stack Fibonacci Mutual recursion

UNIT 2: COMPOUND DATA (Weeks 5–6)

Working with collections of values and understanding mutability.

Week Title Mon Tue Wed Thu Fri
5 Tuples + Lists Tuples Lists Mutation + alias List methods Iteration patterns
6 Dicts + Mutation Dictionaries Dict methods Nested dicts Mutable vs immut Comprehensions

UNIT 3: PROGRAM QUALITY (Week 7)

Writing code that is correct, testable, and maintainable.

Week Title Mon Tue Wed Thu Fri
7 Testing + Debugging Error types try/except Assertions + tests Debugging strategies Code quality

MIDTERM (Week 8)

Week Title Mon Tue Wed Thu Fri
8 Midterm Review Wk 1-3 Review Wk 4-6 Review Wk 7 MIDTERM EXAM Debrief + feedback

UNIT 4: OBJECT-ORIENTED PROGRAMMING (Weeks 9–10)

Building programs as organized systems of interacting objects.

Week Title Mon Tue Wed Thu Fri
9 OOP I What is OOP? Classes + init Methods + self Encapsulation OOP practice
10 OOP II Inheritance super() Polymorphism Class design OOP project

UNIT 5: ALGORITHMS AND COMPLEXITY (Weeks 11–12)

Thinking rigorously about how fast programs run and why it matters.

Week Title Mon Tue Wed Thu Fri
11 Complexity Why complexity? Big-O notation Best/avg/worst Common classes Analysis practice
12 Searching + Sorting Linear search Binary search Bubble sort Merge sort Quick sort

UNIT 6: PROGRAMS IN THE REAL WORLD (Weeks 13–14)

Modules, files, data, and building complete programs.

Week Title Mon Tue Wed Thu Fri
13 Data + Modules Modules + import File I/O String parsing Data analysis Visualization intro
14 Capstone Final project Final project Final project FINAL EXAM Course synthesis

Assessment Summary

Item Week Weight
Daily Quizzes (70 total) Every weekday Formative (ungraded)
Weekend Assignments (14 total) Every weekend Practice
Mini-Projects (4 total) Weeks 3, 6, 10, 12 Practice
Midterm Exam Week 8, Thursday 30%
Final Exam Week 14, Thursday 40%
Final Project Week 14, Mon-Wed 30%

Tools and Environment

  • Language: Python 3.10+
  • Editor: Jupyter Notebook (primary) or VS Code with Pylance
  • Terminal: Any command line (macOS Terminal, Windows Terminal, Linux bash)

A Note on Pace

This course is designed to be challenging but manageable. If you find a day difficult, don't skip ahead — spend the weekend review time revisiting it. Every concept in this course builds on previous ones. A shaky foundation in Week 2 will make Week 5 genuinely hard. Take your time.

The 2-hour daily sessions are estimated. Some days you may finish in 90 minutes. Others may take 2.5 hours. That is normal and expected.


How to Get the Most from Each Week

  1. Don't just read the textbook — open a Python console alongside it and type every example as you go.
  2. Do every quiz even if it feels too easy — active recall is how memory is built.
  3. Finish every weekend assignment before starting the next week.
  4. Review the previous week's tracker every Monday morning.
  5. Write comments in your code explaining what you're doing — it forces understanding.

Acknowledgement

This repository is my own expanded teaching project, developed as an original structured course. The overall motivation and initial inspiration were drawn from MIT OpenCourseWare’s Introduction to CS and Programming Using Python.

About

Personal repository for my Introduction to Programming Using Python course, with weekly lessons, notebooks, practice exercises, quizzes, assignments, and a GitHub Pages course website.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors