Course Syllabus

Overview & Contact Information

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.

Instructor - Justin Goins (

  • All emails must include CS162 in the subject of your message.

Office Hours - Wed. 10-11:30am, Fri. 10-10:30am (see home page for Zoom link)

TAs - See TA information and lab schedules on "TAs" page

Lectures - MWF 9AM-9:50AM (see home page for Zoom link)

Remote Lecture Guidelines

  • Lecture delivery - Remote lectures will be delivered live, via Zoom, at the normally scheduled lecture time for the course (link is on the home page). The lecture setup requires attendees to log into Zoom using their OSU account.
  • Lecture content - Lectures will be recorded and posted on the Canvas Media Gallery for later offline viewing. See the appropriate weekly module for additional content.
  • Interactions - Video is not required, though you are welcome to keep your camera on. Please mute your microphone unless you are intending to ask a question. You may also ask questions in the Zoom chat window and I will periodically answer them throughout the lecture. I encourage an active chat, but remember to be respectful of the other students.

Prerequisites - CS161 or EECS161

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 Learning Objectives (CLOs)

  • Design and implement programs that require:
    • multiple classes and structures
    • hierarchies of classes that use inheritance and polymorphism
    • an understanding of abstraction, modularity and separation of concerns
  • 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.
  • Classify moderately complicated algorithms in these complexity classes: O(1), O(log n), O(n), O(n log n), and O(n2).
  • Develop test-data sets and testing plans for programming projects.
  • Produce recursive algorithms, and choose appropriately between iterative and recursive algorithms.

Learning Resources

There is no formal textbook for this course. There are required articles and other material from the internet posted on the course Canvas page as the course progresses. You are required to have a laptop and internet access to receive the required materials and complete assignments.

Evaluation of Student Performance

Course Weighting

  • Software Designs - 12%
  • Assignments - 28%
  • Quizzes - 16%
  • Labs 1 through 9 - 13.5%
  • Lab 10 - 5.5%
  • Midterm - 12%
  • Final Exam - 13%

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 Policies


  • Lecture - Attendance is not required, but strongly encouraged. Needless to say, there is a positive correlation between attendance and grades.
  • Labs - Attendance is required, and you must attend your registered lab section. You must remain in the lab until your work has been viewed and graded by a lab TA.
    • Missed labs - A lab may be excused with 24 hour notice to your lab TAs prior to a planned absence. For unplanned absences due to extenuating circumstances, you must petition the instructor by the end of the day of the absence with documentation of a valid medical or family emergency. It is your responsibility to make up any work missed for an excused absence. You will receive a zero for any unexcused absences from lab. 
  • Exams - Attendance is required.
    • Missed exams - You must notify the instructor at least 7 calendar days in advance of an exam you will miss due to a planned absence in order to make alternative arrangements. Exams missed without a 7 day notification or documentation of a valid medical or family emergency will receive a grade of zero. 

Late Work

  • Labs - You may finish or redo up to two-thirds of the points for a week's lab work after your lab meeting for that week. To earn these points, you must show your update to one of your lab TAs at the beginning of the following week's lab meeting. If you do not, your update will not be accepted.
  • Programming Assignments - You have a total of 5 "late days" that can be used towards the programming assignments in this class (note: late days are for assignments, not design documents). They can be spread out across multiple assignments, or used all on one. One late day counts as anywhere between 1 minute to 23 hours and 59 minutes after an assignment is due, as determined by Canvas. An assignment will be accepted without penalty if it is submitted prior to the number of late days you have remaining. Once the late days are used up, no late work will be accepted and will receive a zero. It is your responsibility to keep track of the number of days you have left. 
  • Everything else - No late work is accepted.

Contesting Grades

  • If you have a problem with a lab, design, or programming assignment grade, you must contact your TA via email within 7 calendar days of receiving your grade. If you  have a problem with a quiz or exam grade, you must contact your instructor via email within 7 calendar days of receiving your grade. After one week, you may not dispute your grade.

Grading Demos for Programming Assignments

In this course, programming assignments will be graded by demonstrating your work to a TA. Each grading demo will be 10 minutes and will involve compiling and running your submitted code for the TA to show them how your program works. You will also be required to walk through your source code to explain to the TA how the key parts work. At the end of the demo, your TA will assign you a grade for the assignment based on a grading rubric. Grading demos are the only way to have your assignments graded in this course.

It is your responsibility to sign up for a grading demo for each assignment, which will be done remotely via Zoom this term. Links to sign up for grading demos can be found on the TAs Canvas page, as well as their respective Zoom meeting information. Grading demos must be completed within 2 weeks of the assignment due date. If you fail to complete a grading demo for an assignment within the 2 week timeframe, you will receive a grade of zero for that assignment. Late assignments must still be demoed within the original 2 week timeframe. If you fail to show up for a demo appointment slot that you have signed up for, you may receive a 10% penalty on the assignment at the TA's discretion.

Expectations for Student Conduct

Students are encouraged to discuss high-level approaches and concepts and learn from one another on labs and assignments. However, you are expected to do 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. Working together is not allowed on quizzes, midterms, or on the final exam. If you utilize online code examples 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!

If a submission appears to be plagiarized, the instructor will file an academic misconduct report. The College of Engineering will review the evidence and determine whether the allegation is justified. In the case of shared work, the student sharing the work and the student(s) copying the work will all receive zeros. In addition, substantiated charges will be documented in your academic record at OSU.

A first-time violation of these rules normally results in a zero grade for the relevant submission. Further incidents of academic dishonesty may result in more substantial penalties such as an F for the course and additional communication with the Office of Student Conduct.

Students with Disabilities

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.

Reach Out for Success

University students encounter setbacks from time to time. If you encounter difficulties and need assistance, it’s important to reach out. Consider discussing the situation with an instructor or academic advisor. Learn about resources that assist with wellness and academic success at If you are in immediate crisis, please contact the Crisis Text Line by texting OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)

Religious Holidays

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