Object-oriented

programming

getting started for Australian teachers


Welcome

Please start with the video below.

Intro.mp4

Help! I'm new to
Python and JavaScript

If you and your students do not have experience with fundamental General Purpose Programming concepts, we do not recommend starting with this online workshop.

Click here for links to recommended resources.

Also, see below for face-to-face workshops offered in Victoria in 2021.


Online sessions & live workshops

Online Q&A

During 2021, teachers across Australia were able attend casual, online meetings hosted by the developers of this resource to ask questions and share ideas.

Online Q&A sessions are now concluded for 2021.

Please contact DLTV if you have questions or feedback on this resource.

Face-to-face workshops

During 2021, teachers in Victoria were able to register for full-day, face-to-face workshops delivered by the developers of this online resource.

Face-to-face workshops are no longer available to book for 2021.

Please use the button below to subscribe to DLTV's newsletter for any upcoming related workshops and webinars.

Who made this?

This online workshop was developed in 2021 by professional learning providers and teachers connected with Digital Learning and Teaching Victoria (DLTV), the subject association for Digital Technologies teaching in Victoria.

This resource is made possible by funding from Google Educator PD Grants.



Let's get started


PART 1: Familiar ways for structuring data

View the informational video at right, then proceed to the tutorials in Python or JavaScript below.

Part 1.mp4


PART 2: Structuring data better

View the informational video at right, then proceed to the tutorials in Python or JavaScript below.

Access the PDF for the poster activity here.

Part 2 - Structuring data better.mp4

Python tutorials

i. Writing the Pet class

ii. The special __str__ method

iii. Making a list of Pet objects

iv. An alternate example - the Car class

JavaScript tutorials

i. Writing the Pet class

ii. Customising how an object prints

iii. Making a list of Pet objects

iv. An alternate example - the Car class


PART 3: Truly functional objects

View the informational video at right, then proceed to the tutorials in Python or JavaScript below.

Access the PDF for the poster activity here.

Part 3 - Truly functional objects.mp4

Python tutorials

i. Writing methods

ii. Making attributes private

iii. Methods for getting and setting

iv. Working with a list of objects

JavaScript tutorials

i. Writing methods

ii. Making attributes private

iii. Methods for getting and setting

iv. Working with a list of objects

v. (Optional demo) Property behaviour


PART 4: A complete Object-oriented program

View the informational video at right, then proceed to the tutorials in Python or JavaScript below.

Part 4 - A complete Object-oriented program.mp4

Python tutorials

i. Writing and testing the Fighter class

ii. Improving the Fighter class to simulate a battle

iii. Making the health attribute private

iv. Making it a true game by adding a skill attack challenge

v. (Optional demo) A very brief introduction to inheritance

JavaScript tutorials

i. Writing and testing the Fighter class

ii. Improving the Fighter class to simulate a battle

iii. Making the health attribute private

iv. Making it a true game by adding a skill attack challenge

v. (Optional demo) A very brief introduction to inheritance


PART 5: Object-oriented programming in graphical games

Overview video will be available soon.

Game design platforms for Python and JavaScript

PyGame (Python)

Pygame.mp4

Ursina (Python)

UrsinaEngine.mp4

GameLab and AppLab (JavaScript)

gameLabAppLab.mp4

Kaboom (JavaScript)

Kaboom.mp4

In-depth tutorials for PyGame (Python)

The offline Mu editor is used for this final series of tutorials. Mu will need to be installed on teacher and student devices to proceed.

i. Setting up PyGame

ii. Starting the Hero class for Space Invaders

iii. Improving the Hero class

iv. Writing the Bullet class for projectiles

v. Writing the Enemy class for enemies

vi. Making the game more playable