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.

Grade weights
ComponentWeight
Participation10%
Labs/Zybook45%
Midterms25%
Final exam20%

Schedule

Course schedule
WeekTopics
Week 1Basic I/O, Binary, Variables, Linux commands and compiling
Week 2N/A
Week 3Boolean Logic, Conditional (If/Else, Switch), Scope
Week 4Loops (For, While, Do-While), Intro to Functions
Week 5Functions (built-in and custom), Pass-by-value/reference, swap
Week 6Functions + Intro to Data Structures (vectors, strings, c-strings, structs, queues, stacks)
Week 7Data Structures
Week 8Midterm
Week 9More Data Structures and Introduction to Recursion
Week 10More Recursion, memory usage, dynamic memory allocation, pointers
Week 11Classes, Object-Oriented Programming, Inheritance (I)
Week 12Classes, Object-Oriented Programming, Inheritance (II)
Week 13Polymorphism, Virtual Functions, Overloading
Week 14Exception Handling, File I/O
Week 15Introduction to Advanced Data Structures
Week 16Review