SI204: Course Policy

Course Policy, Spring AY18

Coordinator: Assoc. Prof. Nate Chambers, x3-6838, nchamber@usna.edu

Course Description: This course provides an introduction to algorithmic development, problem solving and software design. In particular, students develop the ability to solve problems using the procedural programming paradigm and the C++ language. These principles and concepts provide foundational knowledge and experience upon which later computing courses will build. This is the first course for computer science and information technology majors.

Credits: 3-2-4

Learning Objectives:

  1. Solve problems using the procedural programming paradigm.
  2. Design, develop, debug, and document computer programs using structured programming techniques. (supports Student Outcome 1).
  3. Select and implement the most appropriate data structure for a solution and justify your selection.
  4. Identify common uses of documents found on the Internet and explain why each is, or is not, a breach of copyright law. (supports Student Outcome 4).

Student Outcomes:

1. Analysis. An ability to analyze a problem, and to identify and define the computing requirements appropriate to its solution.

2. Implementation. An ability to design, implement, and evaluate a computer-based solution to meet a given set of computing requirements in the context of the discipline.

3. Communication. An ability to communicate effectively with a range of audiences about technical information.

4. Ethics. An ability to make informed judgments in computing practice based on legal and ethical principles.

5. Teamwork. An ability to function effectively on teams to establish goals, plan tasks, meet deadlines, manage risk, and produce deliverables.

CS-6. Theory. An ability to apply theory in the design and implementation of computer-based solutions.

CS-7. Reasoning. An ability to reason about and explain computer-based solutions at multiple levels of abstraction.

IT-6. Requirements. An ability to identify and analyze user needs and to take them into account in the selection, integration, evaluation, and administration of computer-based systems.

Textbook(s): None.

Extra Instruction: Extra instruction (EI) is strongly encouraged and should be scheduled by email with the instructor. EI is not a substitute lecture; students should come prepared with specific questions or problems.

Collaboration: The guidance in the Honor Concept of the Brigade of Midshipmen and the Computer Science Department Honor Policy must be followed at all times. See www.usna.edu/CS/resources/honor.php. Specific instructions for this course: You will have to take and achieve a 100% on a Blackboard quiz covering the material in this policy and the departmental Policy Concerning Programming Projects referenced above. You may take the quiz as often as you need to, but you will receive an F at each marking period until you pass it with 100%.
  • Homework: Collaborative conversations with regard to solving written problems, of syntax and strategies for accomplishing homework or lab (i.e. non-project!) programming assignments are allowed, however design and implementation must be the work of the individual student handing in the final product. Thus, the actual pencil-to-paper or fingers-to-keyboard work must be your own. Copying a file or parts of a file from anyone as a basis for your own submission is prohibited. Midshipmen must clearly state on their assignment whom they collaborated with or received help from — this includes help received from an instructor in EI or from an MGSP mid.
  • Labs: Collaborative conversations with regard to syntax and strategies for accomplishing labs are allowed, however design and implementation must be the work of the individual student handing in the final product. Thus, the actual pencil-to-paper or fingers-to-keyboard work must be your own. Copying a file or parts of a file from anyone as a basis for your own submission is prohibited. Midshipmen must clearly state on their assignment whom they collaborated with or received help from — this includes help received from an instructor in EI or from an MGSP mid.
    Note: Although labs are treated as "routine" in this class, so that collaboration is allowed to the same extent as for homework, other courses in the department will treat them differently! So do not assume this is standard!
  • Quizzes and Exams: All written exams and quizzes will be closed book. Practicum exams will be given during a lab period. You may only use your paper-based notes, your own code stored on your CS Department home directory, the official class notes from the web, or your textbook for the practicum. On all exams, quizzes, and practicums you may not receive help from anyone
  • Projects: All projects MUST be submitted in order to pass this class. You must do your own work in designing, implementing, and testing your projects without assistance from anyone except for your instructor or, if properly documented, the other IC210 instructors for this semester, and the current IC210 MGSP leaders. The Department Policy Concerning Programming Projects provides detailed guidance.
All collaboration and outside sources should always be cited. The same rules apply for giving and receiving assistance. If you are unsure whether a certain kind of assistance or collaboration is permitted, you should assume it is not, work individually, and seek clarification from your instructor.

Classroom Conduct: The section leader will record attendance and bring the class to attention at the beginning and end of each class. If the instructor is late more than 5 minutes, the section leader will keep the class in place and report to the Computer Science department office. If the instructor is absent, the section leader will direct the class. Drinks are permitted, but they must be in reclosable containers. Food, alcohol, smoking, smokeless tobacco products, and electronic cigarettes are all prohibited. Cell phones must be silent during class.

Late Policy: Penalties for late submission of graded work may vary among courses or from semester to semester, but they will be the same for all sections of a given course. For this course:
  • Late homeworks are not accepted. (Homework submission for excused absences should be resolved with your instructor.)
  • Labs are due by the beginning of the next lab period.
  • Projects may be submitted late, with the following subtractive penalties (1 minute late=1 day late):
    1 day 15%
    2 days 40%
    3 days no credit
Grading:
6 weeks 12 weeks 16 weeks Final
Homework 10% 10% 10% 10%
Labs 10% 10% 10% 10%
Projects 25% 25% 25% 25%
Exams 55% 55% 55% 55%
Total 100% 100% 100% 100%


  • 28%: Final Exam
    The final exam will be cumulative, but will emphasize the last 6 Weeks of the course. It will have a written and practicum (hands-on programming) component.
  • 27%: Exams 1 and 2
    Both will have a written and practicum (hands-on programming) component.
  • 25%: Projects
    Expect to have three programming projects - one for each marking period.
  • 20%: Homeworks & Labs
    Expect a small assignment after every class. Assignments will be due at the beginning of the class following the assignment, unless otherwise directed by your instructor. No late submissions will be accepted without an excused absence. Labs will be demonstrated to the professor during the lab session for credit. Any unfinished, required lab items must be finished and submitted as described above.