Summer 2023 with IISc ACM-W Student Chapter
In this series, we will explore some programming ideas with focus on Python. The audience of this series is composed of rising university sophomores, and our model project will be an agent-based disease-spread simulation. I thank Yukta Subramanian from the ACM-W Student Chapter for her help in coming up with the project idea.
Topics discussed
- Steps in the problem-solving process
- Examples in applying computational thinking
- Homework: Think about Merge Sort
- Homework: Solving the problem of Tower of Brahma
- What is a programming language?
- Notion of completeness of programming languages
- Completeness of Python and introduction to some basic constructs
- Introduction to the model project
Until next time: Applying computational thinking to the model problem.
Next time: We will start building the simulation!
Resources
Session Slides Session notesTarushri Manappurathu Session Recording
Topics discussed
- The merge sort algorithm
- Solving the Tower of Brahma
- Ideas on variables, parameters, constraints and assumptions in our model
- What we mean by solving through simulation
Until next time: Coming up with a description for the algorithm in our simulation.
Next time: We will start building the model and hopefully begin coding!
Resources
Session Slides Session RecordingTopics discussed
- Some basic set-up for the simulation
- Working out algorithm to find infection at an instant from the previous instant
- How do we make code scalable with lists and loops?
Next time: Working on the recovery part of the simulation, and hopefully getting to the end and observing the results!
Resources
Session Notebook Session RecordingTopics discussed
- Finishing up the code for infection
- Writing code for recovery
- Experimenting with intial conditions
- Visualizing our results
A plot we generated during the session. The blue, orange and grey lines denote the number of susceptible, infected and recovered agents in the population respectively.
Next time: Introducing a more realistic parameter to model contact between individuals, and completing a simple model to answer some real-world questions.
Resources
Session Notebook Session notesSanika Borade
Topics discussed
- Identifiers and mutability in Python
- Discussion on rate of recovery
- Modelling contact
- Alternative models for contact based on distance or grouping
- Potential features that can be added to the model
- Real-world questions that can be answered by our model
A plot we generated during the session. The blue, orange and grey lines denote the number of susceptible, infected and recovered agents in the population respectively.
Next time: Discussion on what modifications everybody is working on, and troubleshooting.
Resources
Session Notebook Session RecordingTopics discussed
- Troubleshooting code by participants
- Discussion on what modifications everybody is working on
- Feedback on the series
Next time: An offline meet-up to showcase what everybody has done!