IC221: Systems Programming (SP16)
Home Policy Calendar Resources
- Assistant Professor Adam Aviv e-mail: firstname.lastname@example.org *course coordinator
- Capt Tim Garcia: email@example.com
- Distinguished Visiting Professor Carl Albing: firstname.lastname@example.org
Optional Text Book
- Advanced Programming in the UNIX Environment (3rd ed.), Stevens,
Rago ( Title is shortened to APUE in the notes and calendar)
- You are encouraged to come in for extra instruction (EI) when
you are having trouble. Your individual instructors will have
different feelings about drop-ins versus appointments.
- You MUST seek assistance and EI from your instructor first
before seeking assistance from other instructors and should only do
so once your instructor has acknowledged that they are unavailable
to meet in a timely manner. A timely manner is within 2-3 working
days. Please be respectful of your instructors time and
availability, and you should always feel free to email your
instructor for help.
- If your instructor is away for an extended period of time,
instructions will be provided on whom you should contact for
- You may seek help from MGSP at any time without instructor permission
There will be three MGSP student leaders to compliment
extra instruction to be held before labs and homework are due.
- Sun. 2000-2100 in MI302
- Thr. 2000-2200 in MI302
Course Objectives and Assessment
- Understand the operation of the UNIX OS from the user, systems programmer, and application programmer perspective. (supports Student Outcome i and g)
- Use a UNIX command shell to interact the file system, developing basic scripting, and develop command line tools. (supports Student Outcome i)
- Interact with the O.S. through system call API to manage processes and interact with the file system (supports Student Outcome i)
- Use standard debugging techniques using gdb and valgrind (supports Student Outcome i)
- Design simple network programs that use the socket API (supports GSO i and EC310 Objective 1)
- Design software on UNIX that uses concurrency to solve problems. (supports Student Outcome i)
- Learn basic operating system security concepts such as those related to file permissions, user group permissions, unintended execution paths. (supports Student Outcome e, i and g and EC310 Objective 2)
General Student Outcomes
This course contributes to CS/IT program assessment goals:
- (Student Outcome e) An understanding of professional, ethical, legal, security, and social issues and responsibilities
- (Student Outcome i) An ability to use current techniques, skills, and tools necessary for computing practices.
- (Student Outcome g) An ability to analyze the local and global impact of computing on individuals, organizations and society
EC310 Course Objective Assessment
This course contributes to the following EC310 learning objectives:
- (EC310 Objective 1) Describe in depth the principles, mechanisms, and technologies of
information systems' hardware and software in both computers and
communications domains, and describe the development of typical
exploits used against vulnerabilities in information systems.
- (EC310 Objective 2) Identify action that can be taken to protect information systems'
hardware and software in both computers and communications domains
against potential exploits.
- Final Grades
- 20%: Final Exam
- 20% : 6-week and 12-week Written Exam
- 9% : Practicum
- 33% : Labs
- 15% : Homework
- 3% : EI Attendance
- 6-Week/12-Week Grades
- 12-Week Grades: 33% Exam, 9% Practicum, 33% Labs, 20% Homework, 3% EI
- 6-Week Grades: 33% Exam, 9% Practicum, 33% Labs, 20% Homework, 3% EI
You will be expected to attend at least 3 EI sessions of at least
15 minutes in length throughout the semester. One of those session
must occur before the 6-Week Marking period, the second must occur
between the 6-Week and 12-Week Marking period. Finally, and a third
session must occur between the 12-Week and Final Exam. Of course, you
may attend EI more than three times, however, three of those times
must occur in timeline described previously.
Homework Submission Policy
Homeworks for each week will post on the first lecture of the week, and are
due the following week's first lecture. Homeworks must
be submitted in hard copy to the instructor.
Homework Late Policy :
- Late Homework will not be accepted.
- If you are unable to attend the first lecture of the week
due to an excused absence, such as M/O or SIQ, you are expected
to submit the homework at the next, most convenient lecture or
Lab Submission Policy
All labs are released on Friday and will be due the following
Thursday at 23:59. All lab submissions must occur via the
course submit system, which can ONLY occur via the lab
computers. Submission by other means will not be accepted.
Lab Grace days:
- Each student will have 4 grace days to submit an assignment
late without penalty. You must notify the instructor through
the instructor specified means 12 hours prior to the lab deadline
to use a grace day
- Grace days are applied in full, a whole day is applied even
if submitted less then 24 hours past the deadline. For example, a
student that submits on Friday at 1200 still uses a full grace
day, and a student who submits on Saturday at 2000 has used two
- Once all grace days are used, students may not submit
late. The assignment will receive a zero.
- Weekdays and weekends are treated equally in this policy.
Practicum Submission Policy
Practicum are assigned as part of each marking period, 6-week,
12-week, and final. They will be released at 0800 on the day they
are assigned and will be due that day at 23:59. Practicum will not
be accepted late for any reason.
Honor, Collaboration and Classroom Conduct Policy
The honor and collaboration policy of this class references
and adapts the language of Computer Science Department
Instruction 1531.1D, Policy
Concerning Programming Projects. We make the following
course-specific adaptations and revisions below; however, when
not explicitly stated, of the Department's policy
Homework Assignment Collaboration
- You may work freely with classmates on the
homeworks. This includes working together and solving problems
- You are required to indicate all collaborators on your
- Each student must submit an individual assignment,
and the pencil-to-paper/fingers-to-keyboard work must be your
own. Even when collaborating, in many situations, we do not
expect two students to produce the same answer.
- Copying of homework assignments is strictly forbidden and
is considered an honor violation. We define copying as the act of
viewing or discussing another's answers, copying down those
answers without having completed the work
Lab Assignment Collaboration Policy
- All programming assignments must be the sole work of the
- You may not collaborate on any programming or lab
assignment without instructor permission.
- You may not receive or copy program code from other students.
- You may not share your program code with other students.
- You may not view another student's program code.
- You may not view solutions to program assignments from
other semesters, other classes at USNA or elsewhere,
or from other unauthorized sources, such as the Internet.
- You must be prepared to explain any program code you submit.
- All submission are subject to automated plagiarism detection.
Lab Assignment Discussion Policy
- You may discuss any assignment with other students in a
abstract, problem solving way, and you are strongly encouraged to do
so. However, discussion should not violate the collaboration policy
as stated above, for example, you may not view other students'
solutions or share your code with other students.
- You may ask an instructor for help, show an instructor
your code, and use any code provided by an instructor in your
submission. However, you may not share program code (or pseudocode)
provided by an instructor to you with other students unless
authorized and doing so would violates the collaboration policy of
viewing other students' solutions or sharing your code with other
- If you received any assistance in completing an assignment
through discussions with another student or instructor, you are
required to acknowledge that assistance in your README file.
- While discussion based assistance is allowed, it in no way
implies that the assisted and assisting student will submitting
identical program solutions. As indicated by the collaboration
policy, all programming assignments must be the sole work of the
student, and it is highly unlikely, even with assistance, two
students' independently programmed solutions would be identical.
Practicum Collaboration and Discussion Policy
- All practicum assignments must be the sole work of the student
- You may not discuss the practicum with other students.
- You may not receive or give aid to other students regarding the practicum
- You may not receive help from an instructor except to clarifying obvious ambiguity.
- You must the following directions provided in writing on the practicum cover sheet.
- Beverages are permitted in classrooms and labs provided they
are in closed containers. No food or smokeless tobacco is permitted
in classrooms or labs.
- Vulgar language and classroom disruptions will not be
tolerated. A student who disrupts the class for those reasons will
be asked to leave immediately and will be marked has having left
early in the attendance roster and may be considered for a conduct
Adam J. Aviv
CDR Michael Bilzor
CS Department Chair
Last modified: Thu Jan 21 10:57:09 EST 2016