IC221: Systems Programming (SP18)


Home Policy Calendar Units Assignments Resources

Course Policy for IC221 Spring AY18

General Information

Coordinator

  • Asst. Prof. Adam J. Aviv
    • aviv@usna.edu
    • MI325

Instructors

  • Capt. Erik Rye (USMC)
    • rye@usna.edu
    • MI353
  • Dr. Mike Missler (LTC, US Army, ret.)
    • missler@usna.edu
    • MI318

Course Description

  • This class covers the foundations of UNIX and interacting with UNIX through the system call API (in C) and the shell (in bash).

Course Objectives and Assessment

Learning Objectives

  • Understand the operation of the UNIX OS from the user, systems programmer, and application programmer perspective.
  • Use a UNIX command shell to interact the file system, developing basic scripting, and develop command line tools.
  • Interact with the OS through system call API to manage processes and interact with the file system
  • Use standard debugging techniques and tools (e.g., valgrind)
  • Design simple network programs that use the socket API (supports EC310 Objective 1)
  • Design software on UNIX that uses concurrency to solve problems.
  • Learn basic operating system security concepts such as those related to file permissions, user group permissions, unintended execution paths. (supports Student Outcome 4 and EC310 Objective 2)

Student Outcomes

This course contributes to CS/IT program assessment goals:

  • (Student Outcome 4) An ability to make informed judgments in computing practice based on legal and ethical principles

EC310 Learning Objectives

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.

Text Book

  • Advanced Programming in the UNIX Environment (3rd ed.), Stevens, Rago (optional)

Extra Instruction and MGSP

EI

  • You are strongly 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 assistance.
  • You may seek help from MGSP at any time without instructor permission

MGSP

There will be four MGSP student leaders to complement extra instruction to be held before labs and homework are due.

  • Sun. 2000-2100 in TBA
  • Thr. 2000-2200 in TBA

Collaboration 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, the Department's policy holds.

Lab and Homework Collaboration Policy

  • You may work freely with classmates on the homework and labs. This includes working together and solving problems together.
  • You are required to indicate all collaborators on your homework and lab assignments.
  • 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 or lab 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 individually.

Project Collaboration Policy

  • All projects must be the sole work of the student.
  • You may not collaborate on any project 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 projects 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 submissions are subject to automated plagiarism detection.

Project 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 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 projects 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 Conduct

  • 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.

Late Policy

Homework Late Policy

  • Homework for each week will post on the first lecture of the week, and are typically due the following week's first lecture (unless otherise noted)
  • Homework must be submitted in hard copy to the instructor. Typing your homework is strongly encouraged.
  • Late Homework will not be accepted except under extenuating circumstances. Extenuating circumstances must be discussed with your instructor prior to the due date.
  • 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.

Lab Late Policy

  • All labs are released on Friday and will be due the following Thursday at 23:59 (unless otherwise noted).
  • 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/Late Days:
    • Each student will have 3 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 grace days.
    • 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.

Project Late Policy

  • Projects are assigned as part of each marking period and are due on the date specified by 23:59. Late submission will not be accepted except under extenuating circumstances.
  • Extenuating circumstances must be discussed with your instructor prior to the due date of the project.
  • You may not use late days for projects.

Quiz Late/Absence Policy

  • You are not required to make up a missed quiz and a missed quiz will not count against your grade.
  • You are encouraged to review any quiz questions that you missed with your classmates.

Grading Policy

Grading Breakdown

  6-week 12-Week 16-Week Final Grade
Final Exam       25%
12-Week Exam   22.5% 22.5% 10%
6-Week Exam 45% 22.5% 22.5% 10%
Homework 10% 10% 10% 10%
Labs 10% 10% 10% 10%
Projects 33% 33% 33% 33%
Quizzes 2% 2% 2% 2%
EI +1% +1% +1% +1%
Total 100% 100% 100% 100%

Final Exams

  • Final Exams are closed book and closed notes except for your "crib sheet"
  • You will be allowed to bring in one hand written sheet of paper (8 1/2" X 11"), two sided, with notes on it to be used during the final exam. You'll turn in your crib sheet with your final exam.

6- and 12-Week Exams

  • There two midterm exams occurring at roughly 6 and 12 weeks
  • If you are unable to take a midterm, you must provide an alternative time to make up the exam to your instructor
  • Midterm exams are closed book and closed notes except for your "crib sheet"
  • You will be allowed to bring in one hand written sheet (8 1/2" X 11") of paper to act as your "crib sheet", two sided, with notes on it to be used during the exam. You'll turn in your sheet with your exam, and will get it back upon grading the exam.

Homework

  • Homework for each week will post on the first lecture of the week, and are due the following week's first lecture, unless otherwise noted.
  • Homework must be submitted in hard copy to the instructor. Typing homework assignments are strongly encouraged, but not required.
  • Homework will typically be graded out of 100 points, unless otherwise noted.

Homework Latex Policy

  • You can receive up to a 5 point bonus on your HW for formatting with Latex.
  • You may receive deductions in your bonus for formating errors in your latex. You are expected to learn latex if you are trying to get the bonus.
  • Latex Templates may be provided for some assignments, but not for all, particularly those later in the semester.
  • Additional bonus points may be available for creative Latex formatting

Labs

  • Lab grading guidelines will be provided with the lab and will typically be graded out of 100 points unless otherwise noted.

Projects

  • Project grading guidelines will be provided with the project and will typically be graded out of 100 points unless otherwise noted.

Quizzes

  • There will be regular quizzes during lectures consiting of 1-3 short response questions to be taken at the beginning of class.
  • Quizzes will be self graded, without partial credit
  • Quizzes are designed to provide a check on knowledge and sample exam problems

EI

  • While EI is not required, it is strongly encouraged.
  • You can receive 1% bonus on your final grade for attending at least two EI session prior to the 16-week grading mark.
  • If you cannot make an EI session due to whatever reason (e.g., sports), you can conduct online, email discussion with your instructor based on the direction of your instructor.

APPROVED



___________________
Adam J. Aviv
Course Coordinator
___________________
CAPT Michael Bilzor
CS Department Chair