Computer Science 381
Programming Unix in C
Winter Immersion 2016, The College of Saint Rose
Instructor: | Dr. James D. Teresco, Albertus Hall 400-6, (518) 485-3755 | |
Electronic mail: | terescoj AT strose.edu (best contact method) | |
Twitter: | @JTeresco_StR_CS | |
Class URL: | [Link] | |
Office hours: | by email and by appointment | |
Disclaimer
Everything on this syllabus is subject to change. Changes will be announced in class and updated in the online version of the syllabus.
Course Objectives
This course is an introduction to C programming using the Unix operating system. The course is designed for individuals who understand programming constructs and concepts in another programming language. No prior Unix experience is necessary. Students will develop a proficiency with Unix and the C programming language that will be helpful for upper-level courses, particularly CSC 432, Operating Systems. Topics to be covered include basic C syntax and program structure, separate compilation, functions, structures, pointers, and memory management. Unix tools including the Emacs editor, the Make utility, the GNU C compiler, and the GNU debugger will be used.
Prerequisites
Texts
The required text for the course is The C Programming Language, 2nd Edition (Prentice-Hall, 1988, ISBN 0-13-110362-8) by Brian W. Kernighan and Dennis M. Ritchie. This is available from the Saint Rose Bookstore (and elsewhere). If you buy elsewhere, be sure to get the correct edition. It's a handy book for any computer scientist to own, so think of it as an investment.
Lectures/Labs
This course is organized as a series of self-scheduled lab exercises that are to be completed in sequence during the course of the Winter Immersion period. These labs as well as supplemental readings are listed on the lab and reading schedule. There, you will find a link to a web page for each lab highlighting the lab's topics, listing class examples, and the new assignment along with the latest recommended dates of completion.
Your submissions for lab assignments will include several types of items. Different requirements apply to each, as described below. It is important that you adhere to file format and naming requirements to facilitate grading. Submissions that do not meet these requirements will not be accepted.
Note: for lab questions that ask you to draw a memory diagram, you have a few options. You may attempt to represent the memory with plain text, but that is difficult to construct and read. Ideally, you would use a drawing program and submit a PDF file, but you are also permitted to draw the diagram on paper and submit a scan or photograph, as long as the diagram is legible in that form.
You are strongly encouraged to develop your C programs using a genuine Unix environment (the Saint Rose Macintosh and Computer Science Linux systems or your own Macintosh or Unix/Linux system). If you choose to develop your programs anywhere other than the Saint Rose Macintosh and Computer Science Linux systems, it is your responsibility to ensure that your program works on the grading platform. Of course, tasks where you are asked to use Unix tools will need to be completed in a Unix environment.
As there is no fixed schedule, there are no late penalties, but all work must be submitted before our final exam meeting. The recommended dates for completion of each lab lead to a very intense schedule, running to the Friday before the spring semester. It is recommended that you stay well ahead of that schedule. Note that as a 2-credit course, the expectation is for a minimum of 90 hours of effort to complete the work for the semester (including readings, labs, and exams). Some may be able to finish in a shorter total time, but as with any task that involves programming, the time needed could be significantly longer in some cases.
All assignments are to be submitted electronically unless otherwise specified. Keep a copy of all submissions for yourself.
Exams
There will be just one exam: a final, tentatively scheduled for the first day of the Spring semester. Details will be made available as the exam gets closer.
Grading
Grades for individual assignments and exams are not scaled. Any scaling deemed appropriate will take place at the end of the semester by adjusting the thresholds. The following thresholds may be adjusted downward (thereby raising grades) but will never be adjusted upward.
Breakdown: | Scale: | ||||||
Labs | 50% | A >= 93% | A- >= 90% | ||||
Exam | 50% | B+ >= 87% | B >= 83% | B- >= 80% | |||
C+ >= 77% | C >= 70% | ||||||
D >= 65% | |||||||
F < 65% | |||||||
College policy forbids changing of course grades after they are submitted except in very specific cases (such as an error in grading of an assignment or in computation of a grade). Any such errors that slip through must be found and rectified quickly after grades are submitted. In rare circumstances, a student request for an incomplete grade may be approved at the discretion of the instructor. Requests must be made one week prior to the end of the semester, and terms of such arrangements must be mutually agreed upon before grades are submitted.
Disability Accommodations
If you are a student with a documented disability and require academic accommodations please register with Lynn Cantwell, the Director of Services for Students with Disabilities, located in the Academic Support Center on the 2nd floor of St. Joseph Hall (campus extension 2335 or 518-337-2335, off campus) for disability verification and for determination of recommended reasonable academic accommodations. After you have made arrangements with that office, please see me to discuss your accommodations. Please remember that timely notice will help avoid a delay in your receipt of accommodations.
Academic Integrity
You are encouraged to discuss the concepts related to course assignments and exams with your classmates. This is an essential part of a healthy academic environment. However, work submitted for grading must be your own (or the combined work of group members, for group assignments). Any unauthorized copying or collaboration is considered a breach of academic integrity and will not be tolerated. Plagiarism, cheating, academic misconduct, or any other submission of another's work as one's own are unacceptable. Students working in groups are each individually responsible for the academic integrity of the entire group project. Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. You are responsible for reading and understanding The College of Saint Rose Policy on Plagiarism and Academic Integrity.
The minimum penalties for a first violation will include failure (0 grade) for the assignment or exam in question and the filing of a Academic Dishonesty Report Form with the Registrar's office. A second violation will result in failure of the course and a second Academic Dishonesty Report Form.
If there is any doubt about the degree of collaboration allowed or the permitted sources for a particular assignment, please ask for clarification before collaborating or consulting the source. Any such collaborations or sources must be cited properly.
The relationship among an academic institution and its faculty and its students is central to the entire concept of modern higher education. Each party has responsibilities that must be met in order for the degrees conferred to have meaning to the outside world.
Note especially the dual role of the faculty as defenders of the integrity of the degrees our institutions confer and as primary facilitators to the students to be able to earn those degrees. Too often students view faculty and the courses they teach as obstacles between the student and the degree. While faculty do have a responsibility to make sure only students who have shown through their own honest work earn the degree, it is the faculty's goal to help ensure that every student (who is willing to put in the effort along the way) has the chance to earn that degree. But without the faculty defending the integrity of the college degree by making sure only students who have demonstrated compentency in their chosen program of study, that degree would soon be rendered meaningless.