A picture of my schedule is available here

Please feel free to see any instructor or lab instructor if you have a question about the class or a problem with an assignment or lab.

CS 120 Computer Science I (4 cr). Fundamental programming constructs, Algorithms and problem-solving, Fundamental data structures, Overview of programming languages, Virtual machines, Introduction to language translation, Declarations and types, Abstraction mechanisms, Object-oriented programming. Three lec and one 2-hr lab a wk. Prereq: Math 108 or sufficiently high ACT, SAT, or Math Placement Test score to qualify for Math 143.

.

Your grade will be calculated using the following percentages:

Two mid-semester exams | 30% | |

Final exam (comprehensive) | 20% | |

Quizzes | 15% | |

Programming assignments | 15% | |

Labs | 20% | |

Total | 100% |

The letter grade you receive from the course will be determined as follows:

90%-100% | A | |

89.9%-80% | B | |

79.9%-70% | C | |

69.9%-60% | D | |

Below 60% | F |

Any class announcements will be posted here.

- Assignment #1 here.

- Assignment #2 here.

- Assignment #3 here. The nim program is available here

- Assignment #4 here.

- Assignment #5 here. The calculator program is available here

- Assignment #6 here.

- Assignment #7 here.

- Assignment #8 here . You can use the following links to download game.cpp and game.txt

- Assignment #9 here

The CursWin files: CursWin.cpp and CursWin.h

The next assignment will be to modify the Game of Life so that the initial game is loaded from a file, rather than filled randomly. You do not have to turn in your Game of Life program this week, but will need to turn it in next monday, with the added feature.

- Assignment #10 here

- Assignment #11 here

- Assignment #12 - the Last one! This assignment is for practice only - it doesn't need to be turned in. here

You will need an "SSH client" (program) to access wormulon.cs.uidaho.edu, which is the CS Department's Linux server. A program named PuTTY is recommended for Windows; On the Mac, the terminal.app can be used. On linux, you can use a shell.

- Lab 1 - here.

- Lab 2 - here.

- Lab 3 - here.

- Lab 4 - here.

- Lab 5 - here.

- Lab 6 - here.

- Lab 7 - here.

- Lab 8 - here.

- Lab 9 - here.

- Lab 10 - here.

- Lab 11 - here.

- Lab 12 - here.

- Lab 13 - here.

- Lab 14 - here.

Slides on general C++ concepts and features, arithmetic ( pdf or ps )

Slides on C/C++ compilation process ( pdf or ps )

Slides on C++ decision statements (if, switch) ( pdf or ps )

Slides on C++ control statements ( pdf or ps )

Slides on C++ looping statements (while, do-while, for) ( pdf or ps )

Slides on C++ functions ( pdf or ps )

Slides on C++ arrays ( pdf or ps )

Slides on C++ Two-dimensional arrays ( pdf or ps )

The example program we discussed in class is available here

Slides on C++ structs ( pdf or ps )

Slides on C++ Classes ( pdf or ps )

Slides on the C++ String Class ( pdf or ps )

Slides on C++ files ( pdf or ps )

Slides on binary arithmetic ( pdf or ps )

Slides on floating point format ( pdf or ps )

Slides on pointers ( pdf or ps )

Slides on dynamic memory ( pdf or ps )

Slides on linked lists ( pdf or ps )

Slides on recursion pdf or ps )

Slides on searching ( pdf or ps )

Code for a couple of versions of the binary search is available here

Slides on sorting ( get df or ps )

Code for several of the sorts is available here

Review sheet for the final is available here.

Some questions on topics we have covered since the last test are available here.

Some example test questions for the final are available here

A decent vi editor Cheat Sheet (pdf or ps)

Unix tutorial (from the University of Edinburgh) here.

CSAC schedule: TBD