This repository contains my completed coursework for CS50x: Introduction to Computer Science, an online course offered by HarvardX. The course covers fundamental computer science concepts and programming principles, providing a strong foundation in problem-solving, data structures, algorithms, and software development.
The repository is organized by problem sets, labs, and the final project.
Each problem set explores a core concept in computer science, with hands-on exercises to reinforce learning.
-
Week 0: Scratch
Introduced basic programming concepts using Scratch, a drag-and-drop block-based programming tool. Projects explored loops, conditionals, and user interaction. -
Week 1: C
Focused on the basics of the C programming language, including variables, loops, functions, and command-line arguments. -
Week 2: Arrays
Introduced arrays and explored their use in manipulating and analyzing data, including tasks like encryption (Caesar and Vigenère ciphers). -
Week 3: Algorithms
Implemented searching and sorting algorithms, such as binary search, bubble sort, and merge sort, and analyzed their efficiency. -
Week 4: Memory
Examined memory management in C, including pointers, dynamic memory allocation, and understanding segmentation faults. -
Week 5: Data Structures
Explored hash tables, linked lists, and tries to solve problems like building an efficient spell checker. -
Week 6: Python
Transitioned to Python, leveraging its simplicity and libraries to solve problems involving data processing and scripting. -
Week 7: SQL
Introduced relational databases and SQL, focusing on querying, updating, and normalizing data for applications. -
Week 8: HTML, CSS, JavaScript
Built dynamic web pages with HTML, styled them with CSS, and added interactivity using JavaScript. -
Week 9: Flask
Developed a simple web application using Flask, integrating it with HTML and JavaScript to create interactive user experiences.
Flomentum is my final project for CS50x. It’s a web application designed to help users optimize their daily schedules based on circadian rhythms and science-backed insights. Key features include:
- Personalized Schedules: Tailored schedules based on user inputs (e.g., wake time, bedtime, sleep duration).
- Dynamic Insights: Highlights productivity windows, optimal workout times, and rest periods.
- Responsive Design: Built using Flask and Bootstrap for seamless usability across devices.
- Interactive Visuals: Includes a timeline view of the schedule and detailed descriptions for each activity.
Flomentum reflects my ability to combine the theoretical knowledge gained in CS50x with practical software development skills. It’s designed to be a springboard for future projects and development.
CS50x has been a transformative learning experience, teaching me to:
- Solve problems methodically by breaking them into manageable components.
- Write clean, efficient code in C, Python, and SQL.
- Understand and implement foundational computer science concepts like recursion, memory management, and algorithms.
- Design and develop full-stack applications.
Special thanks to:
- David J. Malan and the CS50 teaching team for creating and delivering this exceptional course.
- The CS50x community for providing support and inspiration throughout the journey.
For questions or feedback, feel free to contact me!