CSCI 203 — Introduction to Computer Science I

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:
  • 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)
    1. log on to Linux
    2. go to the directory where the examples are: cd ~csci203/2009-fall/student/wittie/ibm
    3. launch the itty bitty machine: ibm &
    4. load a program: in the file menu, choose load and double click on an ibm program.
    5. 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,
    1. go to the directory where the examples are: cd ~csci203/2009-fall/student/wittie/
    2. look at what directories are there: ls
    3. go into the directory you want: (for example) cd introToJava
    4. look at what directories are there: ls
    5. open a file using emacs or gedit: (for example) gedit HelloWorld.java &
    6. compile the files: (for example) javac HellowWorld.java
    7. 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
    1. launch eclipse the usual way
    2. Make a project for class examples
    3. click on that project's name to highlight it
    4. click on the file menu and then import
    5. choose file system (under General) and hit Next
    6. click on Browse
    7. click on accounts from the buttons at the top.
    8. double click on COURSES from the options on the right side
    9. double click on csci203 from the options on the right side (Not cs203, thats an old course)
    10. double click on this semester (2009-fall) and then on student and on wittie
    11. 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).
    12. then click ok
    13. then click on the box next to each file you want. Only select java files, not class files.
    14. click Finish
    15. 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:
    1. Start with some spaces filled and some empty. Use an existing Sudoku game to get your starting numbers.
    2. Print the board with coordinates before each move.
    3. Take input coordinates and a digit from the user.
    4. Make sure the digit is 1..9 (no 0, no 'Q', no 122).
    5. Make sure the coordinates are actually on the board.
    6. Put the digit in the box. Do not let the user overwrite your starting digits. They can overwrite their own digits all they like.
    7. 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.