Harvard CS50: Introduction to Computer Science
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.
whats new?)
CS50 (2018) Problem Sets: (- 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
CS50 (2017) Problem Sets:
- 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
CS50 2018 Sylabus:
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.
Week 1A
IDE, Command Line, Data Types, Operators, Conditional Statements, Loops
Week 1B
Debugging, Functions, Variables and Scope, Arrays, Command Line Arguments, Magic Numbers
Week 2
Computational Complexity, Selection Sort, Bubble Sort, Insertion Sort, Linear Search, Binary Search, Algorithms Summary, Recursion, Merge Sort, GDB
Week 3
Call Stacks, File Pointers, Pointers, Dynamic Memory Allocation, Hexadecimal
Week 4
Structures, Defining Custom Types, Singly-Linked Lists, Hash Tables, Tries, Stacks, Queues, Data Structures
Week 5
Internet Primer, IP, HTTP, HTML, CSS
Week 6A
Dynamic Programming, Rod cutting, Network Routing, Sequence matching, Image Composing, Seam Carving
Week 6B
Python Basics, More Python
Week 7
Web Programming, Frosh IMs, Similarities
Week 8
Flask, MVC, SQL, Cookies, Databases
Week 9
JavaScript, DOM, Ajax, Model View Converter, Javascript basics, DOM, Ajax
Week 10
WIP? - Nothing announced: Start final project.
Week 11
Final Project, 2018 Seminars
Recomended Books (check eBook folder for availability)
- C Programming Absolute Beginner’s Guide, Third Edition
- Hacker’s Delight, Second Edition
- How Computers Work, Tenth Edition
- Programming in C, Fourth Edition
- more..