Course Description
Introduction to Computer Science I is a first course in computer science at Harvard College for concentrators and non-concentrators alike. More than just teach you how to program, this course teaches you how to think more methodically and how to solve problems more effectively. As such, its lessons are applicable well beyond the boundaries of computer science itself. That the course does teach you how to program, though, is perhaps its most empowering return. With this skill comes the ability to solve real-world problems in ways and at speeds beyond the abilities of most humans.
Lectures
-
1. Local and Global Variables, the Stack, Return Values, and Arrays
Harvard
Computer Science
David J. Malan -
2. Threats, Part 1
Harvard
Computer Science
David J. Malan -
3. Pointers
Harvard
Computer Science
David J. Malan -
4. How Computers Work, Binary
Harvard
Computer Science
David J. Malan -
5. Pointers to Pointers, Binary Search Tree, Tries, Heaps
Harvard
Computer Science
David J. Malan -
6. Cryptography, Bugs, Integer Casting, and Functions
Harvard
Computer Science
David J. Malan -
7. User Input, Setting up a Login Page, SQL
Harvard
Computer Science
David J. Malan -
8. Greedy Algorithms, Software Design and Debugging
Harvard
Computer Science
David J. Malan -
9. Hash Tables, Dealing with Collisions
Harvard
Computer Science
David J. Malan -
10. Standard Input Functions, Boolean Expressions, and Loops
Harvard
Computer Science
David J. Malan -
11. Introduction to PHP
Harvard
Computer Science
David J. Malan -
12. Hardware, Processors, and Implications for Software
Harvard
Computer Science
David J. Malan -
13. Conclusions
Harvard
Computer Science
David J. Malan -
14. Inserting and Deleting Elements in Linked Lists, Doubly-Linked Lists
Harvard
Computer Science
David J. Malan -
15. Secure File Transfer, Variable Types, and Arithmetic Operators
Harvard
Computer Science
David J. Malan -
16. Dangerous Functions, Secure Code
Harvard
Computer Science
David J. Malan -
17. Sorting: Bubble Sort, Selection Sort, and Merge Sort
Harvard
Computer Science
David J. Malan -
18. Brief Introduction to System Programming and Machine Organization
Harvard
Computer Science
David J. Malan -
19. Linked Lists
Harvard
Computer Science
David J. Malan -
20. Binary Numbers, Programming Languages, Working in Linux, and Programming in C
Harvard
Computer Science
David J. Malan -
21. Bitwise Operators, Underneath the Hood - From Code to Executable File
Harvard
Computer Science
David J. Malan -
22. Run Times and Algorithms, Recursion
Harvard
Computer Science
David J. Malan -
23. Introduction to LISP
Harvard
Computer Science
David J. Malan -
24. Pointer Arithmetic, Structures, File I/O
Harvard
Computer Science
David J. Malan -
25. Threads and Programs with Multiple Scripts
Harvard
Computer Science
David J. Malan -
26. Huffman Coding Theory
Harvard
Computer Science
David J. Malan -
27. Strings as Arrays, Command-Line Arguments, and more Cryptography
Harvard
Computer Science
David J. Malan -
28. Threats, Part 2
Harvard
Computer Science
David J. Malan -
29. Pointers and Arrays, Dynamic Memory Allocation
Harvard
Computer Science
David J. Malan -
30. Introduction to Programming and Scratch
Harvard
Computer Science
David J. Malan -
31. Heapsort, Jeopardy!
Harvard
Computer Science
David J. Malan

Discussion