INFO1110: Introduction to Programming

University of Sydney• 2024 S2
Completed
logo
Python
Object-Oriented Programming
Shell Scripting

Developed foundational skills in procedural programming and algorithmic problem-solving using Python.

Learning Outcomes

  • Structured Programming: Designed, implemented, and tested procedural programs from specs; used control flow (if/else, loops, functions).
  • Algorithm Design & Code Readability: Composed clear algorithmic solutions and followed style conventions for maintainable code.
  • Memory & Scope: Understood stack vs references, variable lifetime, and traced execution across scopes.
  • Array & Recursion Patterns: Implemented array patterns (min/max, sum, search) and recursive functions for numerical/array tasks.
  • Testing & Debugging: Practised systematic testing and debugging; wrote test cases and used standard libraries effectively.
  • Compilation & Tools: Gained practical understanding of the compilation/build process and debugging mechanisms.

Takeaways

This course was my very first step into programming, and it built my foundations in Python from the absolute basics—variables, loops, and functions—all the way to advanced concepts such as classes, inheritance, generators, and even shell scripting. Because it was the first run of a newly reformed curriculum, the structure was highly rigorous: every task and assignment had a strict standard, and I could not progress unless I reached it. This “threshold-based” learning model pushed me to truly master each stage before moving forward. The assessments included three challenging assignments and two in-person tests, which required not only correct solutions but also efficient, readable, and well-tested code. The latter half of the course was especially demanding, with advanced topics introduced at a rapid pace, but it was also the stage where I experienced the most growth. By the end, I had not only learned how to code but also how to think like a programmer—systematically breaking down problems, testing aggressively, and building solutions step by step. This course gave me the confidence and discipline that carried over into every later computing subject I took.