CS50: An Introduction to Computer Science

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.

Programme details

Course begins: 20 January 2025

Week 0: Scratch

Week 1: C

Week 2: Arrays

Week 3: Algorithms

Week 4: Memory

Week 5: Data Structures

Week 6: Python

Week 7: SQL

Week 8: HTML, CSS, JavaScript

Week 9: Flask

Week 10: There will be no class this week as students will be working on their final projects ahead of the showcase at the CS50 fair.

Week 11: CS50 Fair

Fees

Description Costs
Course Fee £595.00

Funding

If you are in receipt of a UK state benefit, you are a full-time student in the UK or a student on a low income, you may be eligible for a reduction of 50% of tuition fees. Please see the below link for full details:

Concessionary fees for short courses

Tutor

Ms Ellen Visscher

Ellen is completing her DPhil at the University of Oxford in statistical machine learning with applications in healthcare. Before commencing her PhD, she worked as a backend software developer using Python. She has experience teaching Python programming courses and other university courses. 

Course aims

  • To teach you how to solve problems, both with and without code, with an emphasis on correctness, design, and style.
  • To provide you with a broad and robust understanding of computer science and programming.
  • To develop a familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML.

Teaching methods

Recorded weekly lecture from David J. Malan at Harvard University, followed by a 2-hour in-person class with Ellen Visscher at the University of Oxford.

Students are expected to complete the weekly problem sets ahead of the classes, and bring along any questions they have about the material. Work will not be marked ahead of the class so it is up to you to be proactive in asking for assistance with any topics you found difficult.

Learning outcomes

By taking this course you will 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

Assessment methods

There is no formal assessment of the course. Students are expected to complete the weekly assignments to get the most out of the live classes, but work will not be marked. To qualify for a University of Oxford digital badge students must attend a minimum of 70% of classes and present a final project in week 11.

Please note that assignments are not graded.

Application

Please use the 'Book' or 'Apply' button on this page. Alternatively, please complete an enrolment form (Word) or enrolment form (Pdf).

Level and demands

This is an introductory course designed for learners with and without programming experience. Please see the very helpful FAQ page for more information (including data from previous students) here: https://cs50.harvard.edu/college/2024/fall/faqs/

The Department's Weekly Classes are taught at FHEQ Level 4, i.e. first year undergraduate level, and you will be expected to engage in a significant amount of private study in preparation for the classes. This may take the form, for instance, of reading and analysing set texts, responding to questions or tasks, or preparing work to present in class.

Selection criteria

There are no prerequisites in taking this course.