CISC 1600/1610: Computer Science I



Class times: LectureMonday and Thursday, 11:30am – 12:45pm, John Mulcahy Hall (JMH) 342
Lab Monday, 1:00 – 2:15pm, John Mulcahy Hall (JMH) 330

Instructor: Prof. Daniel D. Leeds (my homepage)
Office: JMH 328A
E-mail:
Office hours: Tuesday 2-3pm, Wednesday 12-1pm, and by appointment

Full syllabus is available here.
Course announcements and assignments will be posted over the course of the semester.

Course text: "Problem Solving with C++" — Ninth Edition, W. Savitch

Sections below:

  1. Announcements
  2. Slides
  3. Resources
  4. Assignments

Announcements:
December 9I have decided to go ahead with my plan to change the weight of the final project. It will be worth 5% of the total end-of-semester grade, PLUS an additional 5% added onto the end-of-semester grade. The intention is to
  1. lessen the impact to students who struggled and did not figure out how to complete the full project and
  2. reward those students who struggled and DID figure out how to complete the full project
The breakdown will be as I wrote up on the board (I decided not to boost class participation/attendance):
5% participation
42% labs
5% final project -- with an additional 5% added to the end-of-semester grade tally
16% mid-term exam
32% final exam

December 1, 2:15pm We will meet in Thursday, December 4 in the JMH 330 lab. I will leave class roughly 15 minutes early. At that time, please fill out the Student Course Evaluation for CISC 1600/1610 online.
Here are instructions. I receive your evaluations in January and read them then -- they are greatly appreciated.

November 27, 1:00pm I have put practice coding examples online for writing programs with functions. The link is listed in the resources section.

November 20, 1:45pm The final exam will be in two parts. The written part will be on December 15, 9:30-11am. The lab part will be on December 17, 1:30-3pm.

October 23, 1:25pm We will meet in lab at 11:30am next Monday.

October 23, 8:55am We are meeting in lab today (JMH 330)!

October 15, 4:16pm NOTE you can bring and use a simple four-function/scientific calculator for the written part of the midterm exam. It may be helpful for some calculations, but it should not be necessary. If the calculator has a button for every letter of the alphabet, it is NOT acceptable for the written part of the exam.

October 12, 10:56pm Exam practice questions are available in our resources section.


Slides:
Lecture 1, Introduction and programming basics. Chapters 1, 2
Lecture 2, Writing and compiling programs with Linux
Lecture 3, Sidenotes on debugging.
Lecture 4, Flow of control.Chapters 2, 3
Lecture 5, Functions.Chapter 4
Lecture 6, More functions.Chapters 4, 5
Lecture 7, Arrays.Chapter 7
Lecture 8, Classes.Chapter 10
Lecture 9, Practice problems.


Resources:
Computing guides
Linux Commands - important Linux commands for working on storm
vi Commands - important commands for the vi text editor; you are welcome to use emacs instead of vi
A Guide to Putty - Information for Windows users on accessing storm
Course guides
Grading for Labs - guide to how labs 1–4 will be graded
Advice for programming - useful as you write programs in class and for assignments
More practice assignments:
More practice with functions
Example code
Hello World C++ code - simplified from lecture 1
studentCount code - code from Sept 15 lab class
studentAbsent - more code from Sept 15 lab class
Conditionals
buyApples - code from Sept 22 lab class
buyApplesOR - more code from Sept 22 lab class
armytimeGreeting - more code from Sept 22 lab class
gradeReport - more code from Sept 22 lab class
seasonWeather - code from Sept 29 lab class
seasonWeatherExtra - more code from Sept 29 lab class
Loops
sumRange - more code from Sept 29 lab class
sumRangeExtra - more code from Sept 29 lab class
Functions
triple - code from Oct 23 lab class
tempConvert - more code from Oct 23 lab class (converting types of temperature)
boxVolume - code from Oct 27 lab class
min - more code from Oct 27 lab class
guessNumber - more code from Oct 27 lab class
decimalGenerate - more code from Oct 27 lab class
areaOverload - code from Nov 6 lab class
factorialRecurse - more code from Nov 6 lab class
Arrays
reverseLetters - code from Nov 10 lab class
reverseLettersNoRepeat - more code from Nov 10 lab class
minArray - code from Nov 10 lab class
factorial - starter code from Nov 17 lab class
sort - BUGGY code for Nov 17 lab class
factorial with cout's - code from Nov 17 lab class, incorporating cout statements into factorial
minIndexArray - code for Nov 17 lab class for finding index of smallest number in array
Classes
cow class - code for Nov 24 lab class; in class we will do the following exercises, you can also click here for the cow.cpp code
cow - expanded - code from Nov 24 lab class, with the additions made during class
General Review
In-class lab assignments for general review -- I will post my solutions after Dec 8 class
More practice with functions
Grade list code from final lecture
Exam practice
Midterm practice! Below are midterm practice questions! Questions are randomly color-coded. I recommend trying to answer one set of colored questions first (for example, orange questions), review the answers to those questions, and then move on to another set of colored questions (for example, green).


Written midterm answers now available.
Translating from number grade to letter-range of grade: 60-73 "A range," 50-60 "B range, "40-50 "C range," 30-40 "D range,"
Online midterm answer code now available.
Translating from number grade to letter-range of grade for online midterm: 22.5-25 "A range," 18.5-25 "B range, "15-18.5 "C range," 12.5-15 "D range,"


Final practice! Below are final practice questions!


Assignments:
Lab 0 - Due at 11:59pm, September 15
Grade breakdown (max possible score 46)

41-above: "A range"
36-41: "B range"
31-36: "C range"
Click here to display maximum points for each graded section of lab0grade
Directories: 5 points; #include: 5 points; int main: 5 points; return: 2 points; cout: 10 points; Functioning: 5 points; comments: 5 points; mistakes: 9 points


Lab 1 - Due at 11:59pm, September 22
Instructor's solution
Grade breakdown (max possible score 100)
90-above: "A range"
80-90: "B range"
70-80: "C range"

Lab 2, Part 1 - Due at 11:59pm, October 1
Instructor's solution
Grades now available.
Grade breakdown (max possible score 100)
90-above: "A range"
80-90: "B range"
70-80: "C range"


Lab 2, Part 2 - Due at 11:59AM -- NOON, October 12
Instructor's solution
Extra credit solution is here
Grades now available.
Grade breakdown (max possible score 100, before extra credit)
90-above: "A range"
80-90: "B range"
70-80: "C range"
60-70: "D range"


Lab 3, Part 1 - Due at 11:59PM, November 5
Note: I added one clarification in the second paragraph — the calculator is expected only to deal with integer numbers.
Instructor's solution — I am still in the midst of grading your Lab 3, Part 1's, but I decided to post the solution now for reference
Grade breakdown (max possible score 100)
90-above: "A range"
76-90: "B range"
60-76: "C range"
44-60: "D range"


Lab 3, Part 2 - Due at 11:59PM, November 13
Grade breakdown (max possible score 100)
Here is my solution.
90-above: "A range"
76-90: "B range"
60-76: "C range"
46-60: "D range"


Lab 4 - Due at 11:59PM, November 20
If you are having trouble with Lab 4, it may be helpful to try completing a simpler version of the lab first.
Here is my solution.
Grade breakdown (max possible score 100)
90-above: "A range"
75-90: "B range"
60-75: "C range"
45-60: "D range"


Final project - Tic Tac Toe! - Due at 11:59PM, December 4
There are many ways to solve this problem. My solution is now online.
Grade breakdown (max possible score 100)
90-above: "A range"
78-90: "B range"
65-78: "C range"
51-65: "D range"