Programming II: Data Structures
CMPS 2020 - Fall 2016
Michael Sarr


Office Hours:  45 minutes before class starts and by appointment
5pm to 8pm on Wednesday's for the first 3 weeks of the semester, if you cant come at 5-6 email me to let me know you coming

Email: msarr@cs.csubak.edu
voice mail: (661) 241-0724
Course web site: http://www.cs.csubak.edu/~msarr/ 


Course Description

Builds on foundation provided by CMPS2020 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:(82101) M W  5:30pm - 6:45pm in Sci III 311
Lab:(82102)     M W  7:00pm - 8:15pm in Sci III 311


Prerequisite:
A solid understanding of the concepts covered in CMPS 2010

Textbooks:
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

Topics that were covered in CMPS 2010:


Chapter 1     Introduction to Computers and Programming
Chapter 2     Introduction to C++
Chapter 3     Expressions and Interactivity
Chapter 4     Making Decisions
Chapter 5     Looping
Chapter 6     Functions
Chapter 7     Arrays
Chapter 9     Pointers
Chapter 10    Characters, Strings and the string Class
Chapter 11    Structured Data
Chapter 13    Introduction to Classes

Topics to be covered in CMPS 222:

Chapter 9     Pointers
Chapter 10    Characters, Strings and the string Class
Chapter 11    Structured Data
Chapter 13    Introduction to Classes
Chapter 14    More About Classes
Chapter 15    Inheritance, Polymorphism and Virtual Functions
Chapter 16    Exceptions, Templates and the Standard Template Library (STL)

View the calendar on the course website to see the order in which these
topics will be presented.


Academic Integrity Policy:
Each student must turn in their own code; no direct copying is allowed on any assignment or lab.
There is no such thing as "working together on something" or lab partners, EVERY lab and homework should be 100% your own original code. 
Submission of a solution taken as a whole are any part from ANY source is unacceptable and will be considered plagiarism.

All assignments are in no way collaborative, any students coping homework or lab assignments will be formally reported 
and disciplinary actions will be taken as well as receiving a failing grade for the assignment or the class as a whole. 
Refer to the Academic Integrity policy printed in the campus catalog.

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.

Grading:  
Exams (3) 60%
Final     40%

Grades will be posted on the course website. Check your email on sleipnir 
when you log in as I may occasional email individual students or the class as a whole. 
I will email you to your sleipnir account only.

Labs:
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 without having your lab graded or you will not receive credit. 
Labs are designed to help prepare you each weeks homework. I will record who completes every lab to measure your participation level. 
Late labs will not be accepted for any reason. 



Homework:
Homework assignments are designed to prepare you for the exams. Assignments are due before class starts on the day the next homework is assigned.
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.
If your homework is done on time I will look at your assignment and offer constructive feedback so you will know what I will expect on the exams.
								

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. 
It is in your best interest to check test your homework and be SURE it is correct so that you are prepared for the exams and quiz's.



Exams:
There will be 3 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.



Final: 
The final is on Friday December 9th  from 5:00 - 7: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 ONE WEEK 
in advance of the final to schedule an alternate time.