Dark theme

Overview and Key Concepts


Core course materials:

Python:

  1. Introduction: history; how Python works [Key Ideas][Depth][Lecture Powerpoint]
  2. Syntax and simple data storage [Key Ideas][Depth][Lecture Powerpoint]
  3. Containers [Key Ideas][Depth][Lecture Powerpoint]
  4. Control flow: loops, branching [Key Ideas][Depth][Lecture Powerpoint]
  5. Control flow: Functions [Key Ideas][Depth][Lecture Powerpoint]
  6. Control flow: Classes and Objects [Key Ideas][Depth][Lecture Powerpoint]
  7. Core libraries: file input / output [Key Ideas][Depth][Lecture Powerpoint]
  8. Core libraries: modules / standard library [Key Ideas][Depth][Lecture Powerpoint]
  9. Functional programming / exceptions [Key Ideas][Depth][Lecture Powerpoint]
  10. Extra libraries: GUIs / the web [Key Ideas][Depth][Lecture Powerpoint]
  11. 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.

  1. Open Source Code
  2. GitHub (practical)
  3. Integrated Development Environments (practical)
  4. Static vs dynamically typed languages / manifest typing
  5. Documentation (practical)
  6. Unit Testing (practical)
  7. Flow diagrams
  8. UML
  9. CSV; JSON; XML
  10. Functional programming
  11. Web and internet communication
  12. Graphical User Interfaces (GUIs) and usability testing
  13. Patterns
  14. The software process & community development

We also cover some key ideas in computational thinking.

  1. Algorithms
  2. Abstraction
  3. Decomposition
  4. Loops
  5. Pass by reference
  6. Efficiency
  7. Information architecture / Web navigation
  8. Cohesion and coupling

Finally, there are a set of debugging practices.

  1. Missing files; files saved .txt
  2. File PATH
  3. Missing variables; misspelling
  4. Loop iterators / updating while looping
  5. Pass by reference
  6. Object equivalence
  7. Getting it working / decomposition
  8. Understanding messages from Python
  9. Close reading
  10. Using print
  11. Using the debugger
  12. Using a profiler
  13. Documentation
  14. Doctests
  15. Unit tests
  16. 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.