FreeShort Course

CS-104: Fundamentals of Python

Dynamic typing, lists and dictionaries, classes and JSON persistence - building a CLI to-do app called TaskFlow.

FreeNo fee
4 weeks10 hours
Short CourseBeginner to Intermediate
OnlineLive & instructor-led

About this course

Dynamic typing, lists and dictionaries, classes and JSON persistence - building a CLI to-do app called TaskFlow.

This is a 6-week short course - enough depth to build real projects and a portfolio piece, without a long commitment. It runs online in the August 2026 cohort (starting 1 August 2026) and is taught the EchoLens way: you learn by doing real, gradeable work rather than just watching lectures.

What's included

  • Live, instructor-led online sessions across 4 weeks (10 hours total).
  • Hands-on coding quests you solve inside the EchoLens browser compiler - nothing to install.
  • Gems, stages and a leaderboard that keep you moving instead of grade anxiety.
  • A verified certificate with a scannable QR code, ready to share on LinkedIn, when you finish.
  • Completely free - no fee, just create an account and start.

What you will learn

print() & program basicsVariables, types & input()Operators & decisionsLoops (for, while)FunctionsListsDictionariesClasses (OOP in Python)Files & JSONError handling

Course outline - level by level

10 leveles, each with hands-on quests you clear in the portal.

  • Level 1. print() & Program Basics - print() shows text on screen. Python needs no main() and no semicolons - you just write statements top to bottom. Indentation (spaces) defines structure. print("TaskFlow ready") priority = 1 print(f"Priority: {priority}")
  • Level 2. Variables, Types & input() - Variables need no type declaration - Python figures it out. input() reads text from the user, but ALWAYS returns a string, so you must convert with int() or float() for numbers. title = input("Task: ") priority = int(input("Priority: ")) print(f"{title} - {priority}")
  • Level 3. Operators & Decisions - Arithmetic (+ - * / // %) and comparison (== != < >) operators, combined with if/elif/else, let the program make choices. // is integer division, % is remainder. priority = 7 if priority <= 3: print("Low") elif priority <= 6: print("Medium") else: print("High")
  • Level 4. Loops (for, while) - for iterates over a sequence (or range of numbers); while repeats while a condition is true. break exits early, continue skips to the next iteration. running = True while running: cmd = input("> ") if cmd == "exit": running = False
  • Level 5. Functions - def creates a function. It can take parameters and return values. Functions keep code organized and reusable - the building blocks of a clean program. def add_task(title, priority=3): return {"title": title, "priority": priority}
  • Level 6. Lists - A list is an ordered, resizable collection: my_list = []. Add with append(), access by index from 0, and loop with for. Lists grow and shrink freely. tasks = [] tasks.append("Email client") for i, t in enumerate(tasks): print(i, t)
  • Level 7. Dictionaries - A dictionary stores key-value pairs: task = {'title': 'Email', 'done': False}. You access values by key, not index. Perfect for modeling a record with named fields. task = {"title": "Email client", "priority": 2, "done": False, "due": "Friday"} print(task["title"])
  • Level 8. Classes (OOP in Python) - A class is a blueprint for objects. __init__ sets up each new object's data, self refers to the object itself, and methods are functions that belong to the class. class Task: def __init__(self, title, priority): self.title = title self.priority = priority self.done = False def mark_done(self): self.done = True
  • Level 9. Files & JSON - JSON is a text format for structured data. json.dump() saves your list of task-dictionaries to a file; json.load() reads it back. This is how TaskFlow remembers tasks between runs. import json with open("tasks.json", "w") as f: json.dump(tasks, f) with open("tasks.json") as f: tasks = json.load(f)
  • Level 10. Error Handling - try/except catches errors before they crash the program. You 'try' risky code and 'except' handles the failure gracefully - essential for anything reading user input or files. try: n = int(input("Priority: ")) except ValueError: print("Please enter a number.")

How you submit: Coding quests solved in the built-in EchoLens compiler.

Who it's for

CS-104: Fundamentals of Python suits learners at a beginner to intermediate level who want a practical, project-based route into CS-104. You need only a browser and an internet connection - all coding runs inside the EchoLens compiler, so there is nothing to set up.

Certificate

Finish every stage and EchoLens issues a verified certificate carrying a QR code anyone can scan to confirm it on our site. You can add it to your CV or share it to LinkedIn in one click.

More Short Courses

Python for Data ScienceRs 12,500 · 6 weeksGenerative AI EssentialsRs 14,000 · 6 weeksData Analytics with SQL & Power BIRs 13,500 · 6 weeksIntroduction to Machine LearningRs 13,000 · 6 weeks