Skip to content

MBRO95/CS50x

Repository files navigation

CS50x Coursework Repository

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.


Repository Structure

The repository is organized by problem sets, labs, and the final project.

1. Problem Sets

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.


2. Final Project: Flomentum

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.


Lessons Learned

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.

Acknowledgments

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!


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published