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


Office Hours:  45 minutes before class starts and by appointment

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 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:(32659) T Th  5:30pm - 6:45pm in Sci III 315
Lab:(32660)     T Th  7:00pm - 8:15pm in Sci III 315


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. Including any code other than the files provided for you at the start of the assignment will result in a zero for that assinment and the full value for that assignment will be subtracted from your grade. For example , a complete homework would earn 20 points, a incomplete assignment might get 5 points, submitting any code at all copied from someone else or online will result in -20 points


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)   40%
Final       30%
Assignments 30%

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. 
Late Labs will not be accepted.


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.Generally you will have a week to complete a homework.
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.
Late homework will NOT be accepted, I MAY allow you extra time to complete a homework if ..1 you have worked on it ,2 you contact me for help with any issues and I agree before the due date to extend your deadline.


								

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.


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 schedule is unknown at this point

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.