Course Syllabus

CS162 provides an overview of the fundamental concepts of computer science. You will study basic data structures, computer programming techniques and application of software engineering principles. The course will also provide an introduction to analysis of programs.

Prerequisites: CS161 or EECS161

Instructor: Justin Goins
Office: 2103 Kelley Engineering Center
Office Hours:
Friday, June 7th from 11am-noon
Monday, June 10th from 10am-11am
Wednesday, June 12th from 11am-noon
I also monitor Piazza so feel free to ask questions there!
Email addresses for the teaching assistants are available on the TA Office Hours page.
Always include "CS162" in the subject line of your emails.

Course content

  • File Input/Output
  • Object-oriented programming principles
  • Program design, debugging and testing
  • Algorithm analysis
  • Recursion
  • Sorting and searching
  • Linear data structures
  • Debugging and testing

Course Objectives

  1. Design and implement programs that require:
    1. multiple classes and structures
    2. hierarchies of classes that use inheritance and polymorphism
    3. an understanding of abstraction, modularity and separation of concerns
  2. Construct and use basic linear structures (arrays, stacks, queues, and various linked lists) in programs, and be able to describe instances appropriate for their use.
  3. Classify moderately complicated algorithms in these complexity classes: O(1), O(log n), O(n), O(n log n), and O(n2).
  4. Develop test-data sets and testing plans for programming projects.
  5. Produce recursive algorithms, and choose appropriately between iterative and recursive algorithms.

Steps to Get Help

  1. Reread the assignment, lecture slides, labs, and/or syllabus
  2. Google/Bing/Open a textbook
  3. Ask a friend
  4. Check Piazza for relevant posts or create a new question <-- This is often the fastest approach
  5. Ask a TA:
  6. Attend Justin's office hours

All emails should include:

  • A subject line that includes CS162
  • What your problem is
  • What you have tried
  • What would help you most
  • Attachments with relevant files

Attendance Policy

  • Lecture: Strongly encouraged. In class extra credit exercises can only be made up with approved absences. You are expected to be present when exams are scheduled. If extenuating circumstances require you to miss a lecture, please email the instructor. The instructor will determine whether circumstances warrant an excused absence.
  • Labs: Required. You must attend your registered lab section. Students are expected to behave professionally and arrive on time. Missed labs result in a zero score for the lab.
    • Planned absences: A lab may be excused with 24 hour notice prior to a planned absence. Simply email the teaching assistants for your lab section and notify them. In order to make up the work, find an alternate lab section and email the TAs to ask if there is space for you to attend.
    • Extenuating circumstances: Unplanned absences must be petitioned to the instructor by the end of the day of the absence. Legitimate excuses include (but are not limited to) family emergency, injury, hospitalization, death, birth of a child, trauma, or illness. Petitioning is contacting the instructor via email. The email subject line should start with CS162. The instructor will or will not provide consent to the absence. All decisions made by the instructor are final.
  • Exams (including midterm and final exams): Required. If you are unable to attend an exam you should notify the instructor at least one week in advance via email. If the absence is due to a valid excuse (as determined by the instructor) then a make-up exam will be arranged. Missing an exam without prior arrangements will result in a grade of zero on that exam. If there are legitimate extenuating circumstances, please contact the instructor to explain your situation. All decisions made by the instructor are final.
  • If the instructor is late for a lecture or a TA is late for lab, please remain in the classroom for 10 minutes.
  • You must remain in the lab until your work has been viewed and graded by a lab TA.

Technology Requirements

  • Laptops are required in lab sessions. Make sure that the batteries are charged since the number of power outlets is limited.
  • Laptop/tablet usage is strongly discouraged during lecture. You may use an electronic device for note-taking but please ensure that your usage is not distracting to the individuals around you.
  • Cell phones and other mobile devices should be silenced and away during lecture. Repeated use of a cell phone or distracting device in lecture will result in you being asked to leave the lecture.

Grading Information

Grades will be posted on the grade page of Canvas as they become available.

All written work must be submitted as a PDF file. Failure to follow this rule will result in a score of 0 on the assignment.

Grading Scale

