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: CS 161, EECS 161, ENGR 103 or 103H.
Instructor: Justin Goins
Office: 2103 Kelley Engineering Center
Course Office Hours: Visible on the Home Page
Email: justin.goins@oregonstate.edu
Please 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
- 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.
Steps to Get Help
- Reread the assignment, lecture slides, labs, and/or syllabus
- Google/Bing/Open a textbook
- Ask a friend how they approached the problem (don't look at their code!)
- Check Ed Discussion for relevant posts or create a new question
- Bring up the question during lab hours (certain days of the week)
- Attend office hours
Attendance Policy
- Lecture: Required. 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.
- Lab Days: Required. Students are expected to behave professionally and arrive on time. Missed labs result in a zero score for the lab.
- Planned absences: please contact the instructor at least 24 hours in advance of the absence.
- 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 lab day, please remain in the classroom for 10 minutes.
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
Lab Work - 10%
- Some lecture days will be announced in advance as "Lab Days"
- 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 on lab days.
- These labs are intended to enhance the lectures using hands-on learning.
- Labs are designed to be mostly finished during the lecture and graded during lab time by your lab instructor.
- If you attended a lab and did not finish, you can finish the work 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 the instructor through EMAIL within ONE WEEK of receiving your grade. After one week, you will not be able to dispute your grade.
Quizzes - 10%
- Quizzes will be given at random! These can occur on lab days or during lecture days.
- Your lowest quiz score will be dropped
- If you arrive more than 15 minutes late to lab (that happens to have a quiz) you will not be allowed to take the quiz and will receive a 0 grade. Contact the instructor for extenuating circumstances
Software Design/Critique - 10%
- 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 4 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 - 28%
- There are 4 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.
- Assignments are to be turned in before 11:59pm on the deadline date, otherwise the assignment is late.
- 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 3 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 3 free late days, a late assignment will be deducted 15 points per late day.
- If you have a problem with an assignment grade, you must contact the grader through EMAIL within ONE WEEK of receiving your grade. After one week, you will not be able to dispute your grade.
Midterm Exams - 28% (14% for each exam)
- There are two midterm exams for this course.
- The exams can contain true/false, multiple-choice, or coding questions. They will be administered during lecture time.
- Students must be present during exams (see the Attendance Policy).
Final Exam - 14%
- There will be a cumulative final exam.
- The final exam may include any combination of questions, programming, written work, and explanation of provided code.
- Students must be present during exams (see the Attendance Policy).
Textbook Resources
- (Wikibooks) Wikibooks C++ Programming
- (Miller) An Introduction to the Imperative Part of C++
- (Downey) How to think like a computer scientist
Additional Textbook Resources (optional)
Title: Starting Out with C++ : Early Objects, 10th Edition
Author(s): Gaddis T., Walters, & Godfrey (2019)
Publisher: Boston, MA: Addison-Wesley
ISBN: 978-0135235003
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
It is okay to share ideas and pseudo code with your fellow students. However, you must write your own source code independently (without looking at other students' work)! Programming assignments are NOT paired-programming and you should expect all submissions 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 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: https://beav.es/codeofconduct
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.
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 http://ds.oregonstate.edu. 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
Please see the OSU Equal Opportunity and Access website for information on the religious accommodation process.
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 oregonstate.edu/ReachOut. 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)
Student Bill of Rights
OSU has twelve established student rights. They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus: https://asosu.oregonstate.edu/advocacy/rights
Academic Calendar
All students are subject to the registration and refund deadlines as stated in the Academic Calendar: https://registrar.oregonstate.edu/osu-academic-calendar
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 |
---|---|---|