CISC 5004 Computer Programming C++
Fordham University
Department of Computer and Information Science
Prof. Griffin Miller, Fall 2025 & Fall 2026
Class times: Tuesdays 7:40-9:40 PM,
Class Room: Leon Lowenstein Building, Room 602
Instructor: Prof. Griffin Miller
E-mail: griffin@griffinmiller.com
Office hours: Before class and by appointment
Required Text
learn.zyBooks.com (an interactive book).
Log in to learn.zyBooks.com and create an account with your Fordham email address
You can purchase a zyBooks Access Key from the Fordham bookstore or purchase directly online after you create your account.
Programming
We will be building code on a computer named Storm, a Linux based environment. I will instruct you how to connect on the first lab day and send you your login.
Course description
An introduction to computer problem-solving methods, algorithm development, and computing concepts using the high-level programming language C++. Emphasis will be placed on program design, coding, debugging, and documentation of programs. This course serves as the introductory programming course for the computer science major.
Course topics
Variable usage and data types, binary encoding, basic input/output, conditionals (including if/else and switch), loops (including while, do-while, and for), functions (including call by value and call by reference, as well as recursion), arrays (single, parallel and multi-dimensional), proper style (indentation, variable naming, and commenting), debugging, arrays/vectors, pointers, dynamic memory, classes, inheritance, polymorphism, operator overloading and templates
Attendance and class participation
It is important to attend every class, and to arrive on time. One unexcused absence is permitted for the semester, no need to notify me beforehand. Attendance will be taken every day. Please actively participate in class since this will make the course more interesting for everyone! Ask questions if you are unsure about something.
Class Communication
We will be using Ed Discussion for all questions, discussions, conversations. Please post any questions you have about course concepts here, but please do not upload pictures of your solutions to questions; you may ask questions in private posts to me as well. Help your classmates out! Active students that answer Ed questions may receive extra credit at the end of the semester. Class discussion links are shared with enrolled students.
Course assignments
There will be 1-2 programming assignments and zybook assignments each week.
Late Days
Things come up—I get it! Each student is permitted 2 late days for assignments, no need to notify me. Each late day is a 24-hour extension. It is your responsibility to keep track of how many late days you have used. Once these two days have been used, late assignments will no longer be accepted. Please contact me if you have any extenuating circumstances that come up that I should be aware of, too, please!
Academic honesty
All work produced in this course must be your own unless it is specifically stated that you may work with others. I strongly encourage discussing the assignment problems and course topics with other students, but each student must produce their own solutions for each problem. Copying of assignments is never acceptable and will be considered a violation of Fordham's academic integrity policy. Violations of this policy will be handled in accordance with university policy which can include automatic failure of the assignment and/or failure of the course. See Fordham's Undergraduate Policy on Academic Integrity for more information.
Internet, AI, and Collaboration Policy
The internet and, in particular, AI are incredibly useful academic tools for further enriching class concepts. However, it is never acceptable to use either of these to produce answers for homework assignments. If you seek clarifying questions from one of these tools or from another student and it proves helpful, cite your exact question and the answer somewhere in your assignment writeup.
Exams
There will be two midterm exams -- most likely one in October and one in November -- the exact dates will be announced at least 3 weeks in advance of the exam. There will be a final exam at the end of the course.
Grading
My priority in teaching this class is your learning. I really want to help you learn important fundamental topics in computer science, and that’s why I’m here—not principally to evaluate you.
The percentages given below are guidelines for both the student and instructor and may be changed as needed to reflect circumstances in the course. Any changes that occur during the semester will be minor. Final course grades will be calculated by determining the raw overall score, and then breaking the score distribution into different letter grades. We do not decide these letter grade cutoff points until the end of the quarter.
| Component | Weight |
|---|---|
| Participation | 10% |
| Labs/Zybook | 45% |
| Midterms | 25% |
| Final exam | 20% |
Schedule
| Week | Topics |
|---|---|
| Week 1 | Basic I/O, Binary, Variables, Linux commands and compiling |
| Week 2 | N/A |
| Week 3 | Boolean Logic, Conditional (If/Else, Switch), Scope |
| Week 4 | Loops (For, While, Do-While), Intro to Functions |
| Week 5 | Functions (built-in and custom), Pass-by-value/reference, swap |
| Week 6 | Functions + Intro to Data Structures (vectors, strings, c-strings, structs, queues, stacks) |
| Week 7 | Data Structures |
| Week 8 | Midterm |
| Week 9 | More Data Structures and Introduction to Recursion |
| Week 10 | More Recursion, memory usage, dynamic memory allocation, pointers |
| Week 11 | Classes, Object-Oriented Programming, Inheritance (I) |
| Week 12 | Classes, Object-Oriented Programming, Inheritance (II) |
| Week 13 | Polymorphism, Virtual Functions, Overloading |
| Week 14 | Exception Handling, File I/O |
| Week 15 | Introduction to Advanced Data Structures |
| Week 16 | Review |