CSC 105 Introduction to Unix and C

Class information

Course #: CSC105

Section #: 12396, 32708

Credits: 2

Prerequisite: MAT 180. No credit for computer science students after CSC110

Day: Fridays

Room: 2359 ENGG

Hours: 8.30am-9.25am -lecture

9.35am-11.25am - lab

4.30pm-5.25pm - lecture

5.30pm - 7.20pm - lab

Instructor information

Instructor: Sorin Draghici

Office: 420 State Hall

Office hours: Friday 3.30pm - 4.20pm

Thursday 7.20pm-8.00pm

Telephone: 577-5484

Email: sod@cs.wayne.edu

Web page: http://www.cs.wayne.edu/~sod/course.html

On this web page you can find the syllabus, the transparencies used during the course and announcements regarding the course if any.

Textbook

New C Primer Plus, Mitchell Waite and Stephen Prata, SAMS Publishing

An introduction to Unix with X and the Internet, Paul S. Wang, PWS Publishing Co.

Supplementary Reading

An Introduction to Berkeley Unix and ANSI C, Jack Hodges, Prentice Hall,

Course contents - Class plan

Course objectives: In the world of operating systems, Unix is seen by many as the prodigious child. Born more than 30 years ago almost as a toy operating system it is now one of the most reputable operating systems in use. What has made Unix such a successful operating system? Why is it used on all platforms from desktop to Ďbigí production systems? What are its main characteristics and how does it work? These are just a few of the questions which will be addressed during the course.

If Unix is one of the most used operating systems, certainly C is one of the most used programming languages. Its concise syntax and powerful semantic, together with its total freedom to the programmer approach has made C a language respected and feared by those who do not know it and loved and cherished by those who do. Today, extremely many applications and system software are written in C or C++.

The course is designed:

  1. To provide a fundamental understanding of the Unix operating system;
  2. To provide some knowledge necessary for using the Unix operating system at user level;
  3. To familiarize with the basics of the C programming language.

Upon successful completion of the course, the student will be able to:

  1. Gain access to the Unix operating files and manipulate files and directories
  2. Use the vi editor
  3. Write simple programs in the C programming language, compile and execute them in a Unix environment

Outline

(The level, depth and content of each of the lectures may vary depending on the background of the students. Furthermore, some topics may be added if time permits).

Week

Topic

1

Introduction to the course & Unix I (brief history, characteristics, the vi editor)

2

Unix II (system architecture, files)

3

Unix III(files, directories)

4

Unix IV (special files, fifo, link, file systems)

5

Midterm examination

6

C I (problem solving, program translation)

7

C II (the structure of a C program, declarations, simple data types, modifiers, printf, scanf)

9

C III (operators, precedence, expressions, statements, arrays)

11

C IV (loops: for, while, do; continue, break, functions)

12

C V (getchar, putchar, functions, defining and using)

13

C VI (structures, arrays and pointers)

14

C VII (more pointers)

15

Final revision

16

Final exam and project submission

Class policies

Attendance: Attending all lectures and lab sessions is essential; the assignments, exams, quizzes, etc. will be based primarily (though not exclusively) on the materials presented in these lectures and lab sessions. Also, assignments due dates, explanation and clarification of assignments and material outside the textbooks will be presented during lecture and lab sessions. If you miss a lecture or lab session, it is your responsibility to obtain the information covered in the session.

Health Safety: Please report to the instructor any health condition which may create a classroom emergency (e.g. seizure disorders, diabetes, heart conditions, etc.).

Computer lab: To enhance your learning and for your homework, the computer lab, equipped with PCís is available to you during the time posted on the labís door.

The PCís will have the required software installed (a C compiler, telnet for accessing a Unix machine).

If you have a PC and appropriate software at home, you are encouraged to work at home. However, it is your responsibility to make sure that your homework is fully compatible with the equipment in the undergraduate lab and to transfer your homework on the equipment in the lab so that it is available for assessment on the due date.

Grading procedures

Assignments, quizzes, examinations and final project: There will be approximately 10 assignments, due at the beginning of the lab session of the due date. Late submissions (but not later than one week) will carry a 25% deduction of the marks. If you must, late homework can be turned in to the secretary in the Department of Computer Science main office (431 State Hall, open weekdays from 9am to 5pm). No assignments will be accepted after 7 calendar days past its due date. Since each assignment is an integral part of the course, the instructor reserves the right to give a failing grade to anyone who is turning in 50% or less of the homework.

There will be approximately 5 unannounced quizzes during the regular lecture hours. The final examinations will be based on all the material covered in the class. The examinations will be closed books, closed notes and closed neighbors. The questions will be of the multiple choice kind and/or will involve short problems.

Since the two exams cover different parts of the course material, in order to pass the course, you must pass both exams. If you suspect that you will be unable to attend an exam because of a valid and verifiable excuse, you must give me prior notice, at least one full day before the exam. There will be NO make-up examinations.

You will have to do a project. The project will consist of a computer program written in the C programming language. You can choose your own topic but the topic has to be approved by the instructor. You have to submit the project topic (title and a short description of what you want to do) in writing, by the end of the 9-th week of courses. The project is due on the day of the final examination.

You will have to:

  1. Submit a the program on a floppy disk, a listing of the program, a sample output and a description of what the program does. All items will be submitted in an envelope with your name, section number and student ID written on it.
  2. Show that you understand the program and are able to edit, compile and run it.
  3. Show that you are able to make simple modifications.

Be aware of the fact that this course, like any other course, require a certain amount of work to be done. Specifically to this course, some of the work has to be done on a computer. Simply attending the lectures and the lab sessions is not sufficient to obtain a passing grade. You might need to work on the computer outside the scheduled lab session.

Final grade: Each homework/exam/quiz/lab/term project is worth 100 points.

The final grade will be calculated as follows:

Average of homework: 20%

Quizzes: 15%

Midterm exam: 25%

Final: 25%

Term Paper: 15%

 

 

The final letter grade will be determined approximately as follows:

The final letter grade will be determined approximately as follows:

A: 95-100 %

A-: 90-94.99

B+: 85-89.99

B: 80-84.99

B-: 75-79.99

C+: 70-74.99

C: 66-69.99

C-: 62-65.99

D+: 58-61.99

D: 54-57.99

D-: 50-53.99

E: less than 50%

A grade of Incomplete (I) will not be given unless in very exceptional circumstances.

A grade of Incomplete (I) will not be given unless in very exceptional circumstances.

Student Responsibilities:

Student Responsibilities and Academic Honesty: As a college student who is committed to seek a higher education, we expect you to be a very responsible person. At the least, please:

Also, we expect all of you to have the highest level of academic honesty. We expect each of you to do your work (assignments, lab exercises, quizzes, exams) yourself and strongly encourage you to discuss with the instructor regarding any problems which you might have in the course work. Remember, you are here to gather more knowledge and become a more educated person, not to collect grades.

In fairness to all, if we find two or more assignments which appear to be copied from each other, we will split the points evenly among all those involved (no matter who copied from whom). Repeated incidents will be dealt with severe disciplinary actions.

Please behave decently in the classroom. If you have any questions or problems regarding the topic being discussed, feel free to ask your instructor at any time. Donít be shy: no question is too simple and many others might share your puzzlement. Please refrain from discussing other issues among yourselves during the class. You might be disturbing your colleagues who have the right to attend the lecture in a noise-free environment.