IC221: Systems Programming (SP15)
Home Policy Calendar
Course Policy
Instructors
- Assistant Professor Adam Aviv e-mail: aviv@usna.edu *course coordinator
- Maj Joni Pepin e-mail: pepin@usna.edu
Text Book
- Advanced Programming in the UNIX Environment (3rd ed.), Stevens,
Rago, required. ( Title is shortened to APUE in the notes and calendar)
Extra Instruction
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.
MGSP
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 (one MGSP Leader)
- Wed. 2000-2200 in MI302 (two MGSP Leaders)
Course Objectives and Assessment
Learning Objectives
- Understand the operation of the UNIX OS from the user, systems programmer, and application programmer perspective. (supports GSO i and g)
- Use a UNIX command shell to interact the file system, developing basic scripting, and develop command line tools. (supports GSO i)
- Interact with the O.S. through system call API to manage processes and interact with the file system (supports GSO i)
- Use standard debugging techniques using gdb and valgrind (supports GSO i)
- Design simple network programs that use the socket API (supports GSO i and EC310 1)
- Design software on UNIX that uses concurrency to solve problems. (supports GSO i)
- Learn basic operating system security concepts such as those related to file permissions, user group permissions, unintended execution paths. (supports GSO e, i and g and EC310 2)
General Student Outcomes
This course contributes to CS/IT program assessment goals:
- An understanding of professional, ethical, legal, security, and social issues and responsibilities (GSO e)
- Use current techniques, skills, and tools necessary for computing practices. (GSO i)
- An ability to analyze the local and global impact of computing on individuals, organizations and society (GSO g)
EC310 Course Objective Assessment
This course contributes to the EC310 program assessment goals:
- 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 1)
- Identify action that can be taken to protect information systems'
hardware and software in both computers and communications domains
against potential exploits. (EC310 2)
Grading Policy
Grading Breakdown
- Final Grades
- 20%: Final Exam
- 5%: Final Exam Practicum
- 20% : 6-week and 12-week Written Exam
- 5% : 6-week and 12-week Practicum Exam
- 35% : Labs
- 15% : Homework
- 6-Week/12-Week Grades
- 12-Week Grades: 35% Exam, 10% Practicum, 35% Labs, 20% Homework
- 6-Week Grades: 35% Exam, 10% Practicum, 35% Labs, 20% Homework
Lab Submission Policy
All labs are released on Thursday and will be due the following
Wednesday at 23:59. Submission instructions will be provided for each
lab.
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 Thursday at 1200 still uses a full grace
day, and a student who submits on Friday at 2000 has used two
grace days.
- Once all grace days are used, student may not submit
late. The assignment will receive a zero.
Homework Submission Policy
Homeworks for each week will post on Monday nights, and are
due the following Monday at the start of 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 Monday lecture for an
excused absence, such as M/O or SIQ, you are expected
to submit the homework at the next most convenient lecture or
lab.
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 explicitey stated, the policy of the departments policy
holds.
Homework Assignment Collaboration
- You may work freely with classmates on the
homeworks. This includes working together and solving problems
together.
- You are required to indicate all collaborators on your
homework assignments.
- Each student must submit an individual assignment,
and the pencile-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 considred 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
individually.
Programming and Lab Assignment Collaboration Policy
- All programming assignments must be the sole work of the
student.
- 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 the 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.
Programming and 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
students.
- 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.
Classroom Decorum
- 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
offense.
APPROVED
___________________
Adam J. Aviv
Course Coordinator
___________________
Steve Miner
CS Department Chair
Last modified: Wed Dec 17 15:44:36 EST 2014