Syllabus for Computer Science 352 (CSc 352): Systems Programming and UNIX The C Programming Language and the UNIX Operating System are still surprisingly relevant considering their age: the ubiquity of Linux has guaranteed that UNIX will survive in some form, and C is still is the language of choice for systems programming, embedded programming, kernel programming. In this course, we will become comfortable with using UNIX as our main OS, then spend most of the semester becoming experts at using C. We will also examine tools that help us write better C programs: debuggers and program analyzers (such as valgrind). Topics we will cover: declaration before use, linkage, information hiding, procedural decomposition vs. object-oriented decomposition, macro pre-processor, compiler, assembler loader, fundamental types, different versions of C, C++/Java and their C heritage, the C standard library, pointers, C-Shell vs. Korn Shell, UNIX permissions, other UNIX tools, makefiles, debuggers, dynamic memory: manual vs. automatic, stacks, lists, queues in C Pre/Co-requisite: C SC 252: Computer Organization (Assembly) Instructor: Richard T. Saunders Office: Gould-Simpson 708 Telephone Number: 626-8282 Email: saunders Domain: cs.arizona.edu Office Hours: Monday, Wednesdays: 5:30-6:30 (after Software Eng. class) Tuesday, Thursdays: 3:30-4:30 (after C/UNIX class) By Appointment, e-mail me to set-up an appointment for other times TA: Ranjini Swaminathan Email: ranjini@cs.arizona.edu Office: Gould-Simpson 909A Telephone Number: 626-3285 Office Hours: ???? Required Text: Pointers on C by Kenneth Reek Optional Text: Learning the Korn Shell by Bill Rosenblatt and Arnold Robbins Supplemental Texts: C: A Reference Manual (5th ed.) by Harbison/Steele C Programming Language (2nd ed.) by Kernighan/Ritchie Unix C Shell Field Guide by Gail and Paul Anderson Unix Power Tools by Powers, Peek, O'Reilly, Loukides The Quick Study guides for Linux and UNIX are very useful. The UNIX Quick Study guides are available in the University bookstore. I have about 10 of the Linux ones and they are available online at: http://www.quickstudy.com (Search for Linux) There will be a number of required handouts given in class, but we will provide them for you when necessary Course Objective: To become comfortable within the UNIX environment To become an expert in C (and learn some C++) Grade Policies: 60% of the course will based on homework/programming assignments (a mix of written homework, and C/C++ assignments). There will be about 10 REQUIRED assignments, with later assignments being worth more. 17% of the course will be the REQUIRED Midterm Exam 17% of the course will be the REQUIRED Final Exam 6% Quizzes (will be folded into Midterm if no quizzes) Grading scale: 90%-100% A 80%-89% B 70%-79% C 60%-69% D 0% -59% F If you compute your raw percentage, you should get at least the grade above. The instructor reserves the right to adjust the scale (but always in the students favor: Eg., 89% may become a A). You get one free late programming assignment (i.e., you may turn in one assignment a day late with no penalty). After that, you lose 10% per day. However, once solutions to an assignment are posted, you MAY NOT TURN IN AN ASSIGNMENT---usually solutions will be posted a day after the assignment is due, so don't count on any more time than a single day for a late assignment. Absence Policies: ---------------- The student is responsible for everything discussed in class, so if you miss a class, it is the student's responsibility to follow up and make sure they didn't miss anything (handouts, homeworks, announcements). If the instructor is absent, he will either get a guest lecturer (the student is still responsible for the material from the guest lecturer) or cancel class. If class is cancelled, assignments and due dates will most likely be pushed back a day. All holidays or special events observed by organized religions will be honored for those students who show affiliation with that particular religion. Absences pre-approved by the UA Dean of Students (or Dean's designee) will be honored. Policies Regarding Expected Classroom Behavior: ----------------------------------------------- Please turn off all cell phones and pagers and beepers. I RESERVE TO RIGHT TO HAVE A POP QUIZ IF CELL PHONES OR PAGERS OR BEEPERS ARE NOT TURNED OFF or kick you out of class. Policies against cheating and plagarism: --------------------------------------- Do all your work yourself. Don't cheat, don't plagarize. I will come down hard and reserve the right to fail a student on an assignment or for the course. See the official Code of Academic Integrity below. http://dos.web.arizona.edu/uapolicies/UACAIpolicies.pdf http://dos.web.arizona.edu/uapolicies/ Policies against threatening behavior by students: ------------------------------------------------- http://web.arizona.edu/~policy/threatening.pdf Notice to students with disability. ----------------------------------- Accommodation Students with disabilities, who may require academic adjustments or reasonable accommodations in order to participate fully in course activities or to meet course requirements, must first register with the Disability Resource Center, 1540 E 2nd St, 621-3268, email drc@w3.arizona.edu, URL http://drc.arizona.edu. DRC staff will qualify students for services, and provide a letter to the instructor listing accommodations to be made. This letter should be submitted by the student directly to the instructor as soon as possible during the first week of classes. The student should meet as soon as possible with the instructor by appointment or during office hours to discuss accommodations and how course requirements and activities may impact your ability to fully participate. Reminder to students with special needs who are registered with the S.A.L.T. Center (http://www.salt.arizona.edu/) There are no informal agreements: the student must register with RDC or SALT to accommodate special needs. Required extracurricular activities: None Required or Special Materials: None Notice of Potentially Offensive Material: None Course Methodology: A combination of lecture-only, Socratic dialogue and lab interaction. (Sometimes shut-up, sometimes speak-up, sometimes log-up) The information contained in this course syllabus, other than the grade and absence policies, may be subject to change with reasonable advance notice, as deemed appropriate by the instructor.