The objective of this course is to give a hands-on introduction to:
The topics covered in this course include:
This text gives a very detailed explanation of UNIX network applications programming and along the way covers most other aspects of the UNIX applications programming, such as process creation, job control, signals, and I/O. However, the coverage of network programming is more detailed than we will need for this course, and the coverage of other aspects of the UNIX API is more diffuse than would be ideal for this course. However, there is probably no other book that would be better, and this is an excellent reference book. In class, we will only approximately follow the order or presentation of topics of the textbook, but you will be expected to read the entire book in parallel. In class we will digress from the text to fill in some background information on some aspects of the UNIX API earlier than they appear in the book.
The final letter grade for the course will be given based on four components: 3-4 individual programming assignments (tentative), one term group project, one midterm, and one final. It is expected that half of the class will get A/A- grades. The grade point distribution among the four components is as follows:
Grading of programming assignments will be based not only on functionality, portability, and correctness, but also on your understanding of your program. Late assignments will be accepted with 20% penalty each day for up to two days. The following grading policy will apply to all programming assignments:
Since some of the system calls you will be using can cause denial of service to other users of the system, you should not use common departmental servers such as diablo.cs.fsu.edu for your work in this course.
You should get started very early on your assignments. Do not rely on your estimates of how much time it will take you to complete, or assume that the time it takes you will be similar to the time it takes another student in the class. Moreover, you must expect the common departmental programming servers to be out of service as a deadline approaches. The project deadline will not be extended if the servers are out of service for less than 1 day during any time of the project period.
By turning in work for a grade in this course you are representing it as being entirely your own individual work. Unless otherwise specified in writing, all programming projects are individual projects. If any assignment permits teamwork, it will be explicitly stated so in the assignment, and then the work is required to be only the work of the people on the team.
What does ``individual work'' mean? An intelligent person searches publications (including the web) for information, ideas, and code. If you use information or ideas obtained from the work of another person you must at least give credit via comments in your code stating what you have used, where you obtained it, and who is the person to whom credit is due. (Beware: If an idea is patented the above is not enough; you should not use it at all without a license.) If you use any code written by another person you must first obtain permission from the author or copyright owner, then mark the beginning and end of the quoted code using appropriate comments, and include a comment giving where you found the code and the the name of the author or copyright holder. Failure to follow these rules will be considered a violation of the Academic Honor Code.
Students with disabilities needing academic accommodations should:
This syllabus and other class materials are available in alternative format upon request.
For more information about services available to FSU students with disabilities, contact the Assistant Dean of Students:
Student Disability Resource Center
08 Kellum Hall
Florida State University
Tallahassee, FL 32306-4066
e-mail: sdrc@admin.fsu.edu
phone: (850) 644-9566.