Course link: (https://www.edx.org/course/introduction-computer-science-harvardx-cs50x)
Professor David Malan
Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan.
CS50x teaches students 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, PHP, and JavaScript plus SQL, CSS, and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.
Students are expected to submit nine problem sets and a final project.
Binary. ASCII. Algorithms. Pseudocode. Source code. Compiler. Object code. Scratch. Statements. Boolean expressions. Conditions. Loops. Variables. Functions. Arrays. Threads. Events.
Linux. C. Compiling. Libraries. Types. Standard output.
Casting. Imprecision. Switches. Scope. Strings. Arrays. Cryptography.
Command-line arguments. Searching. Sorting. Bubble sort. Selection sort. Insertion sort. O. Ω .Θ. Recursion. Merge Sort.
Stack. Debugging. File I/O. Hexadecimal. Strings. Pointers. Dynamic memory allocation.
Heap. Buffer overflow. Linked lists. Hash tables. Tries. Trees. Stacks. Queues.
TCP/IP. HTTP.
HTML. CSS. PHP.
MVC. SQL.
JavaScript. Ajax.
Security. Artificial intelligence.
Artificial intelligence, continued.
Exciting conclusion.
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: Web Server
Problem Set 7: C$50 Finance
Problem Set 8: Mashup