Edinboro University of Pennsylvania Department of Mathematics & Computer Science COURSE SYLLABUS Course Number: CSCI 230 MW Course Title: Principles of Programming II Semester: Spring, 2015 Credit Hours: 3 Professor: Patricia Hillman Office: Ross 147, 732-1172 hillman@edinboro.edu http://users.edinboro.edu/hillman Office Hours: MW 4:30 – 6:00 TR 11:00 – 12:00 =============================================================== Catalog Description This course continues CSCI 130. Topics include user-defined data types, data structures including lists, stacks and queues, several sorting and searching algorithms, pointers, and introduction to object oriented programming, the standard template library, and recursion. Implementation of programs will be done in C++. Prerequisite: a C or better in CSCI130 and CSCI125. Expanded Description This course is designed to be a second course in the use of the C++ programming language. The course will begin with a brief review of functions, as introduced in Principles of Programming I, and will be followed by the creation of user-defined data types and arrays. Students will then be exposed to object-oriented software development by using classes. This will be introduced using the concept of an abstract data type. Additionally, using UML to design and diagram classes will be presented. Lists and list-based operations will follow the discussion of classes. Finally, pointers and linked lists will be taught to expose students to a variety of basic data structures, such as stacks and queues. Also, students will be introduced to the concept of recursion. Throughout the semester, emphasis will be placed on appropriate problem-solving techniques, algorithm development, testing techniques and on the use of proper documentation. Intended Audience This course is intended for computer science and management information systems majors and minors who have successfully completed CSCI 130 Principles of Programming I. Spring 2015 P age |1 CSCI230.002 Textbook & Materials Programming and Problem Solving with C++, 6th Edition by Nell Dale and Chip Weems Two-Pocket Folders for Submitting Your Projects 3 Large Blue Books for Exams – you will be required to use the Blue books, so if you arrive to an exam without one, you will be required to purchase one from me for $1.00 Course Requirements Grades will be based on: Attendance and Participation Exercises and Quizzes Programming Assignments 2 Exams and a Final Exam 10% of your grade 20% of your grade 30% of your grade 40% of your grade Grading Scale: 90 – 100 88 – 89 80 – 87 78 – 79 70 – 77 68 – 69 60 – 67 0 – 59 A B+ B C+ C D+ D F Course Objectives On successful completion of CSCI 230, the student should be able to: Spring 2015 Demonstrate the ability to employ proper design methodologies for programming. Design and implement a program incorporating various user-defined data types. Design and implement a program incorporating data structures. Design and implement abstract data types. Demonstrate the ability to use an abstract data type. Describe the algorithm for, characteristics and performance of selected sorting, searching, and recursive algorithms. P age |2 CSCI230.002 Tentative Outline Week Topic Resources 1&2 Beginnings – Review of functions, scoping & expectations C++ Series 7 Functions Programmers Institute (this is a series of 5 videos) User-defined data types Chapter 10 http://www.cplusplus.com/doc/tutorial/other_data_types/ http://www.learncpp.com/cpp-tutorial/47-structs/ Arrays Chapter 11 Introduction to Arrays in C++ http://www.cplusplus.com/doc/tutorial/arrays/ string ADT vs. cstring http://cs.stmarys.ca/~porter/csc/ref/c_cpp_strings.html Classes & Abstraction Chapter 12 Basic Classes -- Part 1 of 2 Basic Classes -- Part 2 of 2 http://www.tutorialspoint.com/cplusplus/cpp_classes_objects.htm http://www.learncpp.com/cpp-tutorial/89-class-code-and-header-files/ UML Basics http://www.tutorialspoint.com/uml/uml_basic_notations.htm Array-based Lists Chapter 13 Searching Sequential Searching Sorted List Selection Sort Binary Search Binary Search Pointers & Lists Chapter 14 An Introduction to Pointers http://www.cplusplus.com/doc/tutorial/pointers/ http://www.cplusplus.com/doc/tutorial/dynamic/ 3&4 4&5 6 7&8 9 & 10 Spring 2015 P age |3 CSCI230.002 11 & 12 Pointers & Lists (cont.) Chapter 14 http://www.scribd.com/doc/193104374/Cpp-Lernaufgabe-Linked-List http://www.cs.odu.edu/~cs333/website-latest/Lectures/linkedlists/pages/ar01s01.html 13 Data Structures & STL Chapter 17 Stack and Queue ADT http://www.programmingincpp.com/basic-sequence-container-properties.html http://www.programmingincpp.com/vector-and-list.html http://www.programmingincpp.com/queue-and-stack.html Binary Tree ADT http://www.programmingincpp.com/stl-container-class-set.html 14 Recursion Chapter 18 Recursive Algorithms Recursion – Animated examples 15 Final Exam (May 6th) Spring 2015 P age |4 CSCI230.002 General Expectations: 1. Attendance is imperative. Poor class attendance may result in a lower final grade. Attendance for examinations is mandatory. The examinations are scheduled to be given on: Wednesday February 18, 2015 Wednesday April 1, 2015 The final exam will be given on Wednesday May 6, 2015 from 6:00 - 8:00 pm. There will be NO exceptions to this date and time. 2. All assignments will be given a due date. Students are expected to turn the assignments in by the due date. Programming assignments will be collected at 6:30 pm on the due date. Late assignments will not be graded!!! There will be no exceptions to this policy. An assignment will be considered LATE if you arrive to class late on the day the assignment is due. It is a requirement that your programs compile, link and run properly using the Gnu C++ compiler on the Linux server. Homework assignments must be completed using a word processor and submitted to the appropriate D2L dropbox. Reading quizzes will be also be completed through D2L. In both cases, due dates and times will be attached to the dropboxes and quizzes. (A note about ALL homework assignments: it will be impossible for you to pass this class without completing the homework assignments!!!!!) 3. All projects are expected to be done by the individual, unless otherwise directed. Cheating will not be tolerated and will result in a failing grade for the class AND referral to Judicial Affairs. I will entertain NO excuses for cheating! 4. I will use email to communicate with you about many things outside of the regular class time. It is imperative that you check your email frequently, therefore I will require you to check your email regularly and assume that you receive any email message from me within 12 hours of it being sent. 5. A note about classroom behavior!!! It is expected that you attend each class and pay attention. Please do not interrupt the class by arriving late, leaving early or excusing yourself during class time. Other disruptive behavior such as sleeping in class, talking with your classmates, clicking of pens, and gathering your books/papers/backpacks before class is dismissed will not be tolerated. Make sure ALL CELL PHONES and other electronic devices that make noise are turned off during class time. We will occasionally use the computers in the classroom and while doing so, I expect your complete attention during lectures. You should not be using the computer for any reason during lectures unless I have instructed you to do so. I will give only ONE VERBAL WARNING, after which I will begin deducting 10 points from exams for each infraction. Spring 2015 P age |5 CSCI230.002 6. It is my hope that we will engage in discussions about many issues involving computers. Please respect the right of others to have opinions that may differ from yours. 7. If you are struggling with the material in the class, please make a point to visit me during my office hours or make an appointment to receive additional help. Because the material builds on prior content, it is not wise to wait until after midterms to try and “rescue” your grade. Establishing a tutoring relationship with anyone during the last week of the semester will be impossible and should not be attempted. Spring 2015 P age |6 CSCI230.002