Instructor: Jim Millard | Phone: 523-9013 |
Office: n/a | E-mail: jim3@millard.org |
On-line info: http://teach.millard.org/CO311/ | |
Availability: Before class (approximately 45 minutes) and by appointment | |
Assistants: | |
---|---|
Keith Briggs | oogyboogy@earthlink.net |
GregAdam | gregadam@hotmail.com |
C++ Program Design, An Introduction to Programming and Object-Oriented Design, 2nd Edition, Cohoon & Davidson, WCB McGraw-Hill, 1998
From the University Catalog: This course covers input/output, iteration, selection, repetition, functions, parameters, elementary data structures, and the object-oriented programming paradigm. Prerequisite: CO211 or equivalent.
What is really covered: CO311 picks up where CO211 left off, assuming that the student
has a foundation in the scalar data types of C/C++ (int
, float
, char
),
the basic control structures (if
, switch
, while
, for
)
and program flow and redirection (functions with a variety of argument types). It is also
assumed that the student has experience writing programs that work with both the standard
input/output as well as simple text files. With this foundation, CO311 will approach the
advanced topics of object-oriented design from a top-down programming
methodology. At the same time object design, reuse and inheritance, polymorphism,
container objects and the standard template library are introduced, good programming
habits and program design will be covered.
Each 3½ hour class meeting will (typically) consist of two parts, a lecture portion and a lab portion. The lecture portion will use the first 1 to 2 hours for question & answer based on previous days work, followed by new lecture material and accompanying demonstration. Following a brief break, we will reconvene in a lab classroom for a chance to begin hands-on work with the topics covered. At the end of each lecture session, homework problems for that lecture will be assigned that illustrate that evenings new material. Typically, the homework will be collected and graded for correctness, but will not count to the semester grade; if there are exceptions, you will be given ample notice. Instead, a portion of the lab period may be used to administer lab practicals: tests of your skill at coding a solution to a problem using techniques covered in previous days lecture(s). The hope is that the homeworkdone with instructor consultation and a lower-pressure deadlinewill prepare you for the high-pressure, non-consultative practicals.
Lab Practicals will be weekly tests consisting of timed periods where you will be expected to solve a single programming problem with the assistance of nothing but your book, notes, and online help text. In that time period, you will be expected to design, code, test and submit a solution to a problem using a synthesis of skills hopefully learned in previous weeks. Unless otherwise pecified, you will work alone on the problem, consulting the book, your notes or the instructor/lab assistant(s) if necessary. Practicals will not be administered the week that the topics were introduced, giving you time to complete suggested assignments and have questions regarding them answered. Practicals will be very similarbut not identicalto homework problems, and administered every week except the first class meeting.
The general timeframe of lecture, homework and practicals be as follows:
Week | Lecture | Homework | Practical |
---|---|---|---|
1 | Topic A introduced | Topic A homework assigned | none |
2 | Topic A reviewed, Q&A on homework Topic B introduced |
Topic B homework assigned | Topic A practical |
3 | Topic B reviewed, Q&A on homework Topic C introduced |
Topic C homework assigned | Topic B practical |
In addition to the scheduled regular meeting, an optional help session will be scheduled during weekends. This schedule will be decided by popular vote of all the students, and will be set on the first night of class, with an optional re-scheduling vote taken after the mid-semester break. No new material will be covered in these sessions; their purpose is to give the student additional access to the instructor (and assistants?) for the purpose of better understanding the topics through homework.
Grades will be based on :
Homework exercises will be assigned at the end of the lecture period, and the lab period will be spent in getting started on the homework exercises under the guidance of the instructor (or lab aides). These homework exercises should be viewed as practice exams, since the test given in the following week will be similar in nature (but different in the details) to the exercises. Final answers to the homework exercises will be posted on the class website by the Thursday following the Monday class.
All homework will be accepted and reviewed for correctness at any time during the
semester; however, homework that will contribute to your final grade will only receive
credit if turned in on or before the due date. Programs will be reviewed in three major
areas: compilation, correctness and style. When graded for credit, compilation and style
will be worth 25% credit each, and correctness will be worth the remaining 50%. The
compilation grade simply indicates the ability of the reviewer to compile, link and
execute the submission without modification. If there are simple errors to fix, partial
credit will be given; major compilation errorsones where the reviewer has a
difficult time discovering or fixing the errorwill result in no credit for that
portion. The style portion reflects both objective consistency in source code formatting
as well as subjective readability of the algorithm as presented by both good naming
convention and use of comments. Correctness of the submission covers all aspects of the
solution, from utilization of specified constructs (dont use a chained if
-else
-if
or complex boolean expression where a switch
is requested) and objects
(dont use a float
when an int
is specified) to whether the
program works with all reasonable permutations of sample data (if it works for positive
numbers, fails for negative numbers, but should work for all values, partial credit will
be given). Written (non-code) answers for design problems will be graded for grammar,
spelling, etc. in addition to the content of the answer.
There will be a total of 13 practicals in the semester. Each practical will be worth a total of 100 points, and the final grade in the course will be the straight average of 12 practicals. If a student has been present for all of the 13 practicals, then the lowest score will be dropped and the best 12 scores averaged. If a student has missed a weekly test, then that is score that will be dropped. If a second practical is missed, it must be made up, and it is the responsibility of the student to contact the instructor and arrange a time for a make-up test. Final letter grades will be assigned according to the following scale:
|
See the Rockhurst College Bulletin for policies regarding academic honesty.
The programs that you submit in this class should essentially be your own (or that of your
team, where teams may have been assigned). That means what you type at the keyboard should
be from your own notes, not from someone elses notes or printouts.
Copying a report or program from another student is plagiarism, even if you modify it to
disguise the act or add some enhancements. Modifying your program in parallel with another
student (teaming up on your own) is not acceptable either, and will not be permitted
during practicals. If you and your informal teammate are struggling, then stop typing and
go back to the drawing board, away from the computer.
On the other hand, not all forms of cooperation are plagiarism. Discussing a problem with
another student is okay; so is designing an algorithm to solve a problem,
but that should be done separately from coding it. Helping someone else to correct
mistakes in a program is fine, as long as the corrections dont mean rewriting major
chunks of code. Significant help must be acknowledged in writing when the assignment is
submitted.
Students caught cheating will receive a 0 on the project and may receive an F for the
course, as allowed by the Rockhurst Policy on Academic Honesty.
Class will be meet in R315 on Mondays at 6pm for 1 to 2 hours of lecture and demonstration; following a brief break, we will split up and reconvene in VA310 and VA401 for lab practicals and to begin hands-on work with the topics covered.
The labs have a laser printer and Windows NT v4 machines withamong other
thingsMicrosoft Visual Studio/Visual C++ Version 5. This particular version of the
compiler and development environment will be the official environment for the course and
all programs will be measured using that particular yardstick, with one exception: The
compiler (and its Version 6 sibling) has a known bug specifically related to object scope
within for
loops; students will be expected to take this into acccount when
coding, rather than treating it as correct. Students with their own computers
will be aided in obtaining/configuring similar setups so they can work off-campus as
needed. The labs are regularly open to students outside of scheduled class times (other
classes may take place in the labs) for students to work on homework; the University
offers at least three labs (R205, R203 and C2) with 24×7 access.
At least one publishing of the text (hopefully the one you acquired) comes with an introductory copy of the Microsoft Visual Studio/Visual C++ Version 6 for use on a personal computer. Using this version of the programming environment at home or work is not specifically encouraged or discouraged, but it is always possible for programs that compile, link and execute correctly in one environment to fail in another. You may also buy educational discount-priced versions by special order of several compilers/development environments in the University Bookstore. Please be certain to test your code in the lab environment if you have any concerns about portability or have had trouble with it in the past.
Comments? Email jim3@millard.org | Last updated October 20, 2001 |