/CS50.HarvardX

:mortar_board: My solutions to Harvard University's CS50 Introduction to Computer Science (2017, 2018) #CS50 #GD50 #WEB50

Primary LanguageCThe UnlicenseUnlicense

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.

CS50 (2018) Problem Sets: (whats new?)

CS50 (2017) Problem Sets:

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..

Useful Links: