CS 215: Introduction to Program Design, Abstraction, and Problem Solving Spring 2015, Section 401 Course Description: This course covers introductory object-oriented problem solving, design, and programming engineering. Fundamental elements of data structures and algorithm design will be addressed. An equally balanced effort will be devoted to the three main threads in the course: concepts, programming language skills, and rudiments of object-oriented programming and software engineering. (4 credit hours) Prerequisites: CS 115, 221, or equivalent. Course web page: http://www.cs.uky.edu/~xiwei/cs215/ 1 Meeting Times and Places Lecturer: Xiwei Wang (Email: [email protected]) Lab instructor and grader: Joedocei(Joe) Hill (Email: [email protected]) Lecture: W 6:00pm-8:00pm, F Paul Anderson Tower (FPAT) 263 Lab: T 6:00pm-8:00pm, Ralph G Anderson (RGAN) 211 2 Office Hours My office hours are TBD. 3 Course Materials and Facilities While additional course materials (in the form of assignments, problem sets, and additional readings) will be provided online through the course web page, you are responsible for obtaining a copy of the course’s textbook. The course web page, source control system, and email to students will all be used to disseminate required information for the course. Slides from the lectures will be posted online, but are not a substitute for attending class. 3.1 Textbook The required text for the course is C++ For Everyone (Second Edition), by Cay Horstmann (Wiley, ISBN 978-0-470-92713-7). The publisher maintains a companion web site for the book at http: //bcs.wiley.com/he-bcs/Books?action=index&itemId=0470927135&bcsId=6146. In particular, chapters 11 through 14 are available as a web-only supplement (PDF downloads) at http:// bcs.wiley.com/he-bcs/Books?action=resource&bcsId=6146&itemId=0470927135&resourceId= 22685. Both links are posted for your convenience on the course web site. 3.2 Computing facilities and programming environment Lab sessions will be held in the computer lab in RGAN 211. All lab exercises and programming assignments will be compatible with the virtual desktops available to students at http://apps.uky. edu/. The course will be taught (and assignments designed with) the Visual Studio 2012 IDE; this IDE will be available both from the virtual desktop above and through the DreamSpark (MSDNAA) CS 215 Spring 2015 1 January 17, 2015 program through the university to students of computer science classes. It is also installed on most of the computer labs on campus. The first lab session will be focused on familiarizing students with these resources. If you use a newer version of Visual Studio to work on your assignment, you might lose the ability to load the assignment on the lab computers. The DreamSpark web store is available online at http://e5.onthehub.com/WebStore/Welcome. aspx?vsro=8&ws=4fbfccac-db9b-e011-969d-0030487d8897. 3.3 Assignment submissions All assignments and exercises must be submitted electronically through CSPortal (https://www. cs.uky.edu/csportal/). In general, late assignments of any type will not be accepted without an excused absence. Please contact your instructor in advance if you anticipate having an excused or unexcused absence. Every excused absence must be accompanied by documentation in writing provided to your instructor. If technical problems prevent submitting an assignment in the normal way, contact your instructor before the deadline to arrange an alternative. 4 Grading, Assignments, and Exams Programming Assignments Weekly Assignments (labs, problem sets) Attendance and participation Midterm Exam Final Exam 35% 30% 10% 10% 15% Grades for all assignments will typically be posted and available for discussion with your grader in no more than a week since the submission deadlines. 4.1 Programming assignments There will be four programming assignments distributed throughout the semester. Each programming assignment will be announced in class with instructions and grading notes provided through the class web site, and a project template will also be available. Together, these assignments will constitute 35 percent of your grade, with some assignments worth slightly more than others. Extra credit may be available on some programming assignments. Your instructor can provide help during office hours, but students working on the main part of the assignment have priority. Bonus points should only be attempted after you have completed the rest of the assignment. In particular, extra credit will not be granted for any incomplete submission, nor for any submission where the student receives less than 60% of the available non-bonus points. 4.2 Weekly assignments During most weeks, a problem set will be assigned on Monday, available on the class web site, and will be due Friday night at midnight. A lab exercise will be assigned on Tuesday, covered during the lab session, and due Wednesday at midnight. Together these assignments will compromise 30 percent of your final grade. CS 215 Spring 2015 2 January 17, 2015 4.3 Attendance and participation Beginning with the second week (Tuesday 20 January), attendance will be taken in lecture and lab. Attendance will constitute 10 percent of your final grade. 4.4 Midterm and final exams The midterm (Wednesday, 4 March, normal lecture time and location) and final (Monday, 4 May, normal lecture time and location) will be worth 10 and 15 percent of your final grade, respectively. Note that the time of the final exam is a function of the university’s final exam schedule, and we have no influence or control over it. Make-up exams will be provided only with an excused absence, or in the case of the final, with documentation of a conflicting exam. Please let the instructor know as early as possible if you require a different exam time. 5 Curve There may be a curve on exams and on the final grade, taking the form of a small fixed bonus (possibly zero) added to all non-zero scores. The amount of each curve will be announced after class averages for the respective assignment or grade has been determined. Curves will never lower your score, only raise it or keep it the same. 6 Other rules and policies See Section 4 for rules and policies related to grading and attendance. See also the Student Rights and Responsibilities handbook at http://www.uky.edu/StudentAffairs/Code/ for more details on these and other policies. 6.1 Academic Dishonesty and Plagiarism All assignments in class are individual work. All work submitted as part of the class must be your own. You may not share work (whether from weekly problem sets, lab exercises, or programming assignments), nor may you use code you found online, or provided to you by anyone except your instructor. You may not show your answers to another student: if you do and the answers are copied, you will both be held responsible. You may not sign in for another student or have another student sign in for your attendance grade. You may not bring notes of any form to an exam without the instructor’s permission. Academic offenses will be taken seriously, and the minimum penalty for academic dishonesty will be a score of zero assigned to the affected assignment. Note that for this purpose, the entire attendance section of your final grade is considered one assignment. 6.2 Attendance and professionalism You are expected to attend and pay attention to every session of class. Students are expected to be engaged while in class and not to provide distractions for other students present. The use of electronic devices other than laboratory computers is not permitted in general during class sessions. If you require a computer or other electronic device to take notes, please contact the instructor for accommodations: see Section 6.4 below. CS 215 Spring 2015 3 January 17, 2015 6.3 Harassment and discrimination No form of harassment or discrimination, for any reason, will be tolerated. UK’s harassment and discrimination FAQ is available online from the Office of Insitutional Equity and Equal Opportunity at http://www.uky.edu/EVPFA/EEO/discrimination_faq.html . 6.4 Accommodations If you have a documented disability that requires accommodation, please contact the instructor as soon as possible at the beginning of the course. In order to receive accommodation, you must provide a letter from the Disability Resource Center on campus. 7 Educational Objectives This course will introduce the student to object-oriented design, problem solving, and program engineering. Subjects include data structures, dynamic data allocation, pointers, recursion, and debugging. The fundamental goal of the course is to introduce the student to the C++ programming language and to provide the student with a toolkit for solving problems with an object-oriented programming language, including data types, data structures, algorithm design, recursion, and debugging. Proficiency Goals: • Object oriented approach to programming • Dynamic memory management • Recursive programming techniques • Data structures, such as linked lists, stacks, queues, and trees • Language constructs not covered in CS-115, such as pointers, dynamic storage • Language constructs that support data abstraction with an emphasis on object-oriented design rather than procedural design • Language constructs that support algorithm design, such as recursive vs. iterative methods • Determining specifications for a problem • Designing a solution • Testing and debugging skills Familiarity Goals: • Sorting techniques • Searching techniques, such as binary search trees • Algorithm run-time analysis (Big-O notation) CS 215 Spring 2015 4 January 17, 2015 8 Course Evaluation Questions The student learning outcomes listed below will appear on the final course evaluation. The goal of the course is to provide a directed and comprehensive learning experience that will enable you to offer the highest rating on each of the outcomes. In order for that to happen, you will need to work hard to do your part—attend lectures, study the material, do the readings from the course text, complete individual exercises, programs, and labs. CS 215 Spring 2015 5 January 17, 2015 This course has helped me to improve my ability, my understanding, or my knowledge in the following categories: • My ability to analyze a problem, and identify and define the computing requirements appropriate to its solution • My ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs • My ability to solve programming problems using classes • My ability to solve programming problems using dynamic data and pointers • My ability to solve programming problems using recursion • My understanding the basic data structures (linked lists, stacks, queues, trees) and can use them in programs. • My understanding the principles of sorting and searching CS 215 Spring 2015 6 January 17, 2015 9 Schedule of Lectures Note: This schedule is subject to change. Changes will be announced on the class web page and by email. W T W T W T W T W T W T W T W T W T W T W T W T W T W T W T W M Date 14 Jan 20 Jan 21 Jan 27 Jan 28 Jan 3 Feb 4 Feb 10 Feb 11 Feb 17 Feb 18 Feb 24 Feb 25 Feb 3 March 4 March 10 March 11 March 17 March 18 March 24 March 25 March 31 March 1 April 7 April 8 April 14 April 15 April 21 April 22 April 28 April 29 April 4 May CS 215 Spring 2015 Read ch. 2,3,4 2,3,4 4,5,8 4,5,8 6 6 8 8 7,9 7,9 9 9 Notes Topic Course introduction, programming environment, “Hello, world” variables, declarations, and types; conditionals and loops, scope Strings; functions and parameters, reference parameters; debugging; formatting Code tracing; Arrays and vectors, multidimensional arrays Streams and I/O; header files; file operations; exceptions; pointers; C strings, dynamic memory; object-oriented programming, encapsulation Classes and methods; constructors and destructors, multiple compilation, assignment operator MIDTERM EXAM 9,10 9,10 10 10 11,13 11,13 12,13 12,13 12,14 12,14 TBD TBD TBD TBD TBD TBD - Tracing objects, “Has-a” relationship, this pointer; inheritance, code reuse, pointers to objects, operator overloading Inheritance 2; pointers to objects, polymorphism and virtual functions; static and dynamic types, abstract base classes Recursion; lists, stacks, and queues Lists, stacks, and queues 2; time complexities, lists implementation Searching and sorting Searching and sorting 2; sets and maps; Binary search trees Special topics, final review FINAL EXAM 7 January 17, 2015
© Copyright 2024