CISC 1600/1610: Computer Science I



Class times: LectureTuesday and Friday, 11:30am – 1:00pm, John Mulcahy Hall (JMH) 342
Lab Wednesday, 11:30 – 1:00pm, John Mulcahy Hall (JMH) 330

Instructor: Prof. Daniel D. Leeds (my homepage)
Office: JMH 328A
E-mail:
Office hours: Tuesday 1-2pm, Friday 10:30-11:30pm, 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
  5. Practice
  6. Answers

Announcements:
December 10, 9:05pm: I (Prof Leeds) will be offline on Friday Dec 11 after 4pm, and won't be back online until after 6pm on Saturday; please be aware I won't see any last-minute questions on the final project after 4pm.
For the final exam, the written part will be worth 75% and the lab will be worth 25% --- that means the written part is worth 19.5% of your final grade and the lab will be worth 6.5%.

November 12, 11:00pm: Class Friday November 13 will meet in the le
December 9, 9:00pm: We will not have office hours this Friday, but we will have office hours tomorrow (Thursday) 1-3pm. Also, please remember to fill out the online course evaluation if you have not done so already.

Quiz 5 is at the start of class, Tuesday December 8.

November 24, 1:20pm: Class Tuesday December 1 will be in JMH 330 lab.
The final exam will be on December 15 and December 16 at 1:30pm.

November 12, 11:00pm: Class Friday November 13 will meet in the lecture hall, JMH 342.
Quiz 4 will be Tuesday, November 24.

November 1, 9:20pm: Class Tuesday November 3 will begin in the JMH 330 lab.


Slides:
Lecture 1, Introduction and programming basics. Chapters 1, 2
Lecture 2, Writing and compiling programs with Linux
Lecture 3, Testing and debugging
Lecture 4, Flow of control.Chapters 2, 3
Lecture 5, Flow of control: Loops.Chapters 2, 3
Lecture 6, Modularity and functions.Chapter 4, Example functions
Lecture 7, Functions: void, recursion, scope, call-by-reference.Chapter 4, 5
Lecture 8, Functions: Overloading, specifications.Chapter 4, 5
Lecture 9, Arrays.Chapter 7
Lecture 10, Classes.Chapter 10


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–8 will be graded
Advice for programming - useful as you write programs in class and for assignments
Example code
Hello World C++ code - simplified from lecture 1
Input/output
Name and age input/output - From class September 15
Fahrenheit to Celsius conversion - From class September 18
Triple and third of the input - From class September 18
Conditionals
Compute if you are proper driving age - From class September 30
Switches
Weather per season - From class Oct 6
Weather per month - From class Oct 6
Loops
Dividing into 100 - From class Oct 9
Running sum - From class Oct 9
Functions
Box volume - From class Oct 27
Power function 1 - From class Oct 30
Power function 2 - From class Oct 30
Using math operations - From class Oct 30
Random numbers between 1 and 4 - Adapted from class Nov 3
Functions - call by reference, overloading
Defining and using flipAndMult - From class Nov 10
Input and Output functions - From class Nov 11
Two area functions - From class Nov 11
Arrays
Reverse letters - From class Nov 17
Reverse letters, no repeat - From class Nov 17
Array search - From class Nov 18
Function to Get list - From class Nov 18
Classes/Objects
Dog class - For class Dec 1. Copy this code into your own C++ file to work with.
Dog class expanded - Result of expanding the dog class code today.


Assignments:
Lab 0 - due Wednesday, September 16. I recommend you do it by Friday, September 11.
Lab 1 - due Friday, September 25, 6pm.
Lab 2 - due Monday, October 12, 11:59pm.
Lab 3 - due Wednesday, October 28, 11:59pm.
Lab 4 - due Monday, November 9, 11:59pm.
Lab 5 - due Friday, November 20, 11:59pm.
Lab 6 - due Wednesday, December 2, 11:59pm.
Final Project - due Friday, December 11, 11:59pm.


Practice:
Practice conditional programming problems and my answers. Review this on Wednesday September 23 as we will not have class!

timeGreeting.cpp
zeroDivide.cpp
buyApples.cpp

Practize Quiz 1 questions and answers

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). Further comments: The written section will be 60 minutes long, closed book, and contain questions similar to the practice questions above (and the quiz questions). The lab section will be 70 minutes long and will allow you to use the course website, course textbook, any pre-printed/pre-written course notes -- but will not allow use of Google, e-mail, etc.
The exam will cover material from Lectures 1-5, up to and including while and do-while loops. For loops will not be covered on this exam (though you can use them if you want in the lab section).


Final practice! Below are final practice questions!


Quiz/test answers:
Quiz 1 answers
Grade breakdown:

34.5 - 38: A range (12 students)
30 - 34.5: B range (9 students)
26 - 30: C range (5 students)
22 - 26: D range

Quiz 2 answers
Grade breakdown:
23 - 25.5: A range (8 students)
19 - 23: B range (11 students)
15 - 19: C range (6 students)
11 - 15: D range

Midterm written answers
Grade breakdown:
44 - 41: A range (13 students)
37 - 41: B range (9 students)
32 - 37: C range (3 students)
26 - 32: D range

Grade breakdown on lab/online portion:
22.5 - 25: A range
18.5 - 22.5: B range
14 - 18.5: C range
9.5 - 14: D range

Quiz 3 answers
Grade breakdown:
23 - 27: A range
19 - 23: B range
15 - 19: C range

Quiz 4 answers
Grade breakdown:
14 - 16: A range
11 - 14: B range
8 - 11: C range

Quiz 5 answers
Grade breakdown:
16.5 - 20: A range
12.5 - 16.5: B range
8 - 12.5: C range
4 - 8: D range