CS505
Computer Science I for Teachers

Spring 2018
Schedule

To log into the CS department machines you need to use a remote client program. For Windows users they are available from ITS at http://www.uidaho.edu/infrastructure/its/services/software/its-tools , scroll down to the ITS Tools and follow the directions/links to install putty. If you are using a Mac a remote client program, SSH, is already installed so you don't need to install anything.

Once you have putty installed (or are on an Apple) log in using the address wormulon.cs.uidaho.edu (not unix.uidaho.edu - that's the University's Unix machine, which you can access with permission, but won't be used for this course). Use your Vandal Username and password to log in. For Apple users open a terminal window and type username@wormulon.cs.uidaho.edu where username is your Vandal user name.

For now submit assignments via email to tsoule@cs.uidaho.edu. Please include the text "Assignment X submission" in the subject header so it's clear that it is an assignment submission.

If you want to print assignments you will need to move assignments from wormulon (the CS department's computer) to your local computer. On a Windows machine the program WinSCP (available through ITS http://www.uidaho.edu/infrastructure/its/services/software/its-tools ) can be used to transfer files to your computer to be printed. On an Apple machine cyberduck is used instead of WinSCP.

Here is a short manual covering the basic Unix commands, Nano (a simple text editor), and a few other useful topics.

http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html link to an emacs tutorial. emacs is a much more powerful, but more complex, text editor than nano.

A number of short videos on topics covered in this course are available at: www2.cs.uidaho.edu/~tsoule/CS120Videos/video_list.html

Note that this schedule is a guide and may vary as the semester proceeds.

v
Week Dates TopicChaptersAssignmentComments and Topics
1 1/8-1/12 Intro. to Computers and Programming Chapter 1 and 2 Course intro. Programs and exectuables. Compilers and text editors. Output. Variables and variable types.

fortune.cpp the fortune teller program.
2 1/15-1/19 Variables and I/O Chapter 2 Assignment 0
Assignment 1A
Assignment 1B
No class Monday, Jan. 15th.
Variables, basic I/O, conditionals, Boolean logic. Mathematical expressions: =, +, -, *, /, ++, --, +=, -=, ... Casts.
3 1/22-1/26 Loops. Chapter 3 Assignment 2A
Assignment 2B
Conditionals: if; loops; Boolean logic.
List of C++ operators.
nim.cpp
falling.cpp - calculates distance fallen
logistic.cpp - iterates through the logistic function for a given r.
4 1/29-2/2 More Loops. Interlude 1, Chapter 3 Assignment 3A
Loops, while, do-while.
adventure.cpp, fib.cpp
5 2/5-2/9 Functions, scope. Chapter 4 Assignment 4 For loop. Functions: arguments and return values and scope. Switch statement.
adventure2.cpp,
6 2/12-2/16 More Functions Interlude 2, Chapter 4 Assignment 5 Static variables, global variables.
struct.cpp fraction structure
fraction.cpp fraction class
pet.cpp pet class for next week
7 2/19-23 More Classes Chapter 5 No class Monday, Feb. 19th.
Public, private; array.cpparray.cpp
8 2/26-3/2 Software design; arrays Interlude 3, Chapter 5 Design, top-down, bottom-up. Arrays, array bounds. enemyclass.cpp
9 3/5-3/9 Arrays and pass-by-reference Chapter 6 Assignment 6 No class Wednesday, March 7th. Arrays, array bounds, pass-by-reference arrayf.cpp
game.cpp
game.txt

3/12-3/16 Spring Break
10 3/19-3/23 Pointers Chapter 6 Assignment 7 Pointers, addresses, values, * and & operators.
11 3/26-3/30 More Pointers and C-Style Strings Interlude 4 Assignment 8 2D arrays, Pointers, memory. C style strings, C I/O.
array2d.cpp
array2d.cpp (new)
12 4/2-4/6 More Pointers Chapter 6 New, delete ll.cpp start of the linked list code
ll3.cpp now with delete!

13 4/9-4/13 Linked Lists and Recursion Chapter 8
14 4/16-4/20-12/1 Linked Lists and Recursion Assignment 9 Linked lists and recursion
15 4/23-4/27 Command line arguments Interlude 6 Assignment 10 ll2.cpp the latest linked list code
int main(int argc, char *argv[]);
16 4/30-5/4 Wrap-up cn.cpp command line code.
cl.cpp new command line code.
Link to Visual Stuido
Link to netbeans
17 5/7-5/11 Final Exams