Encryption From Algorithm to Application
Recommended Classroom Hours: 4-8
Assessments: Available in Course
What is Python and why is it important?
Python is an interpreted text based general purpose programming language, which is a key requisite of the 7-10 Digital Technologies Curriculum. Python is also the only professional programming language that was designed with beginners in mind; it is intuitive and easy to use.
What are the student outcomes in this module?
Students learn about core concepts of programming; branching, iteration and functions. They apply these to create four applications which perform the following:
- Students will learn what encryption is and why it is useful
- Students use Python dictionaries to help with encryption
- Students write programs which encrypt messages using the Caesar Cypher
- Students write programs that break the code which encrypts the messages
What is the educational approach of the course as a whole?
The course explicitly teaches the concepts such as loops or functions, performing several examples in the interactive shell. Then these concepts are employed to create a computer program. These programs progress in their level of difficulty, eventually performing complex tasks like encryption. Beyond the concepts and applications students will also learn the following skills:
- Creating algorithms which can be represented in the form of flowcharts, which are in turn easy to translate to code.
- Building programs in separate stages, all of which can be tested
- Getting insight and understanding from error messages
What are the technical requirements?
- Students should have a Windows PC, a Mac or a Linux Computer
- Students should install the latest version of Python 3
- Students should have a basic understanding of Algebra (Yr 8 level)
- Ideally students have some previous programming experience (in any programming language)
Sanjin combines his passion for teaching and education with an in-depth understanding of a vast array of technologies. He graduated in 2007 from The Australian National University, majoring in Robotics and Computer Vision. He has a unique ability to adapt various engineering concepts into hands on classroom activities and teach everything from Scratch, Python, Arduino to Raspberry Pi to very young audiences. His role with Techxellent centres around doing this on a larger scale in an easy to follow ‘progression model’ which imbues students with a new mindset required for innovation and analytical thinking. In 2016 his goal is to raise the bar in student engagement with programming and robotics by enabling students to communicate with computers much like they do with their friends— using facial expressions and hand gestures.