"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
- The Ten Principles of Cyber Security
- TED Talk Keren Elazari: hackers the internet s immune system
- TED Talk Avi Rubin: all your devices can be hacked
- TED Talk Rodrigo Bijou: governments don t understand cyber warfare we need hackers
- TED Talk Lorrie Faith: cranor what s wrong with your password
- TED Talk Chris Domas: the 1s and 0s behind cyber warfare
- TED Talk Christopher Soghoian: a brief history of phone wiretapping and how to avoid it
Ethics
- ACM Code of Ethics and Professional Conduct
- IEEE Code of Ethics
- Computer Ethics Institute's Ten Commandments
Processing
- The Processing Web Site
- Some pictures you can easily access from processing
- ball.pde - ball game starter code
- bouncingBalls.pde - ball game starter code
- image.pde - picture encryption starter code
- box.pde - box2D starter code
- box2DSample.pde - box2D starter code
- colorNames.pde a convenient list of color names
- colorLister.pde to list out color names and example swatches
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.
- The Python Site for all things Python including downloads
- A good tutorial to start with
A Reading List
- We Can Code It! Fabulous survey article on the need for computer literacy and also on the associated diversity issues.
- The Importance of Computational Thinking Jeannette M. Wing, Carnegie Mellon University. Seminal opinion piece!
- Understanding Computer Programming as Literacy by Annette Vee, University of Pittsburgh
- The National Curriculum of England has 4 pages on computing and it crosses all grades!
- ACM Recommend Curriculum for K-12 A committee from the Association of Computing Machinery describes what they feel is a good curriculum for K-12.
- Computer Science Teachers Association Curriculum Resources
- A NSF funded curriculum from LA schools this includes not only curricular materials but statistics on the effectiveness of the program.
- A list of reference books for this course. Not required. Just for your information.
- The Future is Computers.