TuTh 1:20PM - 2:35PM RBB 0108
Note that this course is offered in the FLEX mode. You can choose to attend to the class either face to face in classroom Love 103, or online via zoom.
This course provides an introduction to the advanced programming in the Unix environment. Topics to be covered include: concurrent programming with processes and threads, file systems, advanced (both blocking and non-blocking) I/O, signals, inter-process communications and synchronization, network programming, broadcast and multicast, client-server and peer-to-peer paradigm, among others. This course is meant for graduate students having substantial programming experience. In this course, you will acquire training in good programming techniques, while learning important programming topics in a Unix environment.
At the end of this course, you should be able to
- Use standard UNIX operating system API's
- Develop concurrent programs with processes and threads
- Develop network programs
- Write portable programs
- Proficient in C/C++ (If you are not comfortable with the pointers in C, you are NOT ready for this class. )
- COP 4610 Operating Systems or equivalent
- User-level knowledge of UNIX and comfortable working in a Unix environment
- Having completed CNT5505 (Data and Computer Communications) or CNT 4504 (Introduction to Computer Networks) is a significant advantage.
Talk to me if you are not positive.
- Required textbook
- "Advanced Programming in the Unix Environment", Third Edition. By W. Richard Stevens and Stephen A. Rago, Addison Wesley. 2013
- Recommended textbooks:
- ``Unix Network Programming, Volume 1: The Socket Networking API,'' Third Edition. By W. Rickard Stevens, Bill Fenner, and Andrew M. Rudoff. Addison-Wesley. 2004. ISBN 0-13-141155-1.
- "The C Programming Language", by Kernighan and Ritchie.
- Three individual programming projects: 40%
- One term group project: 15%
- One mid-term exam: 20%
- One final exam: 25%
Grading of programming assignments will be based not only on functionality, portability, and correctness, but also on your understanding of your program. Individual programming assignment should be implemented using C/C++.
Each group for the term group project consists of up to 3 students. The project topic can be either selected by the group with the approval of the instructor or obtained from the instructor. Each project should have substantial software development and/or research components, where the knowledge acquired in this class should be applied. The project will be graded based on the final software developed, the presentation, and demo at the end of the semester. Group projects can be implemented using C/C++, Java, Python, or Perl.
A [90-100] A- [87-90) B+ [84-87) B [81-84) B- [78-81) C+ [75-78) C [72-75) C- [70-72) D+ [66-70) D [63-66) D- [60-63) F <60
UNIVERSITY ATTENDANCE POLICY:
Excused absences include documented illness, deaths in the family and other documented crises, call to active military duty or jury duty, religious holy days, and official University activities. These absences will be accommodated in a way that does not arbitrarily penalize students who have a valid excuse. Consideration will also be given to students whose dependent children experience serious illness.
ACADEMIC HONOR POLICY:
The Florida State University Academic Honor Policy outlines the University's expectations for the integrity of students' academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process. Students are responsible for reading the Academic Honor Policy and for living up to their pledge to "...be honest and truthful and...[to] strive for personal and institutional integrity at Florida State University." (Florida State University Academic Honor Policy, found at http://fda.fsu.edu/academic-resources/academic-integrity-and-grievances/academic-honor-policy)
ACADEMIC SUCCESS:
Your academic success is a top priority for Florida State University. University resources to help you succeed include tutoring centers, computer labs, counseling and health services, and services for designated groups, such as veterans and students with disabilities. The following information is not exhaustive, so please check with your advisor or the Department of Student Support and Transitions to learn more.
AMERICANS WITH DISABILITIES ACT:
Florida State University (FSU) values diversity and inclusion; we are committed to a climate of mutual respect and full participation. Our goal is to create learning environments that are usable, equitable, inclusive, and welcoming. FSU is committed to providing reasonable accommodations for all persons with disabilities in a manner that is consistent with academic standards of the course while empowering the student to meet integral requirements of the course.
Students with disabilities needing academic accommodation should:
(1) register with and provide documentation to the Office of Accessibility Services; and
(2) request a letter from the Office of Accessibility Services to be sent to the instructor indicating the need for accommodation and what type; and,
(3) meet (in person, via phone, email, skype, zoom, etc...) with each instructor to whom a letter of accommodation was sent to review approved accommodations.Please note that instructors are not allowed to provide classroom accommodations to a student until appropriate verification from the Office of Accessibility Services has been provided.
This syllabus and other class materials are available in alternative format upon request.
For the latest version of this statement and more information about services available to FSU students with disabilities, contact the:
Office of Accessibility Services
874 Traditions Way
108 Student Services Building
Florida State University
Tallahassee, FL 32306-4167
(850) 644-9566 (voice)
(850) 644-8504 (TDD)
oas@fsu.edu
https://dsst.fsu.edu/oas
Missed exam Policy:
A missed exam will be recorded as a grade of zero. We will follow the university rules regarding missed final exams (see http://registrar.fsu.edu/registration_guide/fall/exam_schedule/), for all the exams, including the final exam.Late Assignment Policy:
In order to enable us to provide timely solutions to assignments, we have the following policy regarding submission of late assignments.
- An assignment that is turned in no more than 24 hours late will be scored with a 10% penalty.
- An assignment that is turned in more than 24 and no less than 48 hours late will be scored with a 20% penalty.
- An assignment that is turned in more than 48 hours late will receive the score of zero, though we will review it and comment on it.
Incomplete Grade (Grade of 'I') Policy:
The grade of 'I' will be assigned only under the following exceptional circumstances:
- The final exam is missed with an accepted excuse for the absence. In this case, the final exam must be made up during the first two weeks of the following semester.
Academic Integrity:
Remember that the goal of programming assignments and homeworks is to enhance your analysis, reasoning, and programming skills. Indulging in academic dishonesty defeats this purpose apart from being unfair to other students. In case you have any questions about whether an act of collaboration may be construed as academic dishonesty, please clarify the issue with the instructor before you collaborate.
All students should follow FSU Academic Honor Code. You might be assigned a grade of 'F', if you are found to have indulged in academic dishonesty.
It is understandable that discussing a problem with other people may lead to more insight into the issues involved. Thus discussing a problem in assignments/homeworks with other people is fine. However, discussing the solutions to the problem is NOT acceptable.
Every student must write his/her own code and homework. Showing your code or homework to members of other teams, giving it to them, or making it accessible to them (e.g., by making the files world-readable) is academic dishonesty.
You are responsible for ensuring that your code/documentation/results are adequately protected and not accessible to other teams. Change permissions of your working directory to 0700 ('chmod 0700 <directory>).
Consulting code/material from a textbook, or from the Internet, in order to understand specific aspects of your assignment is fine. However, copying such code/material will be considered academic dishonesty. If you borrow small parts of code/material from these sources, you must acknowledge this in your submission and additionally you must clearly understand and be able to explain the borrowed code/material.
Plagiarism detection tools, such as Moss (A system for detecting software plagiarism), will be used in this course.
CONFIDENTIAL CAMPUS RESOURCES:
Various centers and programs are available to assist students with navigating stressors that might impact academic success. These include the following:
Victim Advocate Program
University Center A, Rm. 4100
(850) 644-7161
Available 24/7/365
Office Hours: M-F 8-5
https://dsst.fsu.edu/vapCounseling and Psychological Services
Askew Student Life Center, 2nd floor
942 Learning Way
(850) 644-8255
https://counseling.fsu.edu/University Health Services
Health and Wellness Center
(850) 644-6230
https://uhs.fsu.edu/
Syllabus Changes:
This syllabus is a guide for the course and is subject to change with advance notice.