Introduction to Computer Science
COMPSCI 50 001
Subject & Catalog Number
Course Information
Description
This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming, for concentrators and non-concentrators alike, with or without prior programming experience. (More than half of CS50 students have never taken CS before!) This course teaches you how to solve problems, both with and without code, with an emphasis on correctness, design, and style. Topics include computational thinking, abstraction, algorithms, data structures, and computer science more generally. Problem sets inspired by the arts, humanities, social sciences, and sciences. More than teach you how to program in one language, this course teaches you how to program fundamentally and how to teach yourself new languages ultimately. The course starts with a traditional but omnipresent language called C that underlies today's newer languages, via which you'll learn not only about functions, variables, conditionals, loops, and more, but also about how computers themselves work underneath the hood, memory and all. The course then transitions to Python, a higher-level language that you'll understand all the more because of C. Toward term's end, the course introduces SQL, via which you can store data in databases, along with HTML, CSS, and JavaScript, via which you can create web and mobile apps alike. Course culminates in a final project. See https://cs50.harvard.edu/college for advice, FAQs, syllabus, and what's new. Email the course's heads at heads@cs50.harvard.edu with questions.
Course Notes
This spring version of CS50 is for students who were unable to take the course in Fall. All students, including concentrators and non-concentrators, are encouraged to take CS50 in fall term instead. See https://cs50.harvard.edu/spring for differences between fall term and spring term. CS50 is ordinarily graded SAT/UNS, though students whose concentration requires letter grades should change their grading status to letter-graded by the term's eleventh Monday, as should students taking CS50 to fulfill the Quantitative Reasoning with Data (QRD) requirement. Students may take CS50 to fulfill the QRD requirement or to fulfill the Science and Engineering and Applied Science distribution requirement, but not both. First years may take both CS50 and a first-year seminar SAT/UNS. Graduate students are welcome to enroll in or cross-register for CS50.
Available for Harvard Cross Registration
NOTE: This course requires additional sections; you will be prompted to choose secondary components during the Add to Cart process