NOTE: The goal of the course will be to prepare students who already know some programming to do C program development under Unix. It is not a goal of the course to teach beginning programming, nor to teach non-programmers how to use the Unix system.
WARNING: Though CSE 214 is not an official prerequisite for this course, I will be presupposing in this course some familiarity with simple data structures such as linked lists, and you will need to have some concept of how to design and implement programs of between 100 and 1000 lines of code. If you do not have such prior experience, you will probably find this course very difficult.)
Though this course is called ``Introduction to C and Unix'', it is not ``Introduction to Programming,'' nor is it ``Introduction to Computers.'' In my opinion, C is not a programming language for beginning programmers, and the course material will probably not be very accessible to people who don't have a fair amount of programming experience under their belt. Though you are not assumed to know how to use Unix-specific programming tools at the beginning of this course, you are expected to be computer literate and not require ``hand-holding'' in order to log in and do basic operations.
http://www.ug.cs.sunysb.edu/~stark/CSE230
I will try to announce in class when new homeworks and handouts are available,
but ultimately it will be your responsibility to check the course WWW pages
regularly to find out if there is anything new.
Homework
There will be homework assigned regularly, with each assignment due
one to two weeks after it is issued.
Homework will consist of programming exercises and projects which will
guide you in learning how to program in C under Unix.
Programming assignments will be handed in electronically, using a method detailed here. We (the TA's and I) will be able to spend only a very limited time grading each assignment, and will not be able to do much in the way of ``decoding'' your submissions. It is your responsibility to make sure that the information you hand in electronically demonstrates very clearly that you did the work that was assigned.
Students must turn the homeworks in on time. Each homework assignment will be graded in one session only, which might take place as early as the day after the due date for that assignment. Homeworks submitted in time for the grading session will be regarded as on time. Homeworks submitted after the due date run the risk of missing the grading session, and thus not being graded. If your homework assignment is not graded due to late submission, at the instructor's discretion you will receive either a zero for that assignment or you will receive a score equal to the average grade you received on all your homeworks that were graded. You are strongly encouraged to complete and submit all homework assignments, even if they are late, but do not ask me if it is `OK' to turn in homeworks late. It is not `OK', and you run the risk of not receiving credit for the late homeworks, but you will be better off if you do them and turn them in late than if you do not turn them in at all.
Do not try to do a homework assignment in a single ``all-nighter'' the day before the homework is due. You must begin looking at the homeworks as soon as they are handed out, and plan ahead so that you can complete the homework in the allotted time. Remember, also, that if you wait until the last minute you will be competing for computer resources with other desperate students, and you run the risk that unpredictable computer failures will make your assignment late.
Read This! Each student must do their own individual homework. In particular, this means that everyone must write their own programs. If you wish to discuss with other students the course material as it pertains to the programming assignments, that is OK, but everyone's coding must be their own work, and only their own work. Any evidence that programs were not coded individually will be regarded as evidence of academic dishonesty. The College of Engineering and Applied Sciences regards academic dishonesty as a very serious matter, and provides for substantial penalties in such cases, such as receiving an `F' grade, or expulsion from the University. For more information, obtain a copy of the CEAS guidelines on academic dishonesty from the CEAS office.
Grading
The final grade will be determined as follows:
The raw scores obtained by a student on each assignment and exam will be
standardized for that particular assignment or exam by converting them to
percentile scores.
A weighted sum of the resulting standardized scores will then be formed
(with weights as shown below) to obtain a composite score for each student.
So that you can get an idea of how you are doing as the term progresses, I will report rough percentile information when I hand back each assignment. Final percentile scores will not be computed until after all grade changes and corrections have been taken into account at the end of the term.
It is possible that I might not receive adequate TA resources this semester for the number of students in the class. Should this occur, then to reduce grading time to a manageable level, I may find it necessary to apply a coarser homework grading scale than I would otherwise choose.
Students with Disabilities
The Dean has required that all faculty include the statement found
here in their syllabus handouts.
If you have a physical, psychiatric/emotional, medical or learning disability that may impact on your ability to carry out assigned course work, I would urge that you contact the staff in the Disabled Student Services office (DSS), Room 133 Humanities, 632-6748/TDD. DSS will review your concerns and determine, with you, what accommodations are necessary and appropriate. All information and documentation of disability is confidential.
You will notice that most of the textbook reading has been located in the first half of the semester. This is because you will need to do a lot of reading to get familiar with the general capabilities of Unix and C before you can do interesting programming assignments. This will occur in the first half of the semester. During the second half of the semester, you will make use of the course texts primarily as references while doing the more advanced programming assignments. The classes during the second half of the semester will become less like structured lectures, and more like discussion sessions that concern the effective use Unix and C features for program developement.
Date K+P A+L K+R HW Topic Sep 4 HW0 out The UG lab and Campus Network Sep 9 1,2 Introduction to Unix 3.1-3.7 5.1-5.8 Sep 11 HW0 due Sep 16 3.8-3.14 HW1 out Introduction to the Shell 4.2 4.4 4.6-4.7 6 Sep 18 Sep 23 8.1,8.4 Using Unix for Programming 9.1-9.8 12.1-12.8 13 Sep 25 1-4 1-4 Introduction to C Programming 5.1-5.6 Sep 30 HW1 due HW2 out Oct 1 Oct 2 ROSH HASHANAH -- No class Oct 7 Oct 9 5.8-5.16 5-7 Intermediate C Programming 6,9 Oct 16 HW2 due HW3 out Oct 21 Oct 23 Oct 28 7-8,10-12 8 HW3 due Advanced C Programming HW4 out Oct 30 Nov 4 MIDTERM EXAM (in class) Nov 6 Nov 11 Nov 13 Nov 18 Nov 20 HW4 due HW5 out Nov 25 WITHDRAW DATE (Nov 26) Nov 27 THANKSGIVING -- No class Dec 2 Dec 4 Dec 9 Dec 11 HW5 due Dec 16 FINAL EXAM 12:00PM-3:00PM