CS 120: Computer Science I

Instructor: Michael Wilder
Email: mdwilder@uidaho.edu
Office Hours: MF 12:30-1:20 in JEB 226


Syllabus

Get it here

Announcements

Connecting to Course Server from Off Campus
In order to connect to the course server from off campus, you will need to use a Virtual Private Network (VPN) supported by the university. To get the VPN and install it on your personal computer, refer to the instructions located here.


Reference Materials

Overview of UNIX
Help With the VPN

Course Schedule

Note that this schedule is a guide and will likely change over the course of the semester.

Week DatesTopicChaptersAssignment/LabComments
1 1/8-1/10 Introduction to Computers and Programming Chapters 1 and 2 There are no labs this week.
Assignment 0
Course intro. Programs and executables. Compilers and text editors. Output.

hello.cpp Basic "Hello, World" program using cout.
fortune.cpp Fortune teller program.
2 1/13-1/17 Variables and I/O Chapter 2
Variables 1
Variables 2
Variable Names
If Statements
If Statements in Code
Expressions
Lab 1
Assignment 1

Text editors (nano, vi, etc). Basic unix commands. Variables, basic I/O, conditionals, Boolean logic.
Mathematical expressions and typecasts.
3 1/20-1/24 Loops Chapter 3
Conditionals
Conditionals in Code
While Loops
While Loops in Code
Lab 2
Assignment 2
No class Monday Jan. 20 (MLK / Human Rights Day)

Conditionals: if; loops; Boolean logic.

List of C++ operators
List of C++ keywords (reserved words)
4 1/27-1/31 More Loops Interlude 1, Chapter 3
Do-While Loops
Do-While Loops in Code
For_Loops
For Loops in Code
Lab 3
Assignment 3
More Loops: while, do-while, and for.

Code for a calculator is here.
Code for the game of nim is here.

5 2/3-2/7 Functions, scope Chapter 4
Function Example 1
Function Example 2
Lab 4
Assignment 4
Functions: arguments, return values, and scope. Switch statements. Structures.

Code for the calculator for lab 4 is here.

*** Midterm Exam 1 on Friday, Feb 7 ***
A sample exam is here.

6 2/10-2/14 Testing and Classes Interlude 2 and Chapter 5
Intro to Classes
Classes in code part A
Classes in code part B
Classes in code part C (constructors)
Lab 5
Assignment 5
Testing, classes, objects, data members, member functions, dot notation.


7 2/17-2/21 More Classes Chapter 5
Binary
Hexadecimal
Assignment 6
Lab 6

No class Monday Feb. 17 (Presidents' Day)

Visibility specifiers: public and private.
Opening, reading, and writing files.

Code for the pet example is here.
8 2/24-2/28 Software design; arrays, binary Interlude 3, Chapter 5
Arrays
Arrays_in_code
Design: top-down, bottom-up.

Arrays, array bounds, binary and hexadecimal numbers.

9 3/3-3/7 Arrays and pass-by-reference Chapter 6 Arrays, array bounds, pass-by-reference.

10 3/10-3/14 Spring Recess
This is a program demonstrating pointers. Please study this program over Spring Recess.

11 3/17-3/21 Pointers Chapter 6 and 7 Interlude 4
Memory and Pointers Part 1
Memory and Pointers Part 2
Memory and Pointers in Code
Pointers, memory, 2-dimensional arrays. C style strings, C I/O.

*** Midterm Exam 2 on Friday, Mar 21 ***
12 3/24-3/28 More Pointers Chapter 8 C++ new and delete operators.


13 3/31-4/4 Linked lists and recursion Chapter 8 Linked lists and recursion.

14 4/7-4/11 Command-line arguments Interlude 6 int main(int argc, char *argv[]);
15 4/14-4/18 Enumerations, Typedefs and More Linked Lists
16 4/21-4/25 Searching and Sorting

17 4/28-5/2 No Exam Week *** Final Exam on Tuesday, May 6, 8:00-10:00 ***