"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
Course Description
This course is nearly identical to CS112. This is the FAQ for CS505. It can be used as:
- professional development course for understanding the very most basic ideas of computer science.
- to prepare to teach CS112 as a Dual Credit course.
- as the first course in a series courses (20 credits total) to gain a Certificate in Computer Science Education through the University of Idaho leading to a teaching endorsement in Computer Science.
Specifically, this is an introduction to the field of Computer Science. Some discussion of how this material could be presented in a K-12 setting will be discussed including the future of Computer Science education in K-12. Computer Science content will cover the breadth and impact of computer science on society; and what it means to be a computer scientist. A large portion of the class will be devoted to introducing the major concepts of computer science, and the background needed to be successful as a computer scientist such as tools, terminology, and introductory PROGRAMMING SKILLS. You will have to think, problem solve, and practice skills in this class.
One way to introduce Computer Science is by learning to program. All of the assignments will be programming assignments in a variety of computer languages of varying complexity, hopefully in an entertaining way. This course is for people who have little to no programming experience. It should comfortably give you confidence in the deeper technical side of computers. This course is not about how to use applications on a computer! It is how to begin to bend a computer to our will by designing and writing programs.
Time: MWF 4:30-5:30 PT Final: None (see testing schedule) Location: EP 204 Moscow Campus (Zoom Video Live, also in CDA and IF video classrooms.) |
|
Text:
None (see the resources section throughout the semester)
|
Estimated Syllabus
This syllabus is an estimate of what we might cover this semester. The class varies from semester to semester to reflect new and interesting topics and the rate at which the class is absorbing material.
Wk# | Monday |
Topics/Links | Assignments | Comments |
---|---|---|---|---|
1 | Aug 21 |
Context. Software is everywhere. The information age.
What is computer science?
Computer science is about organizing process and data.
Any limits to computing?
Information and Representation: Files and data. Number systems and encoding things in bits. Hardware and Software. Operating Systems duties. |
||
2 | Aug 28 | Intro to Programming in Scratch, the Scratch interface, simple programming. x-y coordinate system. Sprites and motion. Program flow, loops, decisions. | Assignment 1 | |
3 | Sep 4 | More simple programming, threads of execution, introducing pong | NO CLASS MONDAY (LABOR DAY) | |
4 | Sep 11 | The Pong game and multiple threads of execution, inter thread communication, interaction of sprites and background. What does it mean to be random? Randomness in our programs. Estimating pi and making random choices. | Assignment 2 | |
5 | Sep 18 | I'm Thinking of a Number the guessing game (threads, messages, variables, scope (local and global)), Submarine hunter game (sounds, sensing, images, and more messages) | Assignment 3 | |
6 | Sep 25 | NetLogo and the dance program to understand turtles location and movement. Discrete vs continuous coordinate systems. The blocks program to understand patches. The virus simulator. | TEST OVER HW, OS, ETC AND SCRATCH | |
7 | Oct 2 | More virus simulation and the rabbits and grass simulation, plotting graphs and histograms, wolves and sheep, mathematical models and computer models, more on working with patches, the game of life, the philosophy of computing | Assignment 4 | |
8 | Oct 9 | more game of life and control structures | Assignment 4T, Assignment 5 | |
9 | Oct 16 | Simple graphics with the Processing language, coordinates and shapes, the syntax of languages, the idea of type, the execution model, frame rate, mouse position | ||
10 | Oct 23 | Color models, control, loops, nesting of loops, functions, data vs function abstraction, new shapes with sine/cosine/radians and degrees. Translating between polar and Cartesian coordinates. | TEST OVER NETLOGO | |
11 | Oct 30 | The clock program, program design, functions, interfaces. | Assignment 5 | |
12 | Nov 6 | 1D Arrays, 2D arrays, image processing, nested loops, objects What so useful about subscripting a variable? Making simple image filters. Making some exotic image filters. | Assignment 6 | |
13 | Nov 13 | More on Arrays. The object paradigm. Abstraction of function AND data. Review of variable scope. What's so great about objects? Tic-tac-toe. | Assignment 7 | |
14 | Nov 20 | NO CLASS THIS WEEK | Fall Break | |
15 | Nov 27 | Can we detect edges in a picture? Fading between two images. More with color and transparency, saving images. | ||
16 | Dec 4 | Angles and direction. Text and the meter program. | TEST OVER PROCESSING | |
17 | Dec 11 | FINALS WEEK; |
References and Resources
General References
- CSAC hours for CS505. CSAC is the Computer Science Assistance Center and is staffed with people to help. They are now located in JEB 211.
- A Emacs editor reference card
- A Vim editor reference card
- Powers of 2
- ASCII table
- Computer Science Terms to Know
- Binary numbers: encoding things in bits
- Numbers representing colors
Scratch
- The Scratch Web Site
- Example code:
- None yet
NetLogo
- The NetLogo Homepage
- Example code:
- dance.nlogo
- blocks.nlogo
- life.nlogo
- virus.nlogo
- rabbitsAndGrass.nlogo
- oneOfThree.nlogo shows how to select between exactly three cases by nesting ifelses.
Processing
- The Processing Web Site
- A segment of code providing 170 color names as global variables. Put this file in the directory of your Processing program if you want to use these colors
- A handout on converting from angle to x y coordinates
- Three planetary slingshots to get to a comet!
- Some medium sized pictures to play with
- Example code:
CS in the News
- One company is optionally chipping their employees
- Lethal Autonomous Weapons Systems (LAWS) Kalashnikov's line of LAWS, UN background on LAWS
- Life saving medical delivery drones by Zipline fly in Tanzania
- 3D printed violin demonstration
- design of 3D printed violin
- Scientists use computers to find possible Planet X
- India and mobile payments
- Learning to identify a location from just picture
Services
- Due to a situation beyond my control, the homework submission page will no longer be used. We will be using BBLearn for the rest of the semester.