SI335 - Computer Algorithms, Spring 2017 (AY17)
Policy v1.0
Dr. Christopher W. Brown, Coordinator
www.usna.edu/Users/cs/wcbrown/courses/S17SI335/

Course Overview
Presents techniques for designing and analyzing computer algorithms including divide and conquer, dynamic programming and greedy methods. Introduces classic algorithms for problems such as searching and sorting, graph analysis, file compression and cryptology.
Instructor
Chris Brown ∘ Michelson 357 ∘ wcbrown@usna.edu ∘ 3x6817
Text
Extra Instruction
You are strongly encouraged to come in for extra instruction (EI) when you are having trouble. How to schedule EI will be explained by your instructor on the first day of class, but you can always e-mail, call, or even just stop by to work out a time. You are also strongly encouraged to take advantage of the MGSP sessions that will be announced soon after the semester starts.
Graded Work
Quizzes Quiz questions will be given each week. Some will be emailed as take-home questions and some will be done in class. Any students not present for class must complete the in-class questions as take-home quiz questions. Take-home questions must be completed prior to the start of the next class. Students may collaborate on take-home questions as long as it is clearly documented.
Problem Sets More extensive non-programming problems, that require significant time, effort, and care, will be assigned in problem sets due every 4 weeks or so. Problem sets may be completed in groups up to a certain size. Solutions will be presented orally, in person with the instructor. Each group is also required to hand in a written outline of their solutions. Each group member is responsible to understand and explain any solution. More details on this process are available on the course webpage. No collaboration or discussion is allowed outside of the group. Any outside resources used must be clearly documented.
Programming Projects There will be 3 programming projects in this class, spaced out between the due dates of the problem sets. Details on electronic submission will be published along with the projects and must be followed. Programming projects in this class will require not only coding skills, but also algorithmic development skills, and therefore starting early is extremely important. For programming projects, informal discussion between students is allowed, but not collaboration (see definitions below). All discussion and outside resources must be clearly and specifically documented.
Exams There will be two midterm exams and one final exam. The final exam will be cumulative. Students will be allowed one "crib sheet" for the midterms and two for the final.
Final Grade
  • 15%: Quizzes
  • 20%: Problem sets (4)
  • 20%: Programming projects (3)
  • 15%: Midterm exams (2)
  • 30%: Final exam
Late Work
Solutions to all problem sets and programming projects will be published as soon as they are due, and therefore no work submitted after the deadline will receive credit. Exceptions to this rule will only be made in special circumstances or when requested well in advance.
Absences
Each student is responsible to make up the work they miss due to planned absences such as movement orders for sports and extra-curricular activities as well as medical procedures. There will be no blanket exception to the late policy to account for absences. Generally, students should plan ahead and make arrangements with classmates or the instructor to ensure their work is submitted on time.
Academic Integrity
For the purposes of this class, we make a distinction between:

Discussion is allowed on any take-home quiz or programming project, as long as it is clearly documented. However, collaboration is only allowed on the take-home quizzes. The only help permitted on problem sets is within a student's group. At all times, help from any human not currently enrolled in SI 335 is never permitted. This includes other students not in the class, parents, friends, other faculty members, and even online humans (e.g., asking questions in an online forum or discussion board). The only exceptions are the current instructor and SI335 MGSP leader(s).

Any resources other than those on the course website must also be documented clearly and specifically. For example, if a website is used, the full address of the web page in question must be listed, along with what in the assignment that page was used for. Just saying "Wikipedia" is not enough, but something like "en.wikipedia.org/wiki/Big_O_notation example used in problem 2" would be good.

Student Outcomes (ABET)
This course contributes to the following ABET student outcomes that you should be able to do upon graduation:
Learning Objectives
  1. Demonstrate an understanding of a variety of classic standard algorithms. (supports outcome CS-j)
  2. Employ a variety of standard techniques to devise efficient algorithms. (supports outcome CS-j)
  3. Compare and analyze the performance of algorithms. (supports outcome CS-j)
  4. Understand the local and global impact of algorithm design and performance, especially as it relates to cryptography, and the implied ethical issues and responsibilities. (supports outcomes e, g)
  5. Develop effective written arguments regarding algorithmic performance. (supports outcome f)
Section Leader
The duties of the section leader include:

In the Classroom