Skip to content
University of Manchester logo EEEN11202 course notes
  • 0. Introduction
  • 1. Motivation
    • 1.1. Why study programming
    • 1.2. Types of programming language
    • 1.3. Our choices for this course
  • 2. Computer hardware
  • 3. Computer software
    • 3.1. Major operating systems
    • 3.2. User interfaces: graphical and the command line
    • 3.3. Files, folders, and filesystems
  • 4. Software lifecycle
    • 4.1. Requirements capture
    • 4.2. Software architecture
    • 4.3. Testing and debugging
    • 4.4. Release, support, maintenance, and bug fixes
    • 4.5. Documentation
    • 4.6. Quality management
  • 5. Software development tools fundamentals
    • 5.1. Integrated Development Environments (IDEs)
    • 5.2. Comments
    • 5.3. Docstrings and doctests
    • 5.4. Documentation tools
    • 5.5. Static code analysis
    • 5.6. Debugger
    • 5.7. Profiler and computational complexity
    • 5.8. Version control
    • 5.9. Environment control
    • 5.10. Unit and integration testing
    • 5.11. Continuous integration
    • 5.12. Formatters
    • 5.13. Code reviews
    • 5.14. Buddy programming
    • 5.15. Modules, libraries, and similar
    • 5.16. Software licenses
    • 5.17. Pseudocode
    • 5.18. Co-pilot and other AI tools
  • 6. Programming fundamentals
    • 6.1. Scripts vs. programs
    • 6.2. Functions
    • 6.3. Mutable vs. immutable
    • 6.4. Variables
    • 6.5. Objects
    • 6.6. Data types
      • 6.6.2.1. Booleans
      • 6.6.2.2. Integers
      • 6.6.2.3. Floating point numbers
      • 6.6.2.4. Strings
        • 6.6.2.4.3.1. Text encoding
        • 6.6.2.4.5.1. Special characters
        • 6.6.2.4.5.2. Escape sequences
        • 6.6.2.4.5.3. Raw strings
        • 6.6.2.4.5.4. Number formatting
      • 6.6.2.5. Null data types
      • 6.6.2.6. Datetimes
      • 6.6.2.7. Dataframes
    • 6.7. Conditionals and loops
    • 6.8. Scope and namespaces
    • 6.9. Error handling (asserts and exceptions)
    • 6.10. Design patterns
    • 6.11. Shallow vs. deep copies
    • 6.12. Memory management
    • 6.13. Stack and heap memory
    • 6.14. Pointers and smart pointers
    • 6.15. Lifetimes, borrowing, and “modern” approaches
    • 6.16. More advanced topics
  • 7. Wider factors to consider
    • 7.1. Common mistakes
    • 7.2. Security and risk
    • 7.3. Sustainability
    • 7.4. Equality, Diversity, Inclusion and Accessibility

University of Manchester logo

  1. Part 1
  2. Search

  • The University of Manchester
  • Canvas
© Copyright 2026 The University of Manchester. Released under CC-BY-NC-ND 4.0 license. Course copyright statement.