CSCI 241
Intermediate Programming in C++
Fall 2020


Students in CSCI 241 should check this web site frequently.

Announcements

1/5/2021: 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.


Contact Information and Office Hours

Position Name Email Office Hours
Instructor Kurt McMahon kmcmahon@niu.edu TTh 1:30 p.m. - 3:30 p.m.
and by appointment
Teaching Assistant Ariz Ansari Z1885929@students.niu.edu M 9:00 a.m. - noon
TTh 9:00 a.m. - 10:30 a.m.
Teaching Assistant Saurav Mukhopadhyay Z1722452@students.niu.edu WF 9:00 a.m. - noon
Teaching Assistant Mohammed Mukhtar Ali Z1888638@students.niu.edu M noon - 2:00 p.m.
WF 8:00 a.m. - 9:30 a.m.
W noon - 1:00 p.m.
Teaching Assistant Mrinmoy Roy Z1907278@students.niu.edu W 8:00 p.m. - 10:00 p.m.
F 6:00 p.m. - 10:00 p.m.

Course Information


Course Software Links

SSH Client

You will need a Secure Shell (SSH) client to connect to the departmental Unix servers. Windows users can download and install the free PuTTY SSH client; users of Windows 10, macOS, and Linux can use a pre-installed command-line SSH client.

FTP Client

The FileZilla File Transfer Protocol (FTP) client can be used to upload files to and download files from the departmental Unix servers. Versions of this software are available for Windows, macOS, and Linux.

Mac users can also use command-line FTP from the Terminal. Instructions on how to do so can be found here. Alternatively, there are a variety of FTP clients available on the App Store (try searching for "FTP client").


Reading Assignments

Week Textbook
1 Review Chapters 1 - 6, 7.1 - 7.7
Read chapters 8.3 - 8.4
2 Read Chapters 7.8 - 7.9, 20
3 Read Chapters 8.1 - 8.2, 9.1 - 9.7, 9.9
4 Read Chapters 10 - 13
5 Read Chapters 9.8, 14.1 - 14.5
6 Read Chapters 14.6 - 14.10
7 Read Chapters 19.1, 19.4
8 Read Chapters 18.1 - 18.2, 19.2, 19.5
9 Read Chapters 16, 18.3 - 18.4
10 Read Chapter 21
11 Read Chapters 17, 18.5, 19.3, 19.6
12 Read Chapter 15.1 - 15.5
13 Read Chapter 15.6 - 15.8

Programming Assignments


Course Notes

Unix Overview

C++ and Data Structures


Useful Links

Unix Editors

In addition to the basic nano editor covered in lab training, there are several other editors available on most Unix systems that offer more powerful editing capabilities and customization.

The vi editor can be found on every Unix system.

vim is an improved version of vi distributed with most newer versions of Unix (including ours - on our system, typing "vi" will actually run the vim editor). You can access a short online tutorial on this editor by typing vimtutor at the Unix prompt.

GNU Emacs is a free, portable, extensible text editor found on many systems throughout the world of programming, including ours.

C++ Standard Library References

gdb Debugger References and Tutorials

Don't care for any of these sites? Search for "gdb tutorial" and take a look at some of the other ~2,100 hits you'll get!