Programming II: Data Structures
CMPS 2020 - Spring 2024
Michael Sarr
Science III rm240
Monday and Wednesday nights 5:30 - 8:15pm

Office Hours: 
I will be on campus at 5:00 before class.
I can work out a time for an apointment
email or call my voicemail to discuss

Email: (do not use any other address)
note this is NOT my account. I do not use that address.
you can use alpine on Odin to send me an email

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 
during covid lectures will be pre recorded
there will be a live zoom session to discuss issues or answer questions
on Mondays and Wednesdays from 7 to 8:15 pm ( i will generally start it at 6)
Labs are due at 9pm on mondays and wednesdays

A solid understanding of the concepts covered in CMPS 2010

An Introduction to GCC , Brian Gough

The Rooks Guide to C++, Jeremy Hansen

Open Data Structues, Pat Morin

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 ENTIRE course in addition to action by the Student Affairs Department.
Sharing answers for quizes or exams is also forbidden.

Computer Lab:
The computer lab is not open in person, it is being done remote
please look at

Exams       30%
Final       30%
Quiz        20%
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. 

Lectures will be pre recorded and available at the beginning of each week. 
It was requested if we could make the lecture and lab portions not rigid within a time frame so that it would be easier for students to schedule classes.
I did not make the lecture or lab time manditory. The lab zoom meeting is for seeking assistance in real time, it is technically scheduled from 7 - 8:15 , you must be available for these sessions if you wish help.
you can complete the lab ahead of time but you will not be able to do it late. With the quizes cutting the lab period short it is highly likely you will not be able to complete 
the lab in the alloted hour so plan accordingly.

There are readings from the each week, we do not have an official textbook, see the class schedule for links

Lab assignments will be posted on the course website. 
Labs will usually involve writing a short program(s). 
You will need to have your labs graded before leaving lab for the night.
Late labs will not be accepted.

Homework assignments are designed to prepare you for the exams and the quizes. 

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. 
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.
If you fail to complete labs or homework on time you will not be able to make them up. 

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. 
there are examples for every assignment where you have to write code so you are able to verify yourself if your work is correct.
I will expect to go to your assignment directory and find all the files necessary to build and run your programs, I will type make, it should compile without warnings, run and do what the example does.

Exams and Quizes:

There will often be an in class quiz , they will be related to the lectures and reading materials.

There will be 2 large examinations and a final, they will be posted on the main class page

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.

missing a quiz will not be able to be made up, I will  however drop the lowest quiz score.

Final: TBD

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.