Announcements
Demanding, but definitely doable. Social, but educational. A focused topic, but broadly applicable skills. CS50 is the quintessential Oxford (and Harvard!) course.”
How to take this course
Weekly to-do list:
- Watch the next lecture (2 hours) here: oxford.cs50.uk/2024/michaelmas
- Test your comprehension by working through the weekly Checks for Understanding (1-2 hours): oxford.cs50.uk/2024/michaelmas/checks
- Complete the exercises in the weekly Problem Sets (2 hours): oxford.cs50.uk/2024/michaelmas/psets
- Submit your work to Gradescope for auto-grading (optional): gradescope.com using instructions obtained here
- Attend the live class each Tuesday between 19:00 - 21:00 hrs (UK Time) beginning Tuesday 1st October on Microsoft Teams: canvas.ox.ac.uk/courses/284473 (via Canvas)
- Consolidate your understanding by reviewing the week’s material
Additional resources:
- How to use Teams and Canvas: canvas.ox.ac.uk/courses/272431 (on Canvas)
- Discuss challenges and comments with your peers on the discussion forum: canvas.ox.ac.uk/courses/284473/discussion_topics/827328 (on Canvas)
- Install Microsoft Teams: microsoft.com/en-us/microsoft-teams/download-app
- Enrol in Gradescope: gradescope.com using instructions obtained here
- Sign up for GitHub (if you haven’t already): github.com
- Download and install Google Chrome: google.com/chrome
- Sign in to VS Code for CS50 (requires GitHub and Google Chrome): cs50.dev
- Educational recordings - we intend to record the live classes for enrolled students to review - see our policy here: academic.admin.ox.ac.uk/educational-recordings-policy
Overview
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.
Students should note that for this exceptional course, the material originally developed by Harvard has been modified to fit the Oxford system.
Associated skills: Cryptography, SQL (Programming Language), JavaScript (Programming Language), Data Structures, Forensic Sciences, Security Software, Computer Science, Cascading Style Sheets (CSS), Finance, Resource Management, Python (Programming Language), C (Programming Language), HyperText Markup Language (HTML), Algorithms.