Learning Outcomes:
On successful completion of this module, students should be able to:
• Understand what constitutes a computer program and how it is constructed.
• Comprehend written source code.
• Write and compile programs in C.
• Make use of standard libraries in their own code.
• Keep track of code changes using version control.
• Write a computer program to solve problems relevant to scientific research.
Indicative Module Content:
Week 1: Linux shell, SSH, bash scripting
Week 2: Computer architecture, compilers, variables
Week 3: For loop, while loop, if/else statements, switch/case statements
Week 4: Git
Week 5: Arrays, functions, scoping, structs and enums
Week 6: Casting, pointers, passing-by-reference
Week 7: Memory management, pointers and arrays
Week 8: make, gdb, gprof
Week 9: Standard libraries, file IO, random numbers and timing
Week 10: Algorithms, recursion, data-structures
Week 11: Intro to Python, object-oriented-programming, numpy