Led by Downeyian Computational Thinking Simulacrum
Complete Python from zero to mastery — taught by four Python specialists. Foundations, data structures, functions, OOP, databases, GUI and advanced topics with 100+ coding challenges.
If you found this course useful, consider becoming a patron and supporter. Support Universitas Scholarium →
Led by Downeyian Computational Thinking Simulacrum
The question
Before you write code, you need to understand what code is. What is a program? What is a variable? What does "dynamically typed" mean, and why does it matter for every line you will write?
Outcome
The student has a working Python environment and can use variables, numeric types and type/base conversions fluently. (Foundational)
Sub-units
Led by Downeyian Computational Thinking Simulacrum
The question
A program that only runs in a straight line is a calculator. How do you make programs that decide, repeat, and solve real problems through conditionals and loops?
Outcome
The student can write programs with conditionals and loops to solve classic algorithmic challenges: factorials, Fibonacci, primes, digit manipulation and pattern drawing. (Foundational)
Sub-units
Led by Guidonean Pythonology Simulacrum
The question
Strings are immutable sequences — every operation returns a new string. How do you manipulate text fluently in Python, from basic slicing to regular expressions?
Outcome
The student can manipulate strings with the full method catalogue, format output professionally, and use regular expressions for pattern matching. (Practical)
Sub-units
Led by Guidonean Pythonology Simulacrum
The question
The list is Python's workhorse. Mutable, ordered, heterogeneous. How do you create, modify, traverse and transform lists — and when should you use a tuple instead?
Outcome
The student can use lists and tuples fluently, write list comprehensions, and use standard library modules (random, itertools, statistics) with collections. (Practical)
Sub-units
Led by Guidonean Pythonology Simulacrum
The question
Sets and dictionaries are built on hash tables. Membership testing is O(1). Understanding these two structures is what separates a beginner from an intermediate programmer. When and why?
Outcome
The student can use sets for deduplication and mathematical operations, dictionaries for data mapping and transformation, and can choose the right data structure for a given problem. (Analytical)
Sub-units
Led by Hettingerian Idiomatics Simulacrum
The question
Functions are how you stop repeating yourself and start building abstractions. But most beginners write functions that are too long and do too many things. What does a good function look like?
Outcome
The student can define functions with all argument types, write generators and recursive functions, and decompose problems into clean, single-purpose abstractions. (Practical)
Sub-units
Led by Hettingerian Idiomatics Simulacrum
The question
Functions in Python are objects. You can pass them, return them, compose them. Closures, decorators, lambda — these are not advanced curiosities. They are how idiomatic Python works.
Outcome
The student can write closures, decorators and lambda expressions, use map/filter fluently, and pass a Python certification practice test covering basics through functions. (Advanced)
Sub-units
Led by Beazleyan Internalism Simulacrum
The question
When you write a class in Python, what actually happens? Instance dict, class dict, MRO, descriptor protocol — understanding the machinery makes OOP powerful rather than ceremonial.
Outcome
The student can design class hierarchies with inheritance, polymorphism, operator overloading and abstract classes, and understands Python's object model at the implementation level. (Advanced)
Sub-units
Led by Beazleyan Internalism Simulacrum
The question
Errors are not bugs — they are data. And files are where your programs meet the real world. How do you handle both robustly?
Outcome
The student can write robust programs with structured exception handling and build file-based data management systems using text, binary and CSV formats. (Practical)
Sub-units
Led by Beazleyan Internalism Simulacrum
The question
Files store data. Databases organise it. SQLite ships with Python — no installation needed. How do you design schemas, write queries, and build database-backed applications?
Outcome
The student can create databases, write SQL queries with JOINs and subqueries, and build complete database applications using both sqlite3 and SQLAlchemy. (Practical)
Sub-units
Led by Beazleyan Internalism Simulacrum
The question
A GUI is where your program meets a human. Tkinter ships with Python and requires nothing else. How do you build complete desktop applications with widgets, events and canvas drawing?
Outcome
The student can build complete GUI applications with Tkinter: multiple widgets, layout management, event handling, menus, file dialogs and canvas drawing. (Project)
Sub-units
Led by Beazleyan Internalism Simulacrum
The question
Multithreading, specialised data structures, datetime and NumPy. Each deserves its own course — but enough to be productive and know where to go deeper.
Outcome
The student can write multithreaded programs, use specialised data structures, manipulate dates, and work with NumPy arrays.
Sub-units