CSC 322: C Programming and UNIX
Last update: 04/27/09
CSC 322: C Programming and UNIX
Last update: 04/27/09
Oral tests:
Each test will be 15-20min. Please see current schedule here: Schedule.pdf (last update: 4/27, 10.25 am). For all students who are not listed: please send email ASAP with desired time slot.
Course content:
•Subversion presentation (1/23): Subversion.pdf
•Slides borrowed and adopted from Michael Head on CVS/SVN/GIT/BZR (presented and last visit: 2/2)
•Material about Dynamically Allocated Arrays and Linked Lists (3/12): DAAAndLL.pdf
•Lecture slides for Ruby (4/22 and 4/27): pl-ruby-6slides.pdf
Assignments:
Assignment 1: CSC322-Assignment-1.pdf
Assignment 2: CSC322-Assignment-2.pdf
Assignment 3: CSC322-Assignment-3.pdf
Assignment 4: CSC322-Assignment-4.pdf
Assignment 5: CSC322-Assignment-5.pdf
Assignment 6: CSC322-Assignment-6.pdf
Assignment 7: CSC322-Assignment-7.pdf
Assignment 8: CSC322-Assignment-8.pdf
Assignment 9: CSC322-Assignment-9.pdf
Assignment 10: CSC322-Assignment-10.pdf
Assignment 11: CSC322-Assignment-11.pdf
Assignment 12: CSC322-Assignment-12.pdf
Assignment 13: CSC322-Assignment-13.pdf
Grades:
Here are the current grades.
Initial handout:
as PDF-version: CSC322-Initial-Handout.pdf
Introduction
• Using UNIX
• User environment
• File system
• Tools
• C programming
• The language, including the dreaded pointers
• Programming tools
• Standard libraries
• Programming for UNIX
• The UNIX system call interface
• Interfaces to the internet
• Scripting
Course Objectives
1. Be able to work effectively in the UNIX environment.
2. Be able to write medium to large C programs for a range of applications.
3. Understand and be competent in the use of system tools for C programming.
4.Understand the UNIX system call interface, and be able to write C programs that use the interface.
5.Understand and be able to write programs that use selected interfaces between UNIX and the internet.
6.Be able to write small to medium size scripts, in selected scripting languages, for a range of applications.
Pre-requisites and Preparation
•CSC220 or EEN218
Students who do not meet the pre-requisites must tell the instructor.
Instructor
Dr. Ubbo Visser. Contact details are on the WWW at http://www.cs.miami/edu/~visser. The WWW page gives also digital copies of assignments and slides (if not already on the WWW as HTML version). Particular office hours are not given, students who want to talk to me are encouraged to make an appointment with me in class or via email. Students are encouraged to ask questions by email at all times.
Teaching Assistant
Saminda Abeyruwan
Email: samindaa@gmail.com
Office: Ungar 414
Contact Hours
Each week there are three 50 minutes sessions (Monday, Wednesday, Friday 12:20-1:10 pm)
Classroom: MM 201
Recommended Text Books
A useful book about working in the UNIX environment is:
•Sarwar S., Al-Saqabi K.(2003), LINUX Programming Tools: A Primer for Software Developers (1st edition), Addison-Wesley. or
•Schwartz D. (2006), Introduction to UNIX (2nd edition), Prentice-Hall.
A good book for learning C are:
•King K.N., (1996), C Programming: A Modern Approach Norton Books.
•Kerninghan B., Ritchie D. (1988): The C Programming Language, Prentice Hall.
If you are already a C programmer and would like an excellent reference text, I like:
•Harbison S.P., Steele G.L.(1995), C: A Reference Manual (5th edition), Prentice-Hall.
It will be useful to have a book on UNIX system programming:
•Haviland K., Gray D., Salama B. (1998), UNIX System Programming (2nd edition), Addison Wesley. or
•Rochkind M. (2004), Advanced UNIX Programming (2nd edition), Addison-Wesley.
Lecture slides, laboratory tasks, and assignments will be available on the WWW.
Course Content
Course material contains material from various sources reflecting the contents of the course.
Grading
Homework: 60 points
Final oral exam: 40 points
Scoring of Homework Assignments
The score of each homework will be mentioned in it. The total score of all homework assignments will be scaled down to 60 points at the end of the semester for the purpose of final grading. For example, if all homework assignments collectively carry 100 points and a student gets 90 out of 100, he/she gets 90*60/100 or 54 out of 60 in Homework Assignment component for final grading.
Class attendance and participation
Class attendance is not mandatory, although my exams will depend heavily of my lectures. Not all of the material will come from the text. Class participation is also important. Active interest in lectures is the easiest way to learn.
Plagiarism
The penalty for copied homework of any kind can be immediate failure in the course. My policy on programs is as follows: There is no reason for two (or more) people handing in identical or nearly identical programs. I will regard such programs as either group-written or simply copied. If I have no hard evidence of copying, such programs will receive NO credit. We will do code-checking with the newest programs available. More serious actions will be taken in cases where there is evidence of cheating.
Late programs
Unless otherwise stated, programs will lose 20% of their value for each weekday (Monday through Friday that they are late, down to a minimum value of 20%. The due date of a program is the latest date on which it can be run to get full credit.
Dropping the course
Unless there are extreme extenuating circumstances, I will not allow anyone to drop a course after the drop date. Poor academic performance will never be an acceptable reason for a late drop. The drop date for this course is April 6, 2009.
Incompletes
Unless there has been a documentable illness that caused you to miss substantial amounts of class and computer time, I will not give an incomplete grade in this course. Therefore, please do NOT waste my time asking about an incomplete grade unless you have a remarkably good reason.
Make-up exams
I do not give make-up exams. You simply must show up and take them at the specified times.