The course Web page is http://www.cse.lehigh.edu/~brian/course/cunix/. Announcements, assignments, and some lecture notes will be available there.
The course will be taught by Prof. Brian D. Davison. My email is davison (at) cse.lehigh.edu. My homepage is http://www.cse.lehigh.edu/~brian/. My office is in Packard 251A (inside my PL251 lab), and my office hours are 11-noon Mondays and Thursdays. All other meetings should be by appointment. My office phone is 610-758-3453 (but I much prefer email). The TA for the course is Osama Ahmed Khan, and his email is oak204 (at) lehigh.edu. His office hours are Mon 5:30pm - 6:30pm and Wed 1:15pm - 2:15pm, both in the PL122 Sun lab.
Lectures will be held Mon/Wed/Fri 10:10-11:00am in Maginnes 112, but we will also make occasional trips to the PL122 Sun lab.
This course has two required texts: Programming in C, 3rd ed., by Kochan (Sams Publishing, 2005), and Understanding Unix/Linux Programming: A Guide to Theory and Practice, by Molay (Prentice Hall, 2003). There is one additional, optional text: UNIX Shells By Example, 4th ed., by Quigley (Prentice Hall, 2005). All are (or will be) available from the university and online bookstores.PrerequisitesIn addition, a number of useful books are available for free in electronic form via the library:
- GNU Emacs Pocket Reference
- UNIX in a Nutshell, 3rd ed
- Learning the UNIX Operating System, 5th ed
- Linux in a Nutshell, 4th ed
- Advanced Linux Programming
- SSH, The Secure Shell: The Definitive Guide
- vi Editor Pocket Reference
- Learning Perl, 3rd ed
- Programming Perl, 3rd ed
- and more...
Students are expected to have a strong background in structured programming (CSE 17 or equivalent) and some machine organization/architecture understanding (binary, bits, bytes, addresses, etc.)Expected Work
Homework and programming assignments will consist mostly of C programs and Unix shell scripts. Tests will consist of two hour exams, a final, and many short quizzes.Grading Components
Expected grading: homeworks, quizzes, and class participation will be worth 20%; programs 40%; hourly exam 1 - 10%; hourly exam 2 - 10%; and final exam 20%.Grading Policies
Topics expected to be coveredAttendance is strongly encouraged and pop quizzes may occur at any time. You are responsible for everything that occurs in class. A grade may be changed up to two weeks after an assignment, program, or exam is returned. After the final exam, no grades may be contested.
Quizzes:
Short quizzes will be given at the beginning of class on Fridays unless there is an hour exam. These quizzes should take no more than 10 minutes, and are closed book, closed notes.Homework:
Late homework will be penalized according to the same process as for programs, below, unless a solution has been posted or presented in class, after which there will be no credit.Programs:
Programs will be graded on correctness, style, and documentation. Each program will typically be graded out of 100 points, and then the score will be weighted to reflect its complexity. Programming assignments will consist of small (10-200 lines), medium (200-600), and large (600+ lines) projects.Unless explicitly stated otherwise, programs are due electronically at 11:59pm (local time) on the due date. Late programs will be accepted, but will be penalized 10% per day that it is late.
Tests:
No makeup exams will be given. Students who are excused from an hour exam will be graded out of the remaining percentages.
Computer Facilities
- C programming: syntax, statements, data types, operators; the standard libraries; separate compilation; machine architecture concerns; safe programming practices.
- Software development issues: Text editing; Automatic program testing; Source tools for compilation (make), maintenance (indent, cxref, cflow, cvs) and debugging (gdb, gprof).
- Unix operation.
- Shell programming/scripting.
- Text Processing: awk, diff, grep, perl; LaTeX.
- Unix systems programming: system calls; signals; processes and inter-process communication; files and filesystems.
The primary computer resource will be the various CSE/ECE Sun workstations (e.g., those in PL122) running the Solaris version of the UNIX operating system, but students are free to utilize other (equivalent) computers for developing their programming assignments. However, all programming assignments, unless explicitly stated otherwise, must work correctly and be submitted on the Suns. A list of the names of those machines can be found here.Policy on Academic Integrity and Collaboration
All work, unless explicitly stated in the problem definition, is to be an individual effort. You are encouraged to discuss assignments with one another, your friends, and with the instructors and graders of the course. Indeed, this may be the most effective method of learning. You may share concepts, approaches and strategies for producing a solution. However all work submitted in your name must be your own. If necessary, violations will be considered as cases of academic dishonesty.Policy on DisabilitiesIt is sometimes difficult to know where to draw the line between educationally useful sharing of ideas and the educationally destructive copying of ideas. Please refer to the "Collaboration Policy" statement for more examples of what is and what is not unfair collaboration.
If you have a disability for which you are or may be requesting accommodations, please contact your professor and the Office of Academic Services, Room 212, University Center or call (610-758-4152) as early as possible in the semester. University policy states that you must notify your professor seven (7) days prior to the exam.Other Relevant University Policies
Important Dates
Mon Jan 17 First day of classes Fri Jan 21 Last day to add online Fri Jan 28 Last day to drop without W Fri Feb 18 1st Hour Exam Sat Mar 05-Sun Mar 13 Spring Break Fri Apr 01 2nd Hour Exam Fri Apr 08 Last day to drop with a W Fri Apr 29 Last class day, last day to drop WP/WF Tue May 03-Wed May 11 Final Exams