Tom Hanson CS436 OOP Syllabus 1. Course Outline. We will be using the attached Course Outline. 2. Graded Activities. Your grade will be calculated from the following components: Quizzes (~4 ) In-class Exercises (~ 1 per week) Lab Project Class Participation Total 25 % 25 % 40 % 10 % 100 % These will be graded according to the attached Grading Criteria handout. NOTE: The first night paper will be graded as an exercise. 3. Late Assignments. Labs will be discussed and a sample solution handed out on the workshop following their due date, solutions to exercises will be handed out at the end of class for which they are assigned. Because of this, no Lab will be accepted more than one workshop late and no Exercise will be accepted after the end of the workshop for which it is assigned. Late labs will be assessed a penalty of 20%. No projects will be accepted after the last night of class. 4. Grading Scale. The following standard grading scale will be used. A 93-100 C+ 77-79 A90-92 C 73-76 B+ 87-89 C70-72 B 83-86 D+ 67-69 B80-82 D 63-66 D60-62 F Below 60 5. Coverage. We probably will not have enough class time to cover in detail all of the topics from the reading. However, you are responsible for all of the material. To reach this end, I will be relying on everybody reading the material and coming prepared to discuss and ask questions about those topics where they want further information. Your questions and comments will drive the in class discussion. A topic about which little interest is expressed will receive little, if any, time. However, that topic may be critical to your success on the quizzes or the projects. 6. Plagiarism. The schools plagiarism guidelines also apply to submitted code. Of special concern is that all code submitted for individual labs is your own work. While you may discuss the general approach to solving an individual lab with other students, at no time may any other person write or debug your code. If this occurs, you will receive no points for that assignment. A second occurrence will result in your failing the class and possible further disciplinary action. 7 . Attendance. Because of the accelerated nature of SPS classes, attendance is very important: a single missed class is a significant piece of the course. However, life outside of school can also be demanding. In recognition of this, two missed classes will be allowed. If an additional absence is unavoidable, it will have to be made up. If this occurs, please notify me in advance and I will assign make-up work due by the next session. Only one class may be made up. No more than a total of three classes can be missed for the successful completion of this course. Make up work does not qualify for class participation points. Grading Criteria. 1. Quizzes. The quizzes will be closed-book, consisting of 10-15 multiple choice questions and 1-3 short answer questions covering concepts discussed since the prior quiz. To receive full credit for the short answer questions, you must provide a full, descriptive answer using proper grammar. Sentence fragments or pictures will not receive full credit. 2. In-class Exercises. These will be short, focused exercises which are to be completed by the end of class. The emphasis will be on finding a correct solution to the problem. conformance to the Coding Standards is not required. The only material to be submitted for grading is a hardcopy of the code, with your name on it. 3. Lab Project. This is a series of individual programming assignments which build toward the completion of a running system. The details of the project are in the accompanying Lab Project handout. The submitted material must conform to the attached Lab Project Format handout and the code must follow the accompanying Code Development Standards must be followed. Points are allocated according to the following table. Section Source Code In-Line Documentation (Module Documents) Coding (standards, logic errors, etc.) Execution Runs correctly Testing Plan Results Total Points 4 4 8 2 2 20 Please note that a Test Plan and Test Results are required. The test plan must list the test cases and the data values to be used to exercise each case. The Test Results must show the actual output generated by the code when run using the data values from the Test Plan. 4. Class Participation. Everybody starts with 32 points for class participation with 2 points allocated to each workshop. If you do not contribute to the in-class activities for a particular workshop, whether in discussions or group activities, you will lose one or both of your points for that workshop. If you are absent, you will lose both points. If a third class is missed without prior makeup, all class participation points will be forfeit. Course Outline Week W/S 1 1 Topics Reading OOA/D, C++ vs C, Ch 1-5: Skim, read as necessary Borland C++ Activities & Due Dates C++ Input/Output Ch 1-5 cont’d 2 Objects and Classes (Start) Lab Time Ch 6 Introduction to Lab/Compiler 2 3 4 3 Objects and Classes c’d Ch 6 c’d 4 Multi-File Programs Ch 13 p 573-577 only (‘Ware the Calculator – it’s not the same!) 5 Arrays Ch 7 Operator Overloading Ch 8 6 Inheritance Ch 12 7 Inheritance c’d 8 Pointers and Memory Management Quiz Lab Time NO LAB Lab Proj 1 Due Ch 10 Quiz Lab Time 5 6 9 Pointers, etc. c’d 10 NO CLASS - Happy Thanksgiving 11 Virtual Functions, Friends, Static, etc. 12 Virtual Functions, etc. c’d Ch 11 Lab Proj 2 Due Quiz Lab Time 7 8 13 Streams and Files 14 Streams and Files c’d 15 Templates and Exceptions 16 Catch-Up Ch 12 Lab Time Ch 14 Lab Proj 3 Due Quiz Lab Project Format Each assignment for the Lab Project should include the following sections: 1. Cover Page. Include your name, the course name and number, and identify the lab being submitted. 2. Problem Statement. A short synopsis (in your own words) of the task to be completed in the lab. Do not just copy the problem statement. 3. Program Code. Hardcopy listing of all code and header files necessary to implement a solution to the lab. All code must conform to the attached Code Development Standards. 4. Test Plan and Results. Identify the input values to be used to test the program and the expected output values. As stated in the Evaluation Criteria, the test plan must list the actual data values to be used to exercise each case. The Test Results must show the actual output generated by the code when run using the data values from the Test Plan. 5. Diskette. 3 1/2” diskette containing: a DOS, or MS Windows executable; the source code file(s); and the data files (where applicable) used to test the program. ------------------------------------------Note: Sections 1 - 5 are to be in paper form. Lab Project The lab project will be the implementation of a simple, integer-only, four function calculator. The attached design materials provide more detail about the calculator. It will be implemented in three stages, with each stage being an individually graded assignment. The stages are listed below. Their due dates are shown on the Course Outline. 1. Lab 1. Implement the Data_Register and Expression classes. Test the classes individually and in combination. For testing purposes, use two Data_Registers, one for each operand. Store the result in one of the registers. (The one which stores the result will be replaced by an IO_Register in Lab 2) Be sure that you have the Expression retrieve the operands directly from the Data_Registers. Note: use main() as a test driver for the objects. For example, after entering the 2 nd operator, and before the 3rd operand, the intermediate result must be moved between registers. This would normally be handled by the Register_Set, but it hasn’t been implemented yet. This step will have to be performed by main(). 2. Lab 2. Implement the IO_Register and the Register_Display and integrate them with the Data_Register and Expression. Replace the Data_Register which holds the second operand and the result with an IO_Register. Again, test each class individually and the new combination. Be sure that the IO_Register exhibits the correct state behavior. 3. Lab 3. Implement the final two classes: Keypad and Register_Set. Integrate them with the existing classes to form a complete Calculator system. Test the Calculator to verify correct operation. Be sure to confirm that it properly calculates a two operation expression such as 123 + 456 - 500. ------------------------------------------Note: DO NOT output any data directly to the printer. This is not portable and specifically does not work on my computer.