CSCI 501
Intermediate Programming in C++
Fall 2020

Fundamental elements of the object-oriented model. Techniques for object-oriented design studied with an opportunity to synthesize these concepts and apply the methodology through the object-oriented programming language C++.

Announcements

  1. Students should check this web site frequently.
  2. For students who want debugging help via email: In order to properly debug a program, we will need your code, not just a screenshot of the error message you're getting. That means ALL OF YOUR CODE, not just the short section where you think the problem might be located. We will often need to compile, link, and run your program to find all of your errors, particularly runtime errors.
  3. Please note that all exams are comprehensive.

Contact Information and Office Hours

Section Position Name Office Email Office Hours
1 Instructor John Winans (Teams) Contact me via Linked In TTh 8:00 am - 11:00 am (and by appointment)
1 Teaching Assistant Mansoor Shareef Mohammed (Teams) z1874994@students.niu.edu MWF 11:00 - 1:00 (and by appointment)

Course Information

Tentative Schedule

Week Readings Topics Notes
1 - 8/24 1 - 6, 7.1 - 7.7
8.3 - 8.4
(Review) Introduction, Expressions, Decisions, Loops, Files, Functions, Arrays
Sorting
2 - 8/31 7.8 - 7.9, 20 Multi-Dimensional Arrays, Recursion
3 - 9/7 8.1 - 8.2 Searching
4 - 9/14 9.1 - 9.7, 9.9 Pointers
5 - 9/21 10 - 13, Strings, Classes, File I/O MIDTERM
6 - 9/28 9.8, 14.1 - 14.5 Dynamic Memory, Friends, Copy Constructor, Operator Overloading,
7 - 10/5 14.6 - 14.10, 19.1, 19.4 Object Conversion, Aggregation, Rvalue References, Move Semantics, Stacks, Queues
8 - 10/12 18.1 - 18.2, 19.2, 19.5 Linked Lists
9 - 10/19 16, 18.3 - 18.4 Exceptions, Templates MIDTERM
10 - 10/26 21 Binary Trees
11 - 11/2 17, 18.5, 19.3, 19.6 STL
12 - 11/9 15.1 - 15.5 Inheritance
13 - 11/16 15.6 - 15.8 Polymorphism, Abstract Classes, Multiple Inheritance
14 - 11/23 TBA (Thanksgiving)
15 - 11/30 TBA
16 - 12/7 Finals Week FINAL

Using Linux, MacOS, WSL,...

WARNING Developing and testing your assignments on your own PC is encouraged. However, your grade is based solely on our ability to build and run your program on hopper.cs.niu.edu! Therefore, it does not matter if it runs OK on your own system. A program that fails to build or run on hopper.cs.niu.edu will be graded as such.

You must test your program on hopper.cs.niu.edu before handing it in.

Programming Assignments

All due dates are specified in US/Central time.

Course Notes

Lecture Videos

Lecture videos are posted on YouTube.

C++ Standard Library References

Last modified: 2023-01-19 11:17:02 CST