Skip to content

dlukeh/cs50p

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.


🐍 CS50P — Introduction to Programming with Python

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.


🧰 Skills Demonstrated

  • 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

🗂 Repository Structure

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

📘 Lab Summaries

lab0 — Basics

  • Playback speed adjustment
  • Indoor voice conversion
  • Einstein’s mass‑energy equation
  • Tip calculator
  • Simple string transformations

lab1 — Conditionals

  • Bank greeting logic
  • Deep thought checker
  • File extension detection
  • Meal time classification
  • Basic interpreter

lab2 — Loops

  • CamelCase conversion
  • Coke machine simulation
  • Nutrition label lookup
  • Vanity plate validation
  • Twitter vowel removal

lab3 — Exceptions & File I/O

  • Fuel gauge with error handling
  • Grocery list aggregator
  • Date parsing and normalization
  • Taqueria order calculator

lab4 — Libraries

  • Adieu farewell generator
  • Bitcoin price lookup (API)
  • Emoji converter
  • Figlet text renderer
  • Number guessing game
  • Professor quiz generator

lab5 — Unit Tests

  • Bank greeting tests
  • Fuel gauge tests
  • Vanity plate tests
  • Twitter vowel removal tests

lab6 — File I/O

  • 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

lab7 — Regular Expressions

  • 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

🏁 Course Progress

This repository currently includes labs 0 through 7, all of which have been:

  • fully implemented
  • tested with pytest where applicable
  • validated with CS50’s autograder
  • organized into a clean, modular structure

Additional labs will be added as I continue progressing through the course.


📌 Notes

  • 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.