Letter Grade Percentage
A >= 92.5
A- >= 90 - 92.5
B+ >= 87.5 - 90
B >= 82.5 - 87.5
B- >= 80 - 82.5
C+ >= 77.5 - 80
C >= 72.5 - 77.5
C- >= 70 - 72.5
D+ >= 67.5 - 70
D >= 62.5 - 67.5
D- >= 60 - 62.5
F < 60

Course Weighting

Labs - 10%

  • There are 10 total labs in this course, i.e. one to be completed each lecture week.
  • You MUST attend the lab in which you are registered, unless receiving permission PRIOR to missing the lab (see the Attendance Policy).
  • Some parts of the lab will be group work while others will be individual work. You can submit one copy for any portion of the lab that is group work.
  • Labs are graded on a 10-point scale and primarily based on participation and effort, rather than correctness.
  • You are required to bring a laptop to the lab.
  • These labs are intended to enhance the lectures using hands-on learning.
  • Labs are designed to be finished in 70-90 minutes and graded during lab time by your lab instructor.
  • If you attended a lab and did not finish, you can finish up to 3 points of the lab at home and bring it with you to the next week's lab for a grade. You must show your update from the previous lab within the first 15 minutes of the current lab to redeem points on the prior lab, otherwise the work will not be accepted.
  • If you have a problem with a lab grade, you must contact your lab instructor through EMAIL within ONE WEEK of receiving your grade. After one week, you will not be able to dispute your grade.

Lab Quizzes - 8%

  • Most labs will begin with a short 15 minute quiz.
  • If you arrive more than 15 minutes late to lab you will not be allowed to take the quiz and will receive a 0 grade.

Software Design/Critique - 12%

  • For each programming assignment you will submit a design document explaining your proposed software implementation. The design will be submitted one week prior to the programming assignment deadline. A TA will review your design and assign a corresponding grade. In addition, Canvas will randomly select one of more of your peers to review your work and provide constructive feedback.
  • You will also review proposed designs from your fellow students. For each of the 5 programming assignments Canvas will give you two design documents to review. You will evaluate the design documents and provide constructive feedback. If you fail to complete these design critiques on time you will lose that portion of the final grade.

Assignments - 30%

    • There are 5 programming assignments to be completed over the course of this class.
    • DO NOT expect answers to emails about assignments after 5pm on the day it is due.
    • All assignments include writing a computer program, which MUST compile and execute on FLIP (a set of ENGR servers available for student use).
    • Programming assignments that do not compile will receive a grade of zero on the implementation portion of the assignment without any exceptions.
    • Assignments are to be turned in before 11:30pm on Sunday night, otherwise the assignment is late.
    • You will turn in your assignments by submitting them online to the TEACH website.
    • Programs are evaluated on how well they solve the assigned problem (adherence to program specification), proper formatting/use of comments, and creativity.
    • You have up to 5 free late days to be used on any assignment. You can use the late days on one assignment or spread the days out across assignments (in 1 day increments). An assignment will be accepted without penalty as long as it is submitted prior to the number of late days you have remaining. After using your 5 free late days, a late assignment will not be accepted. Late assignments should be submitted to TEACH (in the same way that you would submit an on-time assignment).
    • Programming assignments in this course are graded by demoing your work for 10 minutes with a TA. You are required to meet with a TA within two weeks of the due date to demo. You can schedule a demo with a TA online (you may view the available time slots on the right side of the TA Office Hours page).
    • Demo Outside 2 Weeks: Assignments that are not demoed within the acceptable time period will be subject to a 50 point deduction.
    • Demo Late Assignments: Late assignments must still be demoed within the two week demo period beginning from the assignment's due date.
    • Missing a Demo: If you miss your demo with a TA, you will receive a 10 point (one letter grade) deduction to that assignment for each demo missed. If you need to reschedule a demo, remove your name from the poll before rescheduling. If you need to reschedule the day of your demo, still remove your name from the poll and email your demo TA with the subject line: CS162 Cancel Demo.
    • If you have a problem with an assignment grade, you must contact your TAs through EMAIL within ONE WEEK of receiving your grade. After one week, you will not be able to dispute your grade.
    • Remember to use your TAs because they are the ones who execute, read, and grade the assignments.

    Midterm Exams - 28% (14% for each exam)

    • There are two midterm exams for this course.
    • The exams contain true/false and multiple-choice questions. They will be administered during lecture time.
    • Students must be present during exams (see the Attendance Policy).

    Final Exam - 12%

    • There will be a cumulative final exam.
    • The final exam may include any combination of questions, programming, written work, and explanation of existing code.
    • Students must be present during exams (see the Attendance Policy).

    Proficiency Demo - Required in order to keep a passing grade (C or above)!

    • You will take a pass/fail live proficiency coding demo during the last lab session.
    • There will be a practice demo given in week 5 with material from the first half of the class. In the practice demo, you will be scored on a pass/almost/no-pass score to give you feedback on where you stand in the class.
    • If you do not have a passing grade in the class (below C), then failing the proficiency demo cannot hurt your grade because you are not expected to be proficient (C or above) in the class to move forward. However, if you have a passing grade in the class (C or above), then you are expected to pass the proficiency demo to keep your passing grade in the class, i.e. you cannot receive higher than a C- without passing the proficiency demo.
    • Do not freak out!!! If you have a passing grade for your assignments and YOU have been the one to do the work, then you should be able to pass the proficiency demo program.
    • A student must notify the instructor BEFORE missing the final demo to schedule a make-up.

    Textbook Resources

    Additional Textbook Resources

    Title: Starting Out with C++ : Early Objects, 8th Edition
    Author(s): Gaddis T., Walters, & Godfrey (2014)
    Publisher: Boston, MA: Addison-Wesley
    Digital ISBN: 978-0133449198
    Paperback ISBN: 978-0133360929

    Title: C/C++ Programmer's Reference, 3rd Edition
    Author(s): Schildt, H. (1998)
    Publisher: Berkley, CA: Osborne McGraw Hill
    Digital ISBN: 0-07-213293-0
    Paperback ISBN: 0-07-882476-1

    Title: Absolute C++, 5th Edition
    Author(s): Savitch, W. (2012)
    Publisher: Boston, MA: Addison-Wesley
    Digital ISBN: 978-0132846578
    Paperback ISBN: 978-0132989923

    Title:  Programming and Problem Solving with C+, 5th Edition
    Author(s): Dale, N. & Weems, C. (2009)
    Publisher: Burlington, MA: Jones & Bartlett Publishers 
    Paperback ISBN:  978-0763771560

    Academic Dishonesty

    Students are encouraged to share ideas and learn from one another on labs and assignments. However, you are expected to turn in your OWN work for every assignment. Assignments are NOT paired-programming and you should expect all assignments to be checked for similarities with others in the class, prior class assignments, and work published online. You should never be copying someone else's work and changing a small amount of that work, such as variable names, comments, spacing, etc. During group assignments you and your partners may turn in one assignment per group with everyone's name attached. Working together is not allowed on exams and on the final. At NO point should you copy work from the internet, and if you do copy material from an external resource, then you need to cite the resource and author(s). You are expected to be familiar with section 4.2 of the Oregon State University Code of Conduct.

    Paying someone to complete your work is unacceptable and will result in immediate referral to the Office of Student Conduct! Cheating and plagiarism are not taken lightly!

    You will receive a zero on your first abuse of these rules, and in the case of shared work, the student sharing the work and the student copying the work will both receive zeros. In addition, the academic dishonesty charge will be documented and sent to your school's dean and the Office of Student Conduct.

    Disability Accommodations

    Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.

    Students with documented disabilities who may need accommodations, who have any emergency medical information the instructor should be aware of, or who need special arrangements in the event of evacuation, should make an appointment with the instructor as early as possible, and no later than the first week of the term. Class materials will be made available in an accessible format upon request.

    Religious Accommodations

    Oregon State University recognizes a diverse group of students and the university accommodates diverse religious holidays. Please see the OSU Equal Opportunity and Access website for additional information on the religious accommodation process.

    The fine print...

    Note that the course summary shown below is automatically generated by Canvas and will expand as the class progresses.

    Course Summary:

    Date Details Due