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: Mon/Thur 10:30am-11:30am, Wed 3pm-4pm
TA Office Hours (in KEC1174): Mon/Wed 11am-noon
Please always include "CS162" in the subject line of your emails.
- File Input/Output
- Object-oriented programming principles
- Program design, debugging and testing
- Algorithm analysis
- Sorting and searching
- Linear data structures
- Debugging and testing
- 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
- Check Piazza for relevant posts or create a new question
- Bring up the question during lab hours (certain days of the week)
- Attend Justin's office hours
- 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: A lab may be excused with 24 hour notice prior to a planned absence. Simply bring the completed lab work to the next lab day. Note that a missed quiz will count as one of the two dropped quizzes.
- 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.
- 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.
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.
|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|
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 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 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 two lowest quiz scores 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:30pm on the deadline date, 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 be deducted 15 points per late day. Late assignments should be submitted to TEACH (in the same way that you would submit an on-time assignment).
- 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).
- (Wikibooks) Wikibooks C++ Programming
- (Miller) An Introduction to the Imperative Part of C++
- (Downey) How to think like a computer scientist
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
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.
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.
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.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.