These are my solutions to Harvard University's "CS50: Introduction to Computer Science" course offered at edX. I used both CS50's c9.io IDE and my own text editor on linux & macOS + CS50's Libraries to complete this course (library references here.)
To complete the following Problem sets, I studied all of the CS50's lectures (2017 and 2018), shorts, walkthrough (2017), and participated in class discussions via /r/CS50 on Reddit. All Problem set submissions received correctness scores of 5/5 and "style" score of atleast 4/5 (efficiency doesn't '\n' before and after '{' ).
NOTE: Do not use 2017 solution for 2018 as they will have different "check50" standards.
CS50 (2018) Problem Sets: (whats new?)
- Problem Set 0: Scratch
- Problem Set 1: C
- Problem Set 2: Crypto
- Problem Set 3: Music *new
- Problem Set 4: Forensics
- Problem Set 5: Mispellings
- Problem Set 6: Déjà vu *new
- Problem Set 7: C$50 Finance
- Problem Set 8: Mashup
- Problem Set 0: Scratch
- Problem Set 1: C
- Problem Set 2: Crypto
- Problem Set 3: Game of Fifteen
- Problem Set 4: Forensics
- Problem Set 5: Mispellings
- Problem Set 6: Sentimental
- Problem Set 7: C$50 Finance
- Problem Set 8: Mashup
This course teaches you how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. Designed for concentrators and non-concentrators alike, with or without prior programming experience. 68% of CS50 students have never taken CS before.
IDE, Command Line, Data Types, Operators, Conditional Statements, Loops
Debugging, Functions, Variables and Scope, Arrays, Command Line Arguments, Magic Numbers
Computational Complexity, Selection Sort, Bubble Sort, Insertion Sort, Linear Search, Binary Search, Algorithms Summary, Recursion, Merge Sort, GDB
Call Stacks, File Pointers, Pointers, Dynamic Memory Allocation, Hexadecimal
Structures, Defining Custom Types, Singly-Linked Lists, Hash Tables, Tries, Stacks, Queues, Data Structures
Internet Primer, IP, HTTP, HTML, CSS
Dynamic Programming, Rod cutting, Network Routing, Sequence matching, Image Composing, Seam Carving
Python Basics, More Python
Web Programming, Frosh IMs, Similarities
Flask, MVC, SQL, Cookies, Databases
JavaScript, DOM, Ajax, Model View Converter, Javascript basics, DOM, Ajax
WIP? - Nothing announced: Start final project.
Final Project, 2018 Seminars
- C Programming Absolute Beginner’s Guide, Third Edition
- Hacker’s Delight, Second Edition
- How Computers Work, Tenth Edition
- Programming in C, Fourth Edition
- more..