Perfect — thanks for the correction, partner.
Let’s align everything with the actual CS50P structure:
- Lab 6 = File I/O
- Lab 7 = Regular Expressions
Your README will now reflect the true course progression and the work you’ve completed.
Below is the corrected and updated README.md, with Labs 6 and 7 added in the right order and with accurate descriptions of each assignment.
A growing collection of labs completed as I progress through Harvard’s CS50P course.
This repository captures my ongoing work in CS50’s Introduction to Programming with Python — a hands‑on exploration of Python fundamentals, clean coding practices, testing, and problem‑solving. Each completed lab is organized into its own folder with clear structure and documentation.
- Python fundamentals (variables, loops, conditionals)
- Functions and modular program design
- File I/O and exception handling
- Data structures (lists, dicts, sets, tuples)
- Regular expressions
- Object‑oriented programming
- Unit testing with
pytest - Clean code organization and documentation
- Command‑line tools and user interaction
Each lab is self‑contained inside its folder, with its own code and README.
| Folder | Topic | Description |
|---|---|---|
| lab0/ | Basics | Strings, input/output, simple transformations |
| lab1/ | Conditionals | Branching logic, comparisons, text parsing |
| lab2/ | Loops | Iteration, state tracking, string manipulation |
| lab3/ | Exceptions & I/O | Error handling, file reading/writing |
| lab4/ | Libraries | Using external libraries (emoji, figlet, random) |
| lab5/ | Unit Tests | Writing functions + pytest test suites |
| lab6/ | File I/O | Reading, writing, cleaning, and transforming files |
| lab7/ | Regular Expressions | Pattern matching, validation, text extraction |
- Playback speed adjustment
- Indoor voice conversion
- Einstein’s mass‑energy equation
- Tip calculator
- Simple string transformations
- Bank greeting logic
- Deep thought checker
- File extension detection
- Meal time classification
- Basic interpreter
- CamelCase conversion
- Coke machine simulation
- Nutrition label lookup
- Vanity plate validation
- Twitter vowel removal
- Fuel gauge with error handling
- Grocery list aggregator
- Date parsing and normalization
- Taqueria order calculator
- Adieu farewell generator
- Bitcoin price lookup (API)
- Emoji converter
- Figlet text renderer
- Number guessing game
- Professor quiz generator
- Bank greeting tests
- Fuel gauge tests
- Vanity plate tests
- Twitter vowel removal tests
- Lines of Code Count the number of lines in a Python file,
- Pizza Read a CSV file of pizza orders
- Scourgify Clean and normalize a messy CSV
- CS50 P‑Shirt Overlay text onto an image using PIL
- NUMB3RS Validate IPv4 addresses using regex
- Watch on YouTube Extract YouTube video IDs from iframe HTML
- Working 9 to 5 Convert 12‑hour time ranges into 24‑hour format
- Regular, um, Expressions Count occurrences of the standalone word
"um" - Response Validation Validate email addresses
This repository currently includes labs 0 through 7, all of which have been:
- fully implemented
- tested with
pytestwhere applicable - validated with CS50’s autograder
- organized into a clean, modular structure
Additional labs will be added as I continue progressing through the course.
- All work was completed locally on a Linux workstation using virtual environments.
- Each lab folder contains its own README and supporting files.
- This repo is part of a broader academic progression alongside CS50AI and future AI agent projects.