This is CS50’s (free) OpenCourseWare.
- Looking for CS50 at Harvard College? See cs50.harvard.edu/college.
- Looking for CSCI E-50 at Harvard Extension School? See cs50.harvard.edu/extension.
- Looking for a verified certificate from edX? Register at cs50.edx.org.
Hello, World
Introduction to the intellectual enterprises of computer science and the art of programming. 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 majors and non-majors alike, with or without prior programming experience. 68% of CS50 students have never taken CS before.
Week 0
- Watch lecture.
- Submit Problem Set 0.
Week 1
- Watch lecture.
- Optionally watch shorts.
- Data Types
- Operators
- Conditional Statements
- Loops
- Command Line
- Submit Problem Set 1.
Week 2
- Watch lecture.
- Optionally watch shorts.
- Functions
- Arrays
- Linear Search
- Selection Sort
- Bubble Sort
- Insertion Sort
- Merge Sort
- Binary Search
- Algorithms Summary
- Submit Problem Set 2.
Week 3
- Watch lecture.
- Optionally watch shorts.
- Recursion
- Hexadecimal
- File Pointers
- Call Stacks
- Pointers
- Dynamic Memory Allocation
- Submit Problem Set 3.
Week 4
- Watch lecture.
- Optionally watch shorts.
- Data Structures
- Defining Custom Types
- Singly-Linked Lists
- Hash Tables
- Tries
- Submit Problem Set 4.
Week 5
- Watch lecture.
- Optionally watch shorts.
- Internet Primer
- IP
- TCP
- HTTP
- HTML
- CSS
- JavaScript
- Submit Problem Set 5.
Week 6
- Watch lecture.
- Optionally watch short.
- Submit Problem Set 6.
Week 7
- Watch lecture.
- Optionally watch shorts.
- Submit Problem Set 7.
Week 8
- Watch lecture.
- Optionally watch short.
- Submit Problem Set 8.
Week 9
- Watch lecture.
- Optionally watch seminars.
- Data Visualization with D3
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- Going Pro with Arduino!
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- Interactive Websites with jQuery and Bootstrap
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- JavaScript - The Basics
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- Web Development with Python and Django
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- The Wonderful World of GitHub
- Slides
- Source Code
- Subtitles
- Transcript
- Video
- Data Visualization with D3
- Submit Final Project.