Research Computing and Software Development
Note
Teaching Schedule and Material for the MPhil in Data Intensive Science.
Note
The course is shared with other MPhil’s and programmes at the University of Cambridge. Any information about assessments, courseworks, etc. provided here and in class by Boris Bolliet are relevant to the MPhil in Data Intensive Science only. All assessments for this course for Economics and Data Science students is arranged separately by the Faculty of Economics. Please, contact the director of the MPhil in Economics and Data Science program Alexei Onatski with specific questions about the form and the arrangements of these assessments.
Goal
Equip you with the computing and software development skills that you need in order to work as researchers and data scientists in the age of artificial intelligence (i.e. not be replaced by AI).
Schedule
Time:
Tuesdays: 12-1pm
Thursdays: 12-1pm
Fridays: 9-10am
Location:
Ray Dolby Centre, Cavendish Laboratory, University of Cambridge.
#
Date
Content
1
Thu 9, October
Motivations (see recording).
2
Fri 10, October
3
Tue 14, October
Bash Environment
4
Thu 16, October
Python Environment
5
Fri 17, October
Git
6
Tue 21, October
Python Package: Initialisation
7
Thu 23, October
Python Package: Structure
8
Fri 24, October
Python Package: Distribution
9
Tue 28, October
Basic Computing in Python
10
Thu 30, October
More Advanced Computing in Python
11
Fri 31, October
Basic Signal Processing Tools
12
Tue 4, November
Test and Docs
13
Thu 6, November
Full Stack: FastAPI Backend
14
Fri 7, November
Full Stack: Next.js Frontend
15
Tue 11, November
Full Stack: Deployment
16
Thu 13, November
More Advanced Python Concepts
17
Fri 14, November
Multi-language Programming
18
Tue 18, November
Complexity: Introduction
19
Thu 20, November
Complexity: Big O Notation
20
Fri 21, November
Complexity: Fibonacci Sequence
21
Tue 25, November
Complexity: Insertion Sort
22
Thu 27, November
Complexity: Merge Sort
23
Fri 28, November
Coursework Demonstration
24
Tue 2, December
Complexity: Divide and Conquer
The full notes from the previous year are available here.
This course builds on material from James Fergusson, made availble to UoC students under the course archive.
Also for UoC students, the course moodle is here with links to our slides and discord server. Our lecture recordings are available online.
Lecture Notes
- 1. Getting started
- 2. Environments
- 3. Conda
- 4. Git
- 5. Python Package: Initialization and Structure
- 6. Python Package: Distribution
- 7. Python Package Index
- 8. Automatic documentation
- 9. Errors
- 10. Tests
- 11. Computing in Python
- 12. More Advanced Python
- 13. Multi-Language Programming
- 14. Backend: FastAPI
- 15. Frontend: Next js
- 16. Deploying an app
- 17. Continuous Integration
Miscellaneous
Useful Resources and further reading