Close
UCL Home
Prospective students
Current students
Staff
COMP0023: Research Software Engineering With Python
Home
Introduction to Python
Many kinds of Python
An example program
Variables
Using Functions
Types
Containers
Dictionaries
Structures
Maze Solution
Conditionality
Looping
Maze Control Solution
Comprehensions
Maze comprehension solution
Defining functions
Modules
Classes
Research Data in Python
Working with files
Internet
CSV
Structured data files
Maze Files Solution
Earthquakes Exercise
Quakes Solution
Scientific File Formats
Plotting
Numerical Python
The Boids
Understanding the Exemplar
Version Control
Introduction to Version Control
Solo Git
Fixing Mistakes
Publishing
Collaboration
Fork and Pull
Branches
Git miscellany
Remotes
Rebase
Bisect
Testing
Testing Basics
The Fields of Saskatchewan
Test Frameworks
Energy Example
Mocks
Debugger
Continuous Integration
Diffusion Example
Software Projects
Installing Libraries
Libraries
Writing Libraries
Argparse
Packaging
Documentation
Agile and Waterfall
Issue Tracking
Licensing
Construction and Design
Construction
Coding Conventions
Comments
Refactoring
Object Refactorings
Object Oriented Design
Design Patterns
Exercise - Boids
Advanced Programming Techniques
Don't Repeat Yourself
Functional Programming
Iterators, Generators, Decorators, and Contexts
Exceptions
Operator Overloading
Operator Overloading (example)
Metaprogramming
Programming for Speed
Two Mandelbrots
Faster Mandelbrots?
NumPy
Cython
Scaling
Installation
Linux
Mac OSX
Windows
UCL
Advanced Research Computing
Training
COMP0023
Turning your code into a package
Releasing code
Documentation
Software project management
Organising issues and tasks
Choosing an open-source license