Programming II: Data Structures
CMPS 2020 - Spring 2020
Michael Sarr

Office Hours:  
45 minutes before class starts and by appointment
you can email or call my voicemail  with any homework questions at any time

Email: (do not use any other address)
voice mail: (661) 241-0724
Course web site: 

Course Description

Builds on foundation provided by CMPS2010 to introduce the concepts of
object-oriented programming. The course focuses on the definition and use
of classes and the fundamentals of object-oriented design. Other topics
include an overview of programming language principles, basic searching
and sorting techniques, and an introduction to software engineering issues.

Course meets 
Lecture:(82475) M W  5:30pm - 6:45pm in Sci III 315
Lab:(82476)     M W  7:00pm - 8:15pm in Sci III 315

A solid understanding of the concepts covered in CMPS 2010

Starting Out with C++: From Control Structures through Objects, 8th edition. 
Tony Gaddis, Publisher Pearson, 2015, ISBN: 9780133769395

Data Abstraction and Problem Solving With C++
Carrano, Publisher Prentice Hall, 2012, ISBN: 978-0132923729

Academic Integrity Policy:
Each student must turn in their own code. 
The only code that should ever be turned in that the student did not create is the portions provided for you for that particular assignment by the instructor.

There is no such thing as "working together on something" or "lab or homework partners", EVERY lab and every homework should be 100% your own original code. 
Submission of a solution taken as a whole or any part from ANY source is unacceptable and will be considered plagiarism.
Do not share your solutions or ask for solutions from other students or tutors. 
Turning in any plagarized work may result in a failing grade for the course in addition to action by the Student Affairs Department.

Computer Lab:
The walk-in computer lab in Sci III 324 is available for use by students 
in this course outside of class time on a first come, first serve basis. 
Priority in the lab is given to students who are completing assignments
for Computer Science courses. The lab typically closes around 5:00pm on
weekdays and is closed on weekends.

Tutoring is also provided on a limited basis in the walk-in lab. A tutoring 
schedule will be posted on the department website by the end of the first 
week of classes. Students in this course may ask the tutors for assistance 
on assignments. The tutors are not allowed to solve the assignment for you, 
but they can assist with problems like cryptic compiler errors.

Exams (2)   40%
Final       40%
Assignments 20%

Grades will be posted on the course website, is is only an approximation of your grade for the class based on the assignments due to that date.
Check your email on odin when you log in as I may occasionally email individual students or the class as a whole. 
I will email you to your odin account only. 

Lab assignments will be posted on the course website. Labs will usually involve writing a short program(s). 
The labs are due at the end of lab period (8:15), do not leave class without having your lab graded by the instructor and verify that it has been recorded on the grade sheet for that day, 
it is completely your responsibility to verify you recieve a grade for each assignment that day.
Labs are so that a student can work on the skills requirued to write , compile and test code , accuracy is important. 

Labs will only be graded in class on the day they are due, if for some reason you cannot make it to class and let the instructor know ( PRIOR TO CLASS ) you 
MAY be allowed to turn it in without coming to lab. This will be at the insructors direction and only at most 2 times for the semester.

Students are not allowed to help each other complete the labs or homework, this assistance will be given by the instructor or teaching assistant. 

Testing the accuracy and completenes of your work is an enormous part of computer programming, labs will encourage this behaviour. 
Feel free to ask questions and use the provided examples to test your work as much as possible before asking to have your labs graded, you will be rewarded for doing so. The majority of all labs come with examples, emultate the behavior of the examples to make sure your program is complete and correct. 

If your lab is complete you will recieve credit 

First grading request            points 5
Second grading requst	         points 4 
Third and final grading request  points 2

Homework assignments are designed to prepare you for the exams. Understanding the concepts used in the homework will directly relate to Examination questions. 

If you stay current and do you homework on time I will help you when you are having issues, just email me and ask me to look at your current homework. Do not attach your homework files, i will look at them on the server. 
Your grade on a homework may come from the actual assignment as well as a quiz on the subject matter of that specific homework. 
Once graded you should find a file called grade.txt please read these for my feedback.

Late homework will NOT be accepted, it is automatically collected at the time it is due. I MAY allow you extra time to complete a homework if 
..1 you have worked on it prior to two days before it is due ,2 you contact me for help with any issues 2 days before the day it is due. 

Extra Credit:
The goal is to learn ,not to complete labs or homework. There will not be any additonal opportunites for extra points later.


Assignment Submission:
On the course website there are directions to create an ~/assignments directory. Sub directories for each lab and homework will be created. 
All you have to do is complete your assignments in the correct directory by the time it is due. 
I will expect to go to your assignment directory and find all the files necessary to build and run your programs.

There will be 2 exams and a final.
Please check the course web page for the dates.
Please check the course web page each week for any updates ,assignment changes or schedule changes 
If you cannot make it to any exam or the final let me know a week ahead of time so an alternate time can be arranged.
Missing an exam will result in a zero score.

Monday May 18  8:00pm-10:30pm

If you cannot make this time because it conflicts with another final or you
have more than two finals scheduled that day, contact the instructor AT LEAST TWO WEEKS 
in advance of the final to schedule an alternate time.