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: 1 October 2024

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

Prof Daniel Wilson

Professor Daniel Wilson is Director of Studies in Data Science at the Department for Continuing Education. Originally trained in biology and statistics, Daniel has conducted research in Oxford, Chicago, Lancaster, London, Paris and Mombassa. His work focuses on genetics and infectious diseases, analysing large datasets and developing new computational tools. He has led research studies into genetic risk factors for disease, the genetics of antibiotic resistance, the evolution of microbes, and the use of DNA to track the spread of outbreaks.

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 live online class with Professor Danny Wilson 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

We will close for enrolments 7 days prior to the start date to allow us to complete the course set up. We will email you at that time (7 days before the course begins) with further information and joining instructions. As always, students will want to check spam and junk folders during this period to ensure that these emails are received.

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.