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:

  1. as plain HTML page

  2. Subversion presentation (1/23): Subversion.pdf

  3. Slides borrowed and adopted from Michael Head on CVS/SVN/GIT/BZR (presented and last visit: 2/2)

  4. Material about Dynamically Allocated Arrays and Linked Lists (3/12): DAAAndLL.pdf

  5. 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

  1.     Using UNIX

  2.     User environment

  3.     File system

  4.     Tools

•    C programming

  1.     The language, including the dreaded pointers

  2.     Programming tools

  3.     Standard libraries

•    Programming for UNIX

  1.     The UNIX system call interface

  2.     Interfaces to the internet

  3.     Scripting


Course Objectives

  1. 1.    Be able to work effectively in the UNIX environment.

  2. 2.    Be able to write medium to large C programs for a range of applications.

  3. 3.    Understand and be competent in the use of system tools for C programming.

  4. 4.Understand the UNIX system call interface, and be able to write C programs that use the interface.

  5. 5.Understand and be able to write programs that use selected interfaces between UNIX and the internet.

  6. 6.Be able to write small to medium size scripts, in selected scripting languages, for a range of applications.


Pre-requisites and Preparation

  1. 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:

  1. Sarwar S., Al-Saqabi K.(2003), LINUX Programming Tools: A Primer for Software Developers (1st edition), Addison-Wesley. or

  2. Schwartz D. (2006), Introduction to UNIX (2nd edition), Prentice-Hall.


A good book for learning C are:

  1. King K.N., (1996), C Programming: A Modern Approach Norton Books.

  2. 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:

  1. 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:

  1. Haviland K., Gray D., Salama B. (1998), UNIX System Programming (2nd edition), Addison Wesley. or

  2. 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.