UQ SMP Inter-semester Programming Boot Camp (PBC)
Winter 2023




The first edition of the boot camp is now completed. The boot camp ran during July 5 - July 13, 2023. Here are some excellent student projects:

Overview

About: Programming has become a central competency of mathematics, physics, and related industrial applications. Needless to say programming is important for students at UQ's School of Maths and Physics, SMP. The ability to understand and write computer code is critical to success in coursework, research, and industry.

Some students have experience in programming acquired during secondary education, the job market, or other coursework at UQ, while other students have little or no programming experience. The purpose of the Programming Boot Camp (PBC) is to enable students that have less programming ability to “catch up”.

The PBC may serve as useful preparation for students prior to courses such as MATH2504, COSC2500, and more advanced SMP courses such as STAT3007, MATH3204 and others.

Not for credit: The PBC is a not for credit event. It is sponsored and supported by SMP, and open to all UQ students that have met criteria as described below. It is held between semesters, with the first (pilot) PBC to be held during early July 2023.

Eligibility: The PBC is open to any student currently enrolled in UQ that has taken (passed or attempted) at least three of: MATH1051, MATH1071, MATH1052, MATH1072, MATH1061, STAT1301, PHYS1001, PHYS1002, and SCIE1000.

Students that have taken and passed any of the following courses may not enroll in the PBC: CSSE1001, ENGG1001, MATH2504, STAT3007, MATH3204.

Duration and format: The PBC spans 6 calendar days across two weeks between semesters. Each day has 5 hours of in-person meeting time, including an hour break. The meetings are in a large study room in UQ St Lucia Campus. Students are required to bring their own laptops. Additional daily online support zoom meetings are also held. During the in-person meetings students work through guided activities in class, supported by tutors and mentors. During the zoom meetings, students are supported on their work on the activities and towards a final project. Final projects are not directly checked or graded. Nevertheless, a platform encouraging students to share links to their final projects on GitHub is provided.

Cost and dates: The registration cost after June 2, is $75 until the final registration date, July 3. There were over 30 registrants with early bird ($50 until June 2). We have a capacity of 50. There are still a few spots left. If you wish to register, use the payment portal before spots run out.

The cost essentially helps with snacks and refreshment costs provided during the 6 days. Registering and paying for the PBC is mandatory, yet in exceptional circumstances, students that are not able to pay may seek support. Tutor, mentor, materials, room, and other costs are supported via UQ and SMP.

For any queries contact SMP Mathematics Admin (Murray Kane).

Python: The focus of the boot camp is programming with the world's most popular programming language, Python. Students do not need to have any prior programming experience with Python or any other programming language. In contrast to other SMP courses (e.g. MATH2504) that require the students to quickly pick up advanced programming concepts, the boot camp helps students progress through the elements of programming gradually. It is recommended that students install Python and supporting software on their personal computers (see installation video below).

Staff: The boot camp instructors include Ashleigh Richardson, Miriam Elliott Haynes, Amy Zhao, and Saskia Van Ryt. The boot camp is coordinated by Yoni Nazarathy and also supported by Murray Kane, Meagan Carney, and others from SMP.

Buddies: In some of the sessions, you can get a buddy! Research academics from SMP and other parts of UQ will be available to sit next to you as a bouncing board of ideas and logic. Use their help to work things out! Thank you already to the buddies: Cecilia Gonzalez Tokman, Jacinda Ginges, Paul Vrbik, Jacqui Romero, Carlos Campuzano, Jason Werry, Jesse Slim, Matt Edmonds, David Gwyther, Kazu Yamazaki, and Michael Forbes.

Content Explored

The content studied includes basics that one may encounter in an introductory Python programming course (excluding object oriented content). This includes, variables, conditional statements, loops, functions, lists, tuples, dictionaries, string manipulation, and basic input and output. Mathematical and physical aspects such as working with numerical arrays and plotting are not the focus. The focus is rather on basic logical design of elementary computer programs. Usage of multiple environments such as Spyder, Jupyter, and basic command line are taught. Elementary usage of git and GitHub is also taught.

The final project is the creation of some form of the game of chess. Students may choose to work on their final project in pairs, triples, or without a partner. Students that wish to incorporate plotting and graphics may also do so in the final project, yet these aspects of Python and supporting libraries are not directly covered.

Note that this is not a fully Python course. Importantly, most aspects of object oriented programming, working with files, using libraries, numerical and data science computations, and other aspects of Python are omitted. This is rather an "introduction to programming boot camp using Python". If you are already doing some programming and are looking for a course to improve your Python skills, then this boot camp is not for you.

All content is made available on the PBC's GitHub project. This includes Jupyter notebooks, scripts, tasks, and the project guideline. See also the YouTube playlist for the boot camp. Key links and videos are summarized below as well.

Participants are required to attend with their laptop and chargers (be in contact with us if you have a problem with this). Initial instructions for software installation and setup are below.

A video with instructions will appear here soon.

Schedule

All meetings are in room 46-342 (Andrew Liveris building) where students are required to bring their own laptops. Refreshments and light snacks are provided in the room. Lunch is not provided. Zoom sessions will be on one or more parallel groups with provided links.

Date Day 10am -
12pm
12pm -
1pm
1pm -
3pm
7pm -
8pm
July 5 Wed Getting started (Ashleigh) Lunch Variables (Saskia) Zoom Support (Miriam)
July 6 Thu Conditionals (Saskia) Lunch Loops (Ashleigh) Zoom Support (Amy)
July 7 Fri Functions (Ashleigh) Lunch Lists and Dictionaries (Saskia) -
July 11 Tue Stand alone programs (Saskia) Lunch Project outline (Ashleigh) Zoom Support (Miriam)
July 12 Wed Project work (Ashleigh) Lunch Project work (Saskia) Zoom Support (Amy)
July 13 Thu Project work (Saskia) Lunch Project work (Ashleigh) Final Zoom Support (Miriam)

Projects are due on Friday 2pm, July 14. Students may share a video presenting their project and a GitHub link to the source. These links will be posted online upon students' permission.

Boot camp content

Days 1, 2, and 3 in the first week each have a dedicated Jupyter notebook with specific tasks. The goal of students in the first week should be to tackle most of these tasks with potential spill-over to the second week.

Before the boot camp, prepare your system:





Also before the boot camp (or on the first day), think about GitHub:





Days 1, 2, and 3 each have their own dedicated Jupyter notebook where you may find tasks.

Instructors will guide you through these tasks, yet feel free to watch videos ahead of time.

One way to work in these days is to have a separate .py file in Spyder for each of these tasks. You can then (at some point during the boot camp) commit these files to your own organized GitHub repo which will showcase your work. Having a public repo is perfectly fine.

Days 4, 5, and 6 are a time to focus on the chess game project.

Note that you may also use these days to complete tasks associated with the first 3 days if you feel this is needed.

The chess game project is best done as a collection of .py files that form a runnable program. This will be demonstrated in day 4. See the Tic Tac Toe Example video 📹, since the Tic Tac Toe example can give ideas for how to create the chess game.

For the final project see this video:

There is no marking of the projects, yet groups may share links to their project repo and these will be posted here. At the end of the boot camp, simply e-mail a link to your project on GitHub to SMP Mathematics Admin (Murray Kane). Please also e-mail any feedback that you have on what worked for you, and what can be improved for the next round.

Additional Resources

Tools: Python, Anaconda, Jupyter, Spyder, PyCharm, Git, GitHub

Tutorials, Reference, Books: W3Schools Python, The Python Tutorial, Python cheatsheet, Think Python book by Allen B. Downey

Useful: Stack overflow, chat GPT 3

Back to top