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.