Computer Science Concepts

Course Outline

This two day course is designed for teachers who will be covering the following achievement standards:

Pre-requisites

Basic knowledge of programming is recommended, but not required. Preferred languages include Ruby or Python. If you have no programming experience, we recommend you take either A Gentle Introduction to Ruby or A Gentle Introduction to Python.

Your own laptop preferably running either Linux or Mac OS X. Windows is okay too, but generally more complex to setup for programming.

Course Details

Day 1: Introduction to Computer Science

We will be covering the key concepts that define Computer Science [AS91074]. This includes reviewing basic problem solving, logic and mathematics. The concept of an algorithm will be discussed and we will be looking at how they are expressed systematically through the use of programming languages.

We will be reviewing basic usability issues [AS91074] including a historic review of human-computer interaction advancements with an emphasis on early programming languages and computer hardware through to modern operating systems and applications. We will be reviewing modern advancements in mobile technology including topics from augmented reality.

Day 2: Algorithms and Data Structures

We will be reviewing basic sorting algorithms from a high level [AS91075], including both recursive and iterative forms. We will look at the computational complexity and running time of various different algorithms and discuss the related concepts, including the Big-O notation.

We will then implement a specific algorithm for sorting and counting words [AS91076].

As time permits, we will review hash tables, another interesting data structure, and the associated algorithms. Remaining time will also be used for Q&A.

Resources

Information covered in the course will be written up and provided online to attendees of the course. All source code and associated documentation will be made available for use in your own classes.