Students in CSCI 241 should check this web site frequently.
1/15/2024: 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.
Section | Position | Name | Office | Office Hours | |
---|---|---|---|---|---|
241-1 | Instructor | Kurt McMahon | kmcmahon@niu.edu | Psychology-Computer Science 570 | TTh 2:00 P.M. - 4:00 P.M. |
Teaching Assistant | Sai Dinesh Reddy Bandi | z1969505@students.niu.edu | Psychology-Computer Science 254 | MW 9:30 A.M. - 12:30 P.M. | |
Teaching Assistant | Kleo Bano | z1940978@students.niu.edu | Psychology-Computer Science 254 | T 11:00 A.M - 1:30 P.M. Th 8:00 A.M. - 9:15 A.M. F 8:15 A.M. - 9:30 A.M. |
|
Teaching Assistant | Sungmin Jeong | z1969777@students.niu.edu | Psychology-Computer Science 254 | T 12:30 P.M. - 1:30 P.M. W 11:00 A.M. - 4:00 P.M. |
|
Teaching Assistant | Prem Sai Tupalle | z1968860@students.niu.edu | Psychology-Computer Science 254 | T 3:00 P.M. - 6:15 P.M. Th 3:15 P.M. - 6:00 P.M. |
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.
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").
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 |
nano
- a simple text editor
man
- the Unix online manualpwd
- print working directory pathnamecd
- change to a new working directoryls
- list information about one or more files or the contents of a directorychmod
- change file modes (permissions) for a file or directorycat
- concatenate files and print on the standard outputmore
and less
- file perusal filtersdiff
- compare files line by linemkdir
- make a new directoryrmdir
- remove an empty directorycp
- copy one or more filesmv
- move (or rename) filesrm
- remove filesln
- make a link to a fileg++
- GNU C++ compiler and linkermake
and Makefilesgdb
Debugger Referencethis
Pointerfriend
KeywordRational
Class Operator Overloading Example
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.
string
classgdb
Debugger References and Tutorialsgdb
referencegdb
video tutorialgdb
video tutorialDon'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!