CISC 1600/1610: Computer Science I



Class times: LectureMonday and Thursday, 4:00am – 5:15pm, John Mulcahy Hall (JMH) 342
Lab Monday, 5:30 – 6:30pm, John Mulcahy Hall (JMH) 330

Instructor: Prof. Daniel D. Leeds (my homepage)
Office: JMH 328A
E-mail:
Office hours: Tuesday 3-4pm, Thursday 5:30-6: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

Announcements:
May 3, 2015 4:10pm I will have office hours on Wednesday 2-3pm of finals week; I will not be available in my office on Tuesday.

Final practice! Below are final practice questions!


April 21, 2015 3:40pm We will meet in JMH 330 on Thursday, April 23. We will start with the quiz and we will all have class time to spend working on the final project as well.

April 17, 2015 3:25pm Quiz 5 will be on April 23. It will be on classes

April 9, 2015 5:50pm Lab 6 (on arrays) will be out on Monday, due the following week. Our final project will be announced on Monday as well.
Quiz 5 will be announced and given in the coming two weeks.
Our final exam will have two parts, a lab and a written section. They will be on May 4 at 5:30pm and May 7 at 1:30pm. More details will be announced on Monday.

April 7, 2015 11:45pm Class on Thursday will meet in the JMH 330 lab. You will begin class with a 15-minute quiz. As announced before break, class will be taught by Professor H Zhang, as I will be off campus that afternoon.

April 2, 2015 11:45am Quiz 4 will be on Thursday, April 9 at the beginning of class. Professor H Zhang will be teaching class that Thursday.

March 12, 2015 6:45pm Quiz 3 will be on Thursday, March 26 at the beginning of class

March 10, 2015 1:25pm Wednesday, April 1 will be a Monday schedule. We will have both lecture and lab that day. Please do your best to attend. If you already made travel plans prior to Fordham's announcement of this schedule change, I certainly will understand — please do check our lecture slides and ask me any questions about missed material.

March 5, 2015 2:50pm As our work builds on itself, and grows in complexity, I want to invite you again to come to my office hours with any questions. You are also welcome to drop by the tutoring room in JMH 312, which has hours posted on the door. Remember each assignment gets partial credit and, as the labs become more challenging, there may well be a curve too.

I also want to again review the rules of academic integrity. Our syllabus explains all code you submit must be your own, and violations can receive zeros and be reported to the deans. To make it clear: you may not copy someone else's answer in whole or in part. I have added that last clarifying line to the syllabus. We have had a strong semester so far and should continue our progress with good integrity!

Midterm lab solution. Grades now available.
21.5+ A range
17.5 - 21.5 B range
13.5 - 17.5 C range
9 - 13.5 D range

Midterm written answers are up — sorry for the delay!!
39.5+ A range
35 - 39.5 B range
29 - 35 C range
24 - 29 D range

February 23, 2015 2:05pm We will begin class today (Monday, Feb 23) in the JMH 3300 computer lab. beginning of class February 19.
February 13, 2015 2:35pm We will have quiz 2 at the beginning of class February 19.
February 3, 12:10pm Thanks to the weather, we are postponing quiz 1 to the start of class Thursday, February 5. We also will meet in the JMH 330 lab Thursday February 5. AND Lab 1 is now due at noon Friday February 6.
January 27, 11:45am Thanks to the weather, we are postponing quiz 1 to the start of class Monday, February 2.
January 27, 11:45am Thanks to the weather, we are postponing quiz 1 to the start of class Monday, February 2.


Slides:
Lecture 1, Introduction and programming basics. Chapters 1, 2
Lecture 2, Writing and compiling programs with Linux
Lecture 3, 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
Lecture 7, Functions -- scope and voids.Chapter 4, 5
Lecture 8, Functions -- documentation, recursion, and overloading.Chapter 4, 5
Lecture 9, Functions -- pass-by-reference.Chapter 4, 5
Lecture 10, Arrays.Chapter 7
Lecture 11, Classes.Chapter 10
Lecture 12, Video games.My full video game code


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
makeQuarters code - an example of a better-formatted program for computing the number of quarters in a dollar (modified from lecture 1, slide 39
Conditionals
buyApples - code from Feb 17 lab class
buyApplesOR - more code from Feb 17 lab class
seasonWeather - more code from Feb 17 lab class
seasonWeatherMonth - more code from Feb 17 lab class
Loops
areaSquare - code from Feb 23 lab class
runSum - more code from Feb 23 lab class
sumRange - more code from Feb 23 lab class
Functions
square - code from Mar 9 lab class
power - more code from Mar 9 lab class
random10 - random number generator based on Mar 12 lab class
factorial - code from Mar 23 lab class
fibonacci - more code from Mar 23 lab class
printOut - more code from Mar 23 lab class
flip - Code from Mar 31 lab class
Arrays
reverseLetters - code from Apr 1 lab class
reverseLettersNoRepeat - code from Apr 1 lab class
find - more code from Apr 2 lab class
findCar with Arrays - modified version of code from Apr 16
gridLetters - example code using multi-dimensional array
worldFind - the find function we defined for Lecture 12 on April 20
Classes
dog - Copy this code BY HAND for April 9 class, experiment with declaring new Dog objects, using member functions, and changing the values of member variables
account - Code we worked on in April 13 class


Assignments:
Lab 0 - Due at 11:59am (noon!), January 23
It may be helpful to know:

To copy a file oldFile to a new file named newFile use: cp oldFile newFile
To move (rename) a file oldFile to a new file named newFile use: mv oldFile newFile
To delete (remove) a file fileName use: rm fileName
To exit your storm account use: exit


Lab 1 - NOW DUE at 11:59AM (NOON), February 6 -- delayed due to snow
Your grades are in your directories!

Quiz 1 answers now available
19.5+ A range
17 - 19.5 B range
14.5 - 17 C range


Lab 2 -Due at 11:59pm (midnight!), February 24
My answer now available. Your grades are now available in your directories.

Quiz 2 answers now available. Question 3 is corrected as of Thursday evening February 26.
16.5+ A range (6 students)
13 - 16.5 B range (9 students)
9 - 13 C range (5 students)
6 - 9 D range (1 student)


Lab 3 -Due at 11:59am (noon!), March 13
My answer now available. Your grades are now available in your directories.

Lab 4 -Due at 11:59pm (midnight!), March 30
My answer now available. Your grades are NOW available!!

Quiz 3 answers now available.
22.5+ A range
17 - 22.5 B range
11 - 17 C range


Lab 5 - Due at 11:59pm (midnight!), April 8
NOTE the final page of the lab (Example executions) has been corrected! The program is to ask the user what door she thinks the CAR is behind (not the goat) and then report that the CAR is not behind another door. This is consistent with the diagrams on the first page. I apologize for the confusion!
My answer now available.

Lab 6 - Due at 11:59pm (midnight!), April 20
ASCII table, for referenece
My answer now available.
Grades available
90+ A range
75 - 90 B range
60 - 75 C range
45 - 60 D range


Final Project Updated - Due at 11:59pm (midnight!), April 29; -- The updated version is scaled back in required steps to program.
Please read the Final project guide to see how points will be awarded and what score will count as A range vs. B range vs C range, and to get some further hints for the programming problems.
For reference, the earlier version of the final project is available here. If you fully complete this original version, you will get 10 extra points.
Extra hint: When printing the board, some of the values you want to print will be ints and some will be chars. Chances are you will need to include an if statement somewhere in the printing loop to determine whether to print a number (like 2 or 5) or a letter (like D) at your given location.
My answer is now available — note this answer completes the basic final project requirements and also fulfills some (but not all) of the extra credit requirements.
Final project grades now available in your CS1GradedLABS directories! It is called projFingrade. If you did extra credit, I wrote a note in your grade file that your extra credit bonus is coming soon — I just wanted to get the initial final project grades out now.

Quiz 4 answers now available.
17+ A range
13 - 17 B range
9.5 - 13 C range
7 - 9.5 D range


Quiz 5 answers now available.
12.3 - 14 A range
9 - 12.3 B range
5.5 - 9 C range
3 - 5.5 D range