Tom Hanson CS436 OOP We will be using the attached Course Outline.

advertisement
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.
Download