This is complementary material for the CSC148 course presented at the University of Toronto. In this series of code design and implementation tutorials, we aim to provide insight into the programming design and implementation process using Python. Our approach is to demonstrate how we tackle problems and code solutions. You will see that encountering problems and difficulties (bugs!) is quite common, and gradually we can gain expertise to solve these issues. Furthermore, every question and problem introduced in this set of tutorial materials comes with a solution. If you are interested in solving the problems, that would be great! However, if you are busy with other tasks, we suggest you also review the solutions and understand them as much as possible, as we believe this will provide valuable insight into how to approach problems in general.
These materials are divided into three sections:
- Section 1 - [Reading Time: 30 minutes]. This section covers sections 1.3 and 1.4 of the course notes and focuses on designing a function to be used in the simulator above. We go through the entire process of design, implementation, and debugging to familiarize readers with the general experience of a programmer.
- Section 2 - [Reading Time: 40 minutes]. This section covers section 3 of the course notes and focuses on object-oriented programming. The main objective of this section is to show readers the advantages of object-oriented programming. While doing this exercise, we also provide an experience of approaching other programmers' code bases, which is a common task in practice.
- Section 3 - [Reading Time: 15 minutes]. This section covers Section 6 of the course notes, which is about Linked Lists. In this part, we go through the design and implementation of a linked list that will be used in our simple particle simulation. We will see how to create a sorted linked list. This section also provides a solution for the exercise at the end of Section 6.3.