Overview and Key Concepts
Core course materials:
Python:
- Introduction: history; how Python works [Key Ideas][Depth][Lecture Powerpoint]
- Syntax and simple data storage [Key Ideas][Depth][Lecture Powerpoint]
- Containers [Key Ideas][Depth][Lecture Powerpoint]
- Control flow: loops, branching [Key Ideas][Depth][Lecture Powerpoint]
- Control flow: Functions [Key Ideas][Depth][Lecture Powerpoint]
- Control flow: Classes and Objects [Key Ideas][Depth][Lecture Powerpoint]
- Core libraries: file input / output [Key Ideas][Depth][Lecture Powerpoint]
- Core libraries: modules / standard library [Key Ideas][Depth][Lecture Powerpoint]
- Functional programming / exceptions [Key Ideas][Depth][Lecture Powerpoint]
- Extra libraries: GUIs / the web [Key Ideas][Depth][Lecture Powerpoint]
- Coding for real / Wrap-up [Key Ideas][Depth][Lecture Powerpoint]
In addition, we cover a number of ideas core to real world programming more generally.
- Open Source Code
- GitHub (practical)
- Integrated Development Environments (practical)
- Static vs dynamically typed languages / manifest typing
- Documentation (practical)
- Unit Testing (practical)
- Flow diagrams
- UML
- CSV; JSON; XML
- Functional programming
- Web and internet communication
- Graphical User Interfaces (GUIs) and usability testing
- Patterns
- The software process & community development
We also cover some key ideas in computational thinking.
- Algorithms
- Abstraction
- Decomposition
- Loops
- Pass by reference
- Efficiency
- Information architecture / Web navigation
- Cohesion and coupling
Finally, there are a set of debugging practices.
- Missing files; files saved .txt
- File PATH
- Missing variables; misspelling
- Loop iterators / updating while looping
- Pass by reference
- Object equivalence
- Getting it working / decomposition
- Understanding messages from Python
- Close reading
- Using print
- Using the debugger
- Using a profiler
- Documentation
- Doctests
- Unit tests
- Continuous Integration
In terms of things you might like to put on your CV (if, and only if, you understand them and pass the course!), key
elements include:
Core Python Language with an Object Oriented Approach; Unit Tests and DocTests; Profiling; Continuous Integration; UML; GitHub; Functional programming; HTML DOM processing/web-scraping.
If you need a refresher, check out the links above for each.