CS50X , 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, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. The on-campus version of CS50X , CS50, is Harvard's largest course.
Students who take CS50X learn:
- a broad and robust understanding of computer science and programming
- how to think algorithmically and solve programming problems efficiently
- concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
- familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML
- how to engage with a vibrant community of like-minded learners from all levels of experience
- how to develop and present a final programming project to your peers
CS50X includes ten lectures, each of which includes a problem set. The problem sets require students to apply the topics covered during the lectures in one or more projects. The course finishes with one final project. The project's instructions (I) and repository files (R) can be accessed by clicking on the associated links.
- Week 0: Scratch
- Week 1: C
- Week 2: Arrays
- Week 3: Algorithms
- Week 4: Memory
- Week 5: Data Structures
- Week 6: Python
- World-Cup: run simulations of the FIFA World Cup (I, R)
- Hello: print a simple greeting using Python (I, R)
- Mario: print a double half-pyramid using Python (I, R)
- Credit: determine whether a credit card number is valid according to Luhn's algorithm using Python (I, R)
- Readability: compute the approximate grade level needed to comprehend sample text using Python (I, R)
- DNA: identify a person based on their DNA using Python (I, R)
- Week 7: SQL
- Week 8: HTML, CSS, JavaScript
- Week 9: Flask
- Week 10: Final Project