"Computer Science is no more about computers than astronomy is about telescopes." -- (often attrib. to) E. W. Dkijstra

"Computers are dull and boring; humans are clever and imaginative. We humans make computers exciting. Equipped with computing devices, we use our cleverness to tackle problems we would not dare take on before the age of computing and build systems with functionality limited only by our imaginations." -- Jeannette Wing

Schedule

There will be a break in both morning and afternoon sections to rest our brains.

Monday, July 25

Time Activity Comments
9:00-9:40 Introduction and survey
9:40-10:20 setup, draw, syntax, syntax errors, size, how class will play with code as a way to learn, coordinates in Processing, commenting, Task01, lesson about using variables rather than constants (width, height) Task01: put a rectangle in each corner
10:20-10:35 Snack Break
10:35-11:30 types (int and float), declarations of variables, why variables are useful, local vs global (scope)variables, make var local and discuss "var not used" and "var does not exist", the power of locality, random(x, y), println(), fill, RGB colors, the meaning of 255, calling functions with arguments is a very powerful idea such as putting a function call for an argument, saving your program Task02: random positions and random sizes and colors
11:30-12:00 Cyber security: computer security is important, introduction to 10 principles, use a castle as an example, hard to balance service with security.
12:00-12:30 Lunch
12:30-1:30 mouseX, mouseY controlling a circle, background, alpha in color and fading the circles, get circle to move left to right using a global variable, keyPressed callback, if statement syntax on key, use wsad keys to control x and y of circle movement.
1:30-2:00 TED talk and discussion of computer security: All your Devices can be Hacked
2:00-3:00 Bouncing ball and if statements, objects/classes, constructors, declare and define of objects, instances of objects, defining and calling methods.

Tuesday, July 26

Time Activity Comments
9:00-9:40 Return to where we were yesterday. Talk about functions, definition vs invocation. Review syntax and functions we know. Recover our bouncing ball program from yesterday. Task01: put in more than one ball, change how the ball is drawn to have a face on it.
9:40-10:20 Do the task of adding multiple balls. Now do the bounce. Introduce the || operator.
10:20-10:35 Snack Break
10:35-11:30 Add color to the balls (update data and methods). make the color change when it bounces. Have the balls random sizes and change size.
11:30-12:00 Cyber security: modularization and information hiding
12:00-12:30 Lunch
12:30-2:15 nested loops and how they work, incrementing a separate variable inside a loop, the Processing map function, HSB color vs RGB
2:15-3:00 Computer security ethics

Wednesday, July 27

Time Activity Comments
9:00-10:30 Recursion! Doing simple recursion and then fractals to show recursion in action
10:30-10:45 Snack Break
10:45-11:30 More recursion!
11:30-12:00 Cyber security: abstraction and resource encapsulation
12:00-12:30 Lunch
12:30-1:30 Loading, displaying, saving images, manipulating images, 2D arrays
1:30-2:00 ZZZ
2:00-3:00 encryption of images using xor and LSB encoding showing both true encryption and stegnography.

Thursday, July 28

Time Activity Comments
9:00-10:30 Xor cyptography, Task: using paper and pencil to do xor encryption of binary, every file contains binary, everything is binary, import xor encryption starter code, encrypt and decrypt code. Talk about stegnography and LSB hiding of picture.
10:30-10:45 Snack Break
10:45-11:30 start with bouncingBall starter code and start converting to game, add a score for clicking on a ball, display score as text: Text(), textSize(), textFont(), textMode()
11:30-12:00 Cyber security: domain separation and process isolation
12:00-12:30 Lunch
12:30-1:30
1:30-2:00 TED talk and discussion of computer security: TED Talk Lorrie Faith Cranor: what s wrong with your password
2:00-3:00

Friday, July 29

Time Activity Comments
9:00-10:30 chow CS people think about objects. Math is important. Tomagotchi game from an object point of view with Pet=A Network. Security and networks and secure/useful
10:30-10:45 Snack Break
10:45-11:00 Continue with Network Tomagotchi
11:00-11:30 Cyber security:
11:30-12:00 Cyber security: Closing Surveys
12:00-12:30 Lunch
12:30-1:30
1:30-2:00 TED talk and discussion of computer security: TED Talk Lorrie Faith: cranor what s wrong with your password
2:00-3:00 CS as a career

Cyber Security

Ethics

Processing

Python

Python is another great first computer language! I add it to this page even though we did not cover it in class because it adds a new dimension that the other languages are a bit awkward about and that is text processing. While you can do graphics in Python, its strength is more numerical and textual. There are even some good "intro to programming" books on Python. Python is free and is available for all kinds of machines (see below). There are two versions of Python that a close but incompatible: Python 2.7 and 3.x. Beware which you are using.

A Reading List