An open API service indexing awesome lists of open source software.

https://github.com/itsvaibhavk/cs50x-2023

A record of all the coursework I did while taking CS50X (2023), Harvard's online course - Introduction to Computer Science (on the edX platform).
https://github.com/itsvaibhavk/cs50x-2023

c cs50x css edx flask html javascript python scratch sqlite

Last synced: 3 months ago
JSON representation

A record of all the coursework I did while taking CS50X (2023), Harvard's online course - Introduction to Computer Science (on the edX platform).

Awesome Lists containing this project

README

          

# CS50X-2023
A record of all the coursework I did while taking CS50X (2023), Harvard's online course - Introduction to Computer Science (on the edX platform).

## Week 0
Week 0 involved creating a program on the platform [Scratch](https://scratch.mit.edu/).
I have uploaded the **.sb3** file for one of the mini-games I had created, but here are direct links to the 2 mini-games I made back then:
1. [Onion's Fever Dream](https://scratch.mit.edu/projects/778439439/)
2. [A Game of Luck](https://scratch.mit.edu/projects/906362655/)

## Weeks 1 through 5

Weeks 1 through 5 were mainly about understanding the fundamentals of programming (though the difficulty ramped up quickly).

The language used was C, and we were started off with the basic concepts of:
- Data types
- Operators
- Conditional statements
- Loops
- Using the command line interface and linux commands
- Debugging

Week 2 saw us dive into:
- Arrays
- Functions
- Variables and their scope
- Command line arguments

Week 3 was perhaps the last of the "easy" ones, where we briefly dealt with algorithms:
- Search (linear & binary)
- Sorting (Bubble, merge & selection)
- Recursion

Week 4 took us through the dreaded concept of **MEMORY** (just kidding, it was quite challenging, but a whole *'heap'* of fun.):
- Pointers
- Hexadecimal
- Memory allocation
- Call stacks
- File pointers
- Defining custom data types

Week 5 covered data structures - lists, hash tables, queues, stacks, tries, etc.
This week marked the end of our journey of programming in C.

## Week 6

Week 6 started us off in the world of Python and open-source libraries.
We were shown how our lengthy C programs were now about a line or two of code, and the magic of being able to use (and find) libraries for almost any imaginable end-goal.

## Week 7

Week 7 introduced us to SQL databases, specifically SQLite3. We learnt how to run SQL commands in Python.
We had to solve a fun little crime-thriller-mystery using SQL queries - Check out [Fiftyville](https://cs50.harvard.edu/x/2023/psets/7/fiftyville/) for details.

## Week 8

Week 8 took us to an entirely new part of programming, web development. We served up static websites using `http-server`, and familiarised ourselves with the basics of HTML, CSS and JavaScript.

## Week 9

Week 9 introduced us to [Flask](https://flask.palletsprojects.com/en/3.0.x/), a web framework in Python, and [Jinja](https://jinja.palletsprojects.com/en/3.1.x/), a templating language for Python.
We concluded with our last problem set for the course, which involved building a web application using [Flask](https://flask.palletsprojects.com/en/3.0.x/) that would allow a user to:
- Register
- Log in/Log out
- Look up stock quotes
- Buy/Sell stock that they owned
- View the history of all the transactions they made
- Additionally, I implemented a "change password" feature for users to update their passwords

*All credit to the staff and team over at Harvard and CS50 involved in making this happen, thank you for giving us the opportunity to learn and build up our knowledge.
Thank you for instilling in us the love for all things programming!*

***And that was it.***
As Professor David Malan famously said at the end of the last lecture...
> This was CS50!