ECS 36B

Object-Oriented Program

University of California - Davis

Object-oriented programming in C++. Basic data structures and their use. Writing good programs of increased complexity and efficiency. Methods for debugging and verification.
Get Access

24HR Notes for ECS 36B

Available 24 hours after each lecture

Matthew Butner

ECS 36B Syllabus for Matthew Butner — Winter 2019

Download
Syllabus
ECS 36B
This Class will be tough and time consuming
Budget 20 - 40 hours a week for homework in this course
Much of the difficulty of this course comes from the size and complexity of problems
After the first homework, you will no longer have any single file 1 use programs but instead we
will be working on one program that we keep building upon for the majority of the quarter
Last year our program was 2K - 3K lines of code
You also have to deal with C and C++ which operates at a lower level than Python
Take only 3 classes this quarter if you continue taking this course
This class is pivotal to your development as a programmer so you will want to do well, not just
get by
When I took this course as a student I did just this and it was still one of my busiest quarters
here at Davis
Prerequisites
ECS 36A / ECS 30
How to solve problems in a logical manner
How to translate a logical solution into code
How to program in Python
■ Variables
■ Functions
If statements
■ Loops
■ Recursion
If you are missing the prereqs for this course and your petition hasn’t been
approved, you need to see me during office hours by the end of the week or I
will deny your petition
Objectives
Learn how to solve problems using object oriented techniques
Classes, Data Encapsulation, Inheritance, Polymorphism, Templating
Learn how to work with a version control system (git)
Learn how to do unit testing (Google Test)
Learn how to use Cmake to write cross platform build systems
Gain the ability to solve problems in both C and modern C++ (2014)
Pointers and Smart Pointers
○ Namespaces
Iterative Loops
Title Name Email Office Office Hours
Lecturer Matthew Butner mfbutner@ucdavis.edu 3041 Kemper MWF 12 - 2
TA Saja Alayadhi ssalayadhi@ucdavis.edu 47/53/55
Kemper
M 10 - 1
F 9 - 11
TA Shivang Soni ssoni@ucdavis.edu 47/53/55
Kemper
M 11 - 12
W 5 - 7
TA Tina Mashhour tmashhour@ucdavis.edu 47/53/55
Kemper
W 8:30 - 9:30
F 8:30 - 10:30
Staff
Contacting Us
We will be using CampusWire as our class forum
All questions related to the class should be posted here
For example having trouble installing software, questions about homeworks, exams, or due
dates
Basically everything should go here
Any personal problems or concerns can be relayed to us through email or
through a private post on CampusWire
For example you were in a car accident, became seriously ill, experienced a death in the
family, are performing poorly in the class, or have a cat stuck to your ceiling
Basically if what you are wanting to talk about could only ever possibly concern you, then you
can email us
Format the subject as follows: ECS 36B- Subject
Campus Wire
Our Course: https://campuswire.com/p/G5ADE00CB
Our join code if you aren’t added initially is 6858
If joining this way, you must use your UCD email
Course Materials
A Kodethon Account
A GradeScope Account
A CampusWire Account
A PollEveryWhere Account
When signing up online please use your UCD EMAIL and name as it
APPEARS ON CANVAS
We use a program to transfer your grades from the various websites we will use and if your
details don’t match your grade doesn’t get transferred
Course Materials
Git: https://git-scm.com/book/en/v2
Cmake: https://cgold.readthedocs.io/en/latest/overview.html
Google Test:
https://github.com/google/googletest/blob/master/googletest/docs/primer.md
NCurses: http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
Kodethon Account
Website: https://kodethon.com/#/courses
Class Name: ECS 36B - Winter 2019 (#404)
Cost: Free
What is it?
Online grading and testing
Online IDE and collaborative editor
This is where you will submit your homework at
It provides you with near instant feedback on how well your code is doing
You can also write your code here and work with your partner in real time
GradeScope
Website: gradescope.com
Cost: Free
Joining: I’ll be adding the class by the time of the first midterm
What is it?
An online tool for exam grading and regrade requests
Poll Everywhere
We will be using PollEverywhere during class so that you can ask questions if
you are too shy to do so verbally
Sign up at https://www.polleverywhere.com
You can post your questions at https://pollev.com/mbutner304
Or by texting mbutner304 to 37607
The TA or myself will check for questions periodically during class
Other Course Resources
● Canvas
This is where you can find your official grades, solutions, and links to the class lecture videos
Lecture videos will only be there if our room supports lecture capture
Google Drive:
https://drive.google.com/open?id=14NrnfUa3gNnyvMlW_kVnlukqIf7SWA6U
This is where you will find the lecture slides and class examples
Link is also available in Canvas
Grading
Category Weight Frequency
Homework 50% Every 1- 2 weeks
Canvas Quizzes 10% A few times
Midterms 20% Twice
Final 20% 1 time
Extra Credit
If you level up to level 2 on CampusWire you will receive 1% extra credit
To reach level 2 you have to answer 5 questions on CampusWire
And have your answers receive a total of 10 upvotes across all your answers
If you reach level 3 on CampusWire you will receive an additional 1% extra
credit
To reach level 3 you have to answer 20 questions on CampusWire
And have your answers receive a total of 50 upvotes across all your answers
Homework
Generally due every 2 weeks
Due at 11:55 p.m. of the day specified
Amount of time per assignment can vary dramatically between students
Some students only spend 20 hours on an assignment while others take up to 60
I would suggest setting aside 20 to 40 hours per assignment
Let me say this again budget sufficient time for your assignments. It will make your life a lot
easier
On each assignment I put the time that it took me.
This will be less than your time but it will allow you to figure out a conversion between
my time and yours
Homework
Homework is submitted on Kodethon
On average you’ll have 10 - 15 submissions per homework
This is to encourage you to do testing on your own machine
Some assignments are more difficult and will allow for more submissions than this
You can work in up to groups 2
The submission limit is the sum of you and your partner’s so if you submit 3 times and your
partner has submitted 5 before joining a group you will only have 2 submissions left
Because you can submit multiple times and change your answer based on
the feedback you get from Kodethon it is possible to get 100% on all of the
homework as long as you start early enough
Homework - Late Submissions
Homework is accepted up to 1 day late
Your grade decays logarithmically after the due date
Quizzes
Quizzes are to help reinforce non-programming concepts covered in class
There will be a few quizzes throughout the quarter with most of them
appearing at the beginning
You will have up to two attempts per quiz
Quizzes should be done independently
Exam questions are likely to be similar to quiz questions
Midterms
There will be 2 midterms
They will either consist of a project, an online exam, an in class exam, or a mix
Tentative Dates
○ 1/28
○ 2/15
You can bring up to one 8.5 X 11 page of handwritten notes to the exam
You may write on the front and back of the exam
You can place whatever you would like on the notes
Final
The final will be either written or a take home programming project
The choice of which is left up to me
If written
It will be in class on 3/21/2019 8:00 at AM in this room
You can bring 2 pages of handwritten notes
Exam days and Office Hours/Discussion
On days where we have exams there will be No office hours or discussion
after the exam on that day
We use this time to grade your exams
If office hours/discussion fall before the exam they will still be held as per
usual
Regrades
● Homework
There are no regrades as you can verify whether your code is working or not on Kodethon
Written Exams
You have 1 week after the exams are returned to request a regrade on GradeScope
Cheating
Your focus in this class should not be on your grade but on your learning
Your future is dependent on what you know and are able to do, not on what grade you get in a
class
Cheating is considered to be anything that gives you an unfair advantage over
the other students in the class or violates the UCD Code of Academic
Conduct
The code of Academic Conduct can be found here: http://sja.ucdavis.edu/files/cac.pdf
Examples of Cheating
Cheating includes but is not limited to the following
Plagiarizing/copying code
Searching for solutions online
Looking for / obtaining past exams or homework questions
Receiving or providing code from someone outside your group
Receiving or providing assistance on work that is supposed to be completed individually
Sitting next to someone you know during the exam
This is to protect you
You can discuss the homework problems in a general sense with others
outside your group but don’t go farther than that
If you ever start looking at someone’s code then you are going way too far
Discussions
Discussions are REQUIRED
Due to the vast amount of material that we have to cover, most discussion sections will be
used for additional lecture
You must attend your OWN discussion
Section Time Room
A1 M 3:10 PM - 4:00 PM Hart Hall 1130
A2 W 4:10 PM - 5:00 PM Olson Hall 106
A3 F 3:10 PM - 4:00 PM Chemistry 176
Course Outline
Week Lecture Discussion
1Transitioning to C Working on the command line
2Transitioning to C Git
3Start C++, Basic Classes Debugging
4Basic Classes Cmake
5Inheritance Cmake
6Inheritance Google Test
7Operator Overloading Google Test
8Exceptions Continue with Lecture
9Friends & Iterators Continue with Lecture
10 Templating Continue with Lecture
Reset Password

Please enter below the email address you registered with and we will send you a link to reset your password.

Add your courses

Get notes from the top students in your class.


Submit