
Lecture Description
- The CosmoLearning Team
Course Index
- How Computers Work, Binary
- Introduction to Programming and Scratch
- Threads and Programs with Multiple Scripts
- Binary Numbers, Programming Languages, Working in Linux, and Programming in C
- Secure File Transfer, Variable Types, and Arithmetic Operators
- Standard Input Functions, Boolean Expressions, and Loops
- Cryptography, Bugs, Integer Casting, and Functions
- Local and Global Variables, the Stack, Return Values, and Arrays
- Strings as Arrays, Command-Line Arguments, and more Cryptography
- Run Times and Algorithms, Recursion
- Sorting: Bubble Sort, Selection Sort, and Merge Sort
- Hardware, Processors, and Implications for Software
- Greedy Algorithms, Software Design and Debugging
- Pointers
- Pointers and Arrays, Dynamic Memory Allocation
- Pointer Arithmetic, Structures, File I/O
- Linked Lists
- Inserting and Deleting Elements in Linked Lists, Doubly-Linked Lists
- Hash Tables, Dealing with Collisions
- Pointers to Pointers, Binary Search Tree, Tries, Heaps
- Heapsort, Jeopardy!
- Huffman Coding Theory
- Bitwise Operators, Underneath the Hood - From Code to Executable File
- Dangerous Functions, Secure Code
- The Internet and Webpages - HTTP and XHTML
- Introduction to PHP
- User Input, Setting up a Login Page, SQL
- Threats, Part 1
- Threats, Part 2
- Introduction to LISP
- Brief Introduction to System Programming and Machine Organization
- Conclusions
Course Description
“Demanding, but definitely doable. Social, but educational. A focused topic, but broadly applicable skills. CS 50 is the quintessential Harvard course.”
In this course, Harvard Professor David J. Malan gives 32 video lectures on Introduction to Computer Science. This 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.
Topics included in this course are:
- Introduction to the Intellectual Enterprises of Computer Science
- Algorithms: Their Design, Specification, and Analysis.
- Software Development: Problem Decomposition, Abstraction, Data Structures, Implementation, Debugging and Testing.
- Architecture of Computers: Low-level Data Representation and Instruction Processing.
- Computer Systems: Programming Languages, Compilers, Operating Systems.
- Computers in the real world: Networks, Security and Cryptography, Artificial Intelligence, Social Issues
- Assignments include extensive programming in the C Language and PHP
Prerequisites:
None. CS 50 does not assume any prior programming experience.
Books:
No books are required for this course.
However, you may want to supplement your preparation for or review of some lectures with self-assigned readings relevant to those lectures’ content from either of the books below. The first is intended for those inexperienced in (or less comfortable with the idea of) programming. The second is intended for those experienced in (or more comfortable with the idea of) programming. Both are available for purchase at the Coop and at sites like Amazon.com. Both of these books have been placed on reserve at Cabot Science Library and Gordon McKay Library. Realize that free, if not superior, alternatives to these books can be found among the course’s online resources.
For Those Less Comfortable
Absolute Beginner’s Guide to C, Second Edition
Greg Perry
Sams Publishing, 1994
ISBN 0-672-30510-0
For Those More Comfortable
Programming in C, Third Edition
Stephen Kochan
Sams Publishing, 2004
ISBN 0-672-32666-3
The book below is recommended for everyone, particularly those interested in understanding how their own computers work, for personal edification. At the Coop, this book is bundled at a discount with each of the books above. It is also available for purchase separately at sites like Amazon.com. It, too, has been placed on reserve.
For Everyone
How Computers Work, Eighth Edition
Ron White
Que Publishing, 2005
ISBN 0-7897-3424-9
This last book below is recommended for aspiring hackers, those interested in “programming tricks” and low-level optimization of code, for applications beyond the scope of this course. It is also available for purchase at the Coop and at sites like Amazon.com. It, too, has been placed on reserve.
For Aspiring Hackers
Hacker’s Delight
Henry S. Warren Jr.
Addison-Wesley, 2003
ISBN 0-201-91465-4
Original Course Name: Computer Science 50: Introduction to Computer Science I
Course Details: Harvard College