Skip to content

the-sleepless-coder/CS50

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS50

Description

This repository contains my solutions, implementations, and study notes from Harvard University's CS50 course.

Throughout the course, I learned fundamental computer science concepts including C programming, memory management, algorithms, and data structures by solving hands-on programming problems and implementing core data structures from scratch.


Key Features

  • C Programming Fundamentals — variables, conditions, loops, and command-line arguments with zero abstraction between you and the machine
  • Memory & Pointer Manipulation — addresses, dynamic allocation, file copying, and string internals, managed by hand
  • Algorithm Design & Analysis — Big-O reasoning, linear/binary search, sorting, and recursion
  • Data Structure Implementations — linked lists, queues, priority queues, hash tables, and BSTs built from raw structs and malloc
  • Problem-Solving Exercises — official CS50 problem sets, solved and organized per lecture
  • Lecture Notes & Experiments — annotated experiments from each module

Workflow

Lecture 1: C Fundamentals (variables, conditions, loops)
    ↓
Lecture 2: Memory & Strings (arrays, pointers, CLI args, encryption)
    ↓
Lecture 3: Algorithms (Big-O, search, sorting, recursion)
    ↓
Lecture 4: Memory Management (addresses, dynamic memory, file I/O)
    ↓
Lecture 5: Data Structures (linked list, queue, hash table, BST)
    ↓
Next: Merge Sort, Trie (roadmap)

Repository Structure

CS50/
├── lecture1/        # C fundamentals
├── lecture2/        # Memory & strings
├── lecture3/        # Algorithms
├── lecture4/        # Memory management
├── lecture5/        # Data structures
├── Makefile         # Build configuration
└── README.md

Implementation Patterns

Pattern Description
Linked List Sequential node chaining with pointer traversal
Queue FIFO processing
Priority Queue Ordered extraction by priority
Hash Table Key hashing with collision handling
Binary Search Tree Ordered hierarchy, O(log n) lookup
Trie Prefix tree — on the roadmap

Problem Sets — Solved

Copy any of these battle-tested classics into your own study plan:

Lecture 1

Mario Pyramid · Cash (Greedy Algorithm) · Credit Card Validation

Lecture 2

Scrabble · Substitution Cipher

Lecture 3

Plurality Election · Runoff Election · Searching & Sorting Algorithms


Topics Covered

Lecture 1 - C Fundamentals

  • Variables
  • Conditions
  • Loops

Lecture 2 - Memory & Strings

  • Arrays
  • Strings
  • Pointers
  • Command Line Arguments
  • Encryption

Lecture 3 - Algorithms

  • Big-O Analysis

  • Linear Search

  • Binary Search

  • Sorting Algorithms

  • Recursion

  • To dos: Merge Sort

Lecture 4 - Memory Management

  • Memory Addresses
  • Pointers
  • Dynamic Memory
  • File Copy
  • String Manipulation

Lecture 5 - Data Structures

  • Linked List
  • Queue
  • Priority Queue
  • Hash Table
  • Binary Search Tree

Technologies

  • C
  • GCC
  • Makefile
  • CS50 Library

Installation

git clone https://github.com/the-sleepless-coder/CS50.git
cd CS50

Usage

Trigger a build with prompts like:

make filename     # compile a program
./filename        # run it

About

[CS]Repository for organizing CS50 Material and problem sets

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors