Section 02 — Prof. Wittie
Announcement: The first reading assignments and reading quiz are available!!
Syllabus for this section.
The in-common
Course Schedule
The in-common Course Website
Office Hours can be seen
here.
Additional Office Hours are also available by email appointment.
Lab Policies and Late Assignment Policy
Collaboration Rules
for all work in this section:
- Reading Quizzes: Collaborative Discussion, Individual Writeup
- In-class Quizzes: Individual Work, Closed Exam
- Labs: Collaborative Discussion, Individual Writeup
- Projects and Programming Assignments: Individual Work with Design Discussion. You are allowed to discuss design.
You are not allowed to show someone your code. Basically, you can talk while not having anyone's code available.
Other people may not interract with your code.
- Midterm Exams: Individual Work, Open Study Sheet Exam
- Final: Individual Work, Open Study Sheet Exam
How to install Eclipse on your home Windows machine (Only do step 1. Ignore directions for Subversion and Violet).
Reading Quizzes and grades can be found here.
Reading Quizzes are due by 8am on the day the reading is listed.
Labs can be found here.
Notice that you must drop by the
beginning of the lab even if you complete it before lab starts
in order to get full credit.
Midterms currently scheduled for Wednesdays 9/30 and 11/4.
Examples, Handouts, and Other Course Links
IBM handouts
What's in a computer?
To run the Itty Bitty Machine examples (do the first part of lab 1 first)
- log on to Linux
- go to the directory where the examples are:
cd ~csci203/2009-fall/student/wittie/ibm
- launch the itty bitty machine: ibm &
- load a program: in the file menu, choose load and double click on an ibm program.
- The first fetch has been done for you. Everytime you click on Step that instruction will execute and then the next instruction will be fetched.
IBM worksheet
Java 6 API
To run the code examples from class,
- go to the directory where the examples are:
cd ~csci203/2009-fall/student/wittie/
- look at what directories are there: ls
- go into the directory you want: (for example) cd introToJava
- look at what directories are there: ls
- open a file using emacs or gedit: (for example) gedit HelloWorld.java &
- compile the files: (for example) javac HellowWorld.java
- run the files with the name of the one which has main: (for example) java HellowWorld
To import the code examples from class into your eclipse
- launch eclipse the usual way
- Make a project for class examples
- click on that project's name to highlight it
- click on the file menu and then import
- choose file system (under General) and hit Next
- click on Browse
- click on accounts from the buttons at the top.
- double click on COURSES from the options on the right side
- double click on csci203 from the options on the right side
(Not cs203, thats an old course)
- double click on this semester (2009-fall) and then on student and on wittie
- click once on the directory which contains the programs you want
(you can double click to go into it but click on wittie at the top to come back out of that directory after you see it).
- then click ok
- then click on the box next to each file you want. Only select java files, not class files.
- click Finish
- drag your files into the src directory of your project if they aren't already there.
Review for Exam 1
The Aliens Handout and Aliens designed by CS 203
The Stock Class Handout
The Mixed-mode math Handout
The Selection Handout
The Shoot the Orange Selection Handout
Cannon.java The Cannon class for the
"Shoot the orange" game.
Ruler.java The Ruler class for the
"Shoot the orange" game.
The Combos and Secrets Selection Handout
Review for Exam 2
Lottery worksheet
Arrays
2D Arrays
Reading Quizzes
Found on BlackBoard.
In-Class Quizzes
Answers for Quiz 1
Answers for Quiz 2
Answers for Quiz 3
Answers for Quiz 4
Answers for Quiz 5
Answers for Quiz 6
Extra Credit
Each EC assignment is worth .2 added to your overall course grade.
Some EC assignments have a specific due date.
The rest are due by 5PM on the last day of lecture this semester.
Handin using the drop boxes unless otherwise specified. EC is Individual
Work (open textbook) unless otherwise specified.
Class Survey. Due by 5PM 9/28 for those
who missed the first day of class. Hand in during lecture.
Do Problems 4,6,8 from the IBM worksheet. Due by 5PM 9/29.
Write an IBM program which reads in two 2-digits numbers and
adds them. Use the same math process you'd use on paper (add a column,
carry any tens to the next column). Display the answer with one digit
per box. You can discuss the algorithm for addition (how to add two
2-digit numbers) with anybody you like. Writing the IBM code for it is
Individual Work. Due by 5PM 9/29.
Draw your own Alien face. It must use a rectangle, an ellipse, a line,
a color, and a text string. Due by 5pm on 9/30 (the first exam day). See
handout above.
We wrote methods for several Stupid Math Tricks in class. There was one
more math trick we left undone (about series). Write a method to perform
this trick. Due by 5pm on the day of the second exam. The class and the
comment for this method can be found
in ~csci203/2009-fall/student/wittie/writingMethods/
Do the EC from the Stock handout. Due by 5pm on the day of the second exam.
DO the Mixed mode math handout. Due by the 2nd exam day.
Answer the API questions.
Do the last problem on the selection handout. Due by the 2nd exam day.
Get the Cannon and Orange game running. Must use selection in both the viewer and the orange. Due by 11/15.
Get the combos and secrets working. Due by 11/15. Must use selection with the combo to get EC. Full EC requires that you set compare each digit of the combo seperately. Partial EC also available if you just do a simple string comparison. (Its because the point of this is to write non-simple selection statements).
Do the Lottery worksheet. Here is the second data set.
Do the Arrays handout and
get it running in Eclipse. You will have to write code to instantiate
and fill the array.
Do the 2D Arrays handout and
get it running in Eclipse. Make sure you can play the game.
Got some extra free time? Sudoku is a game with a 9x9 grid where the user must place the digits
1..9 so that they occur once in each row, once in each column, and once in each 3x3 box.
Read up on this game and then write a program to let someone play Sudoku. Your program must:
- Start with some spaces filled and some empty. Use an existing Sudoku game to get
your starting numbers.
- Print the board with coordinates before each move.
- Take input coordinates and a digit from the user.
- Make sure the digit is 1..9 (no 0, no 'Q', no 122).
- Make sure the coordinates are actually on the board.
- Put the digit in the box. Do not let the user overwrite your starting digits. They can overwrite their own digits all they like.
- When the board is completely full, tell the user if they have won.
You must write this code yourself. Cite any websites, newspapers, or books you use for information. I have not given you many game details here so unless you are a die-hard Sudoku player, I expect to see at least 1 cited reference. Worth up to 3 extra credits!!!!
Links (for the purposes of citation, these links are not part of the course and would have to be cited if used).
Wired 11.09: The New Diamond Age 2003
CNet News: AMD to demo a dual-core desktop chip 2005
The Future of Things: Nano-Diamonds Might Lead to Quantum Computing 2008
Science News: Nanoscale Lasers May Open Door To Faster Computers,
More Reliable Internet Access 2009
Wired: Tech Designed for Music Charts Analyzes Stock Market 2009
Science News: Grid Computing, The New Commodity 2009
Science News: Nuclear Fusion Research Key To Advancing Computer Chips
2009
Science News: Let There Be Light: Teaching Magnets To Do More Than Just
Stick Around 2009
Science News: 45-nanometer Chips For Ultra-fast WiFi 2009
Science News: Computer Scientists Take Over Electronic Voting Machine
With New Programming Technique 2009
Science News: Legislation Is Restricting Internet Access, Expert Warns
2009
Science News: Robot's Gentle Touch Aids Delicate Cancer Surgery 2009
Scientific American: Origin of Computing 2009
PCAuthority: Computer History Museum Photo Gallery 2009
NYTimes: After the Transistor, a Leap Into the Microcosm 2009
Wikipedia: Moore's Law concerning how fast new computer technology
is developed.
Wikipedia: Amdahl's Law concerning how much improvement a whole
system sees if your only improve part of it.
Wikipedia: Bell's Law concerning how types of computers evolve and
die out.
Wikipedia:
Wirth's Law concerning the speed at which bloated software negates
all the advances brought to us by Moore's Law
Random wierd half-related things (for the purposes of citation, these links are not part of the course and would have to be cited if used).
METHOD AND APPARATUS FOR MAKING A SANDWICH
2005. McDonalds tries to patent the sandwich,
available on the patent office website.
Fortunately in a report released on 10/3/09,
the international patent office rejected the patent as un-original.