This repository documents my Python learning journey through Harvard's CS50's Introduction to Programming with Python (CS50P).
Alongside the official course exercises and problem sets, I build small personal projects that apply the Python concepts I learn to cybersecurity, SOC analysis, and security automation.
The course covers Python fundamentals including:
- Variables and data types
- Functions and arguments
- String manipulation
- Conditionals and Boolean logic
- Loops
- Lists and dictionaries
- Exceptions
- Libraries
- Unit testing
- File I/O
- Regular expressions
- Object-oriented programming
The repository is organized by course week.
Each week contains two types of work:
CS50P Exercises
- Course exercises
- Problem sets
- Coding practice
Personal Projects
- Small programs built independently
- Cybersecurity-focused exercises
- SOC and security automation experiments
- Projects that reinforce concepts learned during that week
Example structure:
CS50P/
├── Week_0/
│ ├── indoor.py
│ ├── playback.py
│ ├── faces.py
│ ├── einstein.py
│ └── tip.py
│
├── Week_1/
│ ├── Exercise/
│ │ ├── bank.py
│ │ ├── deep.py
│ │ ├── extensions.py
│ │ ├── interpreter.py
│ │ └── meal.py
│ └── Personal/
│ └── soc_triage.py
│
├── Week_2/
│ ├── Exercise/
│ │ ├── camel.py
│ │ ├── coke.py
│ │ ├── nutrition.py
│ │ ├── plates.py
│ │ └── twttr.py
│ └── Personal/
│ └── soc_login_analyzer.py
│
└── ...
One of my first personal Python exercises applies basic Python concepts to a simple SOC alert-triage scenario.
The script collects:
- Username
- Source IP address
- Number of failed login attempts
- Whether a successful login followed the failures
It then uses conditional logic to classify the activity as:
- LOW
- MEDIUM
- HIGH
- CRITICAL
This project was built to reinforce:
input()- Variables
- Functions
- Integer conversion
if / elif / else- Boolean conditions
- Return values
- f-strings
The Week 2 personal project expands from analyzing a single user-provided alert to processing multiple login events stored as structured data.
Each event contains:
- Username
- Source IP address
- Number of failed login attempts
The script:
- Iterates through multiple login events
- Classifies each event as LOW, MEDIUM, or HIGH severity
- Counts the total number of events
- Summarizes events by severity
- Identifies IP addresses that appear in more than one event
This project was built to reinforce:
forloops- Lists
- Dictionaries
- Lists of dictionaries
len()- Iteration
- Counters
- Conditional logic
- Dictionary membership
- Working with structured data
The project intentionally uses concepts introduced up to Week 2 rather than more advanced Python techniques, allowing the scripts to develop alongside my progress through the course.
Python 3 is required.
Clone the repository or open it locally, navigate to the appropriate directory, and run a script with:
python filename.pyFor example:
python soc_login_analyzer.pyMy goal is not only to complete CS50P, but to develop a strong Python foundation that I can eventually apply to security operations, log analysis, automation, APIs, data processing, and other cybersecurity workflows.
Rather than jumping directly into advanced security-specific Python scripts, this repository tracks the fundamentals first and shows how those skills develop over time.
🚧 In Progress
Completed coursework and personal practice through CS50P Week 2.
The personal security projects will continue to develop as new Python concepts are introduced.