Fall 2016
Classroom location: IRC 120AB
Class schedule: MWF 2:00-2:50pm
Prerequisites: CSCI 116
Instructor: Dr. Don Allison
Office: 231 Fitzelle
Hall
Phone: 436-3439
Email: allisodl@oneonta.edu
Office Hours: MW 5-7pm
F 5-6pm
Others
by appointment (or just drop by)
Catalog Description:
A continuation of
CSCI 116 focusing on object-oriented programming and programming methodologies
beyond a structured, procedural programming approach. Students will begin to build larger
programming projects and solidify their programming skills.
Course Description (the inside scoop):
This is the follow on course to CSCI 116. In CSCI 116, you covered structured
programming and procedural programming, and learned the basics of C/C++. In this course you will focus on the parts of
C++ that make it different from C, namely classes and all that goes along with it. At the end of this course you should be a
fairly competent C++ programmer, ready to move on to data structures, and to be
able to implement these data structures yourself in C++.
Course Goals:
To have students become familiar with the
concepts of a class, member functions, public and private parts, operator
overloading, object-based programming, object-oriented programming, generic
programming, templates, and the standard libraries in C++, and to be able to
use these concepts to implement moderately challenging programs.
Text and Software:
The required text for
the course is D. S. Malik’s C++ text, C++
Programming: Program Design Including Data Structures, 6th
edition, published by Course Technology in 2012, ISBN-13 978-1133526322. The required text explains the features and
functionality of C++ in the context of programming, with many example
programs. You should read it as
indicated in the schedule below as we cover the various topics. You will also find a copy of the C++ Pocket Reference by Kyle Loudon,
published by O’Reilly in 2003, ISBN-13 978-0596004965 to be very useful. It’s cheap, small, and a nice reference for
C++.
Programs for this
course can be developed on any platform that supports the C++ programming
language. However, I will be using (and
will assume your assignments will work with) Windows 10 and Microsoft Visual
Studio 2015, both of which are available in the departmental lab and in any of
the other campus labs. If you wish to
work on your own computer, you can go through JourneyEd
to join Microsoft’s Dreamspark program and get Visual
Studio for free. You can also get a copy
of both Windows 10 and Visual Studio 2015 through the MSDN Academic
Alliance—see me for details, but be warned that Visual Studio 2015 has gotten
so large that the install won’t fit on a DVD anymore! You’ll need at least an 8GB jump drive, or
else to install it from the web. Other
options include using TextPad (shareware) and the
free Borland command line version of their C++ compiler which you can download
from their web site. If you prefer a
UNIX/Linux environment, G++ is probably the best C++ compiler currently
available, and is available for free as well.
Tentative Schedule: (order of readings &
other assignments, by due dates, course activities, course content by expected
order of coverage, test dates and test coverage)
Date |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Aug 22-26 |
National Tooth Fairy Day |
Ride the Wind Day |
Vesuvius Day |
Orientation Kiss and Make Up Day |
Last day to register National Dog Day Women’s Equality Day |
Aug 29-Sep 2
|
Classes begin Add/drop begins More Herbs, Less Salt Day |
Toasted Marshmallow Day |
National Trail Mix Day |
Emma M. Nutt Day |
College closes after last class VJ Day |
Sep 5-9 |
Add/drop ended yesterday Labor Day BREAK Cheese Pizza Day |
Classes resume Fight Procrastination Day Read a Book Day |
Neither Rain Nor Snow Day |
International Literacy Day Pardon Day |
Teddy Bear Day |
Sep 12-16 |
Last Day to add Chocolate Milk Shake Day National Video Games Day |
Fortune Cookie Day National Peanut Day Positive Thinking Day |
National Cream-Filled Donut Day |
Felt Hat day |
Collect Rocks Day Step Family Day POW/MIA Recognition Day Working Parents Day |
Sep 19-23 |
International Talk Like A Pirate Day National Butterscotch Pudding Day |
National Punch Day |
Miniature Golf Day World Gratitude Day |
Autumn Equinox Elephant Appreciation Day |
Dog in Politics Day Checkers Day |
Sep 26-30 |
TAP certification begins Johnny Appleseed Day |
Oktoberfest Begins |
Ask a Stupid Question Day National Good Neighbor Day |
Confucius Day |
National Mud Pack Day |
Oct 3-7 |
Techies Day Virus Appreciation Day |
National Frappe Day National Golf Day |
Do Something Nice Day World Teacher’s Day |
Mad Hatter Day Physician Assistant Day |
College closes after last class Bald and Free Day World Smile Day |
Oct 10-14 |
Columbus Day BREAK National Angel Food Cake Day |
BREAK It’s My Party Day |
Classes resume Moment of Frustration Day Old Farmer’s Day Take Your Teddy Bear to Work Day |
International Skeptics Day |
National Dessert Day World Egg Day |
Oct 17-21 |
Wear Something Gaudy Day |
No Beard Day |
Evaluate Your Life Day |
Interim progress reports due from
faculty Brandied Fruit Day |
Babbling Day Count Your Buttons Day |
Oct 24-28 |
National Bologna Day United Nations Day |
World Pasta Day |
National Mincemeat Day |
National Tell a Story Day |
Last day to drop a full semester
course Plush Animal Lover’s Day |
Oct 31-Nov 4 |
Halloween |
All Saint’s Day |
All Soul’s Day Deviled Egg Day Plan your Epitaph Day |
Men Make Dinner Day Sandwich Day |
King Tut Day |
Nov 7-11 |
Bittersweet Chocolate with Almonds
Day |
Dunce Day US General Election Day |
Chaos Never Dies Day |
Forget-Me-Not Day |
Veteran’s day—classes held |
Nov 14-18 |
Begin Spring pre-enrollment World Diabetes Day |
Clean your Refrigerator Day National Philanthropy Day |
Have a Party with Your Bear Day Button Day |
Electronic Greeting Card Day Great American Smokeout Homemade Bread Day Take a Hike Day |
|
Nov 21-25 |
Last day to make up incomplete
grades False Confession Day |
College closes after last class Go For a Ride Day |
BREAK Eat a Cranberry Day National Cashew Day National Tie One On Day |
BREAK Thanksgiving |
BREAK BLACK FRIDAY |
Nov 28-Dec 2 |
Classes resume CYBER MONDAY French Toast Day Red Planet Day |
Stay at Home Because You Are Well
Day |
Last day to withdraw or take leave
of absence |
Eat a Red Apple Day |
National Fritters Day |
Dec 5-9 |
Repeal Day |
Mitten Tree Day St. Nicholas Day |
Pearl Harbor Day National Cotton Candy Day Letter Writing Day` |
National Brownie Day |
Christmas Card Day National Pastry Day |
Dec 12-16 |
Last day for faculty to turn in grades for incompletes Last day of class National Ding-a-Ling Day Poinsettia Day |
STUDY DAY Ice Cream Day |
Final Exams Begin 8-10:30am 10MWF 11am-1:30pm 12MWF 2-4:30pm 1MWF Roast Chestnuts Day |
8-10:30am 10TR 11am-1:30pm 2:30TR 2-4:30pm 11:30TR National Lemon Cupcake Day |
8-10:30am 9MWF 11am-1:30pm 11MWF 2-4:30pm 4MW National Chocolate Covered
Anything Day |
Dec 19-23 |
8-10:30am 8MWF 11am-1:30pm 2MWF 2-4:30pm 3MWF Look for an Evergreen Day |
Final Exams End 8-10:30am 8:30TR 11am-1:30pm 1TR 2-4:30pm 4TR Go Caroling Day |
Humbug Day Look on the Bright Side Day National Flashlight Day Winter Solstice |
|
Festivus |
http://www.holidayinsights.com/moreholidays/
http://www.oneonta.edu/admin/registrar/pdf_forms/springkeydates.pdf
General Policy Information:
All college policies
will be adhered to, including policies on attendance, academic honesty,
etc. Students are expected to be
familiar with and adhere to these policies as outlined in the student handbook,
this syllabus, and other administration publications.
Attendance Policy:
Attendance is STRONGLY
encouraged. Although it will not enter
into your grade computation directly, I will be taking attendance occasionally,
especially at the beginning of the semester to start putting names with
faces. However, students who attend
class regularly do much better in
their classes than their peers who attend sporadically. You will be responsible for material covered
in class as well as the material in the text. In addition, we will be discussing the exams
and programming projects in class, writing sample code for them, and so on, as
well as answering questions about the assigned material, so it is in your best
interest to attend class as much as possible.
Finally, the college has a requirement that students attend one of the
first two lectures and the first lab for any course or they can be
administratively dropped from the course and their space given to someone
else. Additionally, anyone missing 25%
or more of the class meetings to that point at any time up
through midterm can be involuntarily dropped from the course. Depending on the number of people on the
waiting list for this course, these policies will be enforced more or less
stringently.
Collaboration Policy:
Cheating or other
academic dishonesty hurts others as well as yourself and will not be
tolerated! For this course, however, it IS
acceptable to collaborate with your classmates, under certain conditions. All work submitted on the exams should be
yours and yours alone, as should any code you submit. If you are working on a project and run into
a problem, it is acceptable to ask a classmate or other person a general
question (such as, “what are the two conditions needed to guarantee termination
of a recursion”), AS LONG AS you actually do the work yourself. For instance, it is unacceptable to ask
someone (other than your instructor) to write code for you to handle argument
passing for a function, or code for opening a file for input. You can share code that was discussed in
class however. In other words,
discussing algorithms or the lecture content is okay, but discussing specifics
of the programming assignments is not.
You should be the physical creator of everything you turn in that wasn’t
provided by the instructor. You should
also be able to answer any question I have about how every one of your programs
works.
Programming Style Guidelines:
Programming style is an
important part of coding, and programs you write for this class will be
expected to follow the style guidelines discussed in class and illustrated by
the programs we write in class. You
should indent your code to reflect its internal structure. You should use block comments to explain what
your code is doing at a high level. Each
function should have a header that gives the function name, the inputs, the
output(s), and lists any side effects, as well as providing a two or three
sentence summary of what the function does.
In addition, your main program file should have a block header similar
to the following:
// CSCI 216 Fundamentals of
Programming II Fall 2016
// Program #1: Getting
started
// Author: Don Allison
// Date Due: 23 September
2016
//
// This object of this
program is to verify that we can compile and
// execute programs using a
C++ compiler.
Your header should
include the course name and number, the assignment number, your name, the
program due date, and a two or three sentence description of the purpose and
function of the program.
Program Turn-in Procedure:
You should run your program,
capture the output, and append it to the bottom of your source file that
contains the main function, as comments.
You should print out your source and include file(s) and staple them together. These should be turned in by the end of class
on the day they are due. Make sure
you turn in all the required parts!!!
Grading and Other Administrivia:
Exams:
There will be two
exams. Each exam will contribute 25% of
your grade.
Programming Projects:
The programming
projects are an integral part of the course.
There will be roughly one programming project every week or two, with
each one illustrating or emphasizing the topics being covered. Projects contribute 40% of your grade.
Homework, etc:
The remaining 10% of
your grade will be determined by your grades on homework assignments, class
participation, quizzes, etc.
Grade
Computation:
|
Weight |
Tentative
Date |
Exam
1 |
25% |
12 October |
Exam
2 |
25% |
21 November |
Programming
Projects |
40% |
See schedule above |
Participation,
homework, quizzes, etc |
10% |
|
Total |
100% |
|
Make-up Test and Late Assignment Policy:
Assignments are
considered due by the end of class on their due date, and any turned in after
that time will be considered late. If an assignment is late, it will be charged
a 50% penalty for up to one week late.
Any assignment more than one week late will not be accepted. All assignments must be turned in by the last
day of classes for them to count toward the course grade. You should plan to be present for all the
tests and the final exam. Any makeups
will be allowed only for legitimate, school-approved excuses, and should be
arranged with the instructor as soon as possible after you discover you can’t
attend the exam (before the exam is given whenever possible). In any case, all work must be completed by
the last class, including any makeup exams.
Exams missed for unexcused absences, or exams not made up by the last
day of classes will be recorded as a zero grade.
Additional Resources:
Barnes & Noble has
a quick guide to C++ called C++ Programming: In Easy Steps that
might be of interest. The best part of
it is that it is under $10! It provides
a quick summary of the language, using a paragraph instead of a chapter section
to explain the rules for creating legal variable names, for instance. Given the price, it is worth checking
out. Another interesting book which our
library has is Expert C Programming: Deep C Secrets, by Peter van der
Linden. This is a great second book on
programming, which explains some of the intricacies of C and C++ that tend to
get glossed over or described incorrectly in an introductory text.
There are many other
interesting and useful resources available to aid the beginning C++
programmer. If you would like other
specific recommendations, don’t hesitate to ask.
Additional Unique Aspects
of the Course:
This course is very
hands on. Students learn programming by
doing it, and the course grading system reflects this emphasis.
Emergency Evacuation:
The Evacuation Assembly
Area for this course is in the quad, 50 feet from the building. In case a prolonged building evacuation is
required, you will be directed to the building Evacuation Site. The Evacuation Site for this class is the
Fine Arts Theater. In any case, if a
building evacuation occurs, stay together as a class so that we can determine
that everyone has made it safely from the building. Evacuation is to occur any time the fire
alarm sounds, an evacuation announcement is made, or a university official
orders you to evacuate the building. After the building has been evacuated, it is
not to be re-entered until University Police gives permission. For more information on emergency procedures
in general, see http://www.oneonta.edu/security/.