General Instructions for Assignments

Turn in your code by copying to the AFS dropbox.

Develop your code in your own home directory. When you are ready, copy your code to the appropriate AFS dropbox:

/afs/nd.edu/coursesp.18/cse/cse34341.02/dropbox/YOURNAME/projectX
The dropbox remains writable until the due date/time, so you can submit a partial copy as many times as you like until the deadline.

Build and test your code on the student machines.

Make sure that your program builds and runs correctly on the CSE student machines (student00.cse.nd.edu through student03.cse.nd.edu) which run the RHEL6 operating system. (Note that student04.cse.nd.edu should not be used for this class, since it runs the RHEL7 operating system instead.) The TA will only test your program on those machines, and that's where your grade will be determined.

Of course, many of you want to build and test on your laptops, and that's something you should know how to do. However, our experience is that no two Linux (or Mac) machines are identical in any way: compilers, libraries, and other irrelevant things differ in silly ways that will interfere with your program. Code that compiles on your laptop may not compile at all on the student machines. (Or vice versa.) If you do develop on your laptop, leave extra time to test and debug your program when copied to the student machines.

Use the standard C compiler (/usr/bin/gcc) on the student machines.

Other previous classes may have asked you to change the compiler by adjusting your PATH, LD_LIBRARY_PATH or other settings. This class is using the default C compiler, which is /usr/bin/gcc. To check whether you have the right compiler, run the which gcc command. If it says anything other than /usr/bin/gcc, then you are using the wrong compiler. Please remove whatever changes you made to use a different compiler, and log in again.

Use standard C (not C++) for this course.

Plain C is the language used nearly-universally for implementing operating systems and other low-level kinds of code. It is a much simpler and smaller language than C++, with many fewer "gotchas" and surprises. If you aren't familiar with plain C, read the Kernighan and Ritchie book.

Pay attention to warnings, and eliminate them.

Use the -Wall option to gcc to turn on all warnings, and don't ignore them! The compiler is trying to tell you that there is something wrong with your code that (almost always) needs to be fixed. If the warning doesn't make sense to you, please ask, and we will try to point you in the right direction.

Use good coding style and common sense.

Give variables reasonable names, put comments near tricky bits of code, and break up complex code into smaller functions. Use the indent command to make your code line up nicely.