CSCI 216-01 Fundamentals of Programming II Syllabus

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

Background email assignment due

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

Project #1 due

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

Project #2 due

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

EXAM #1

International Skeptics Day

National Dessert Day

World Egg Day

Oct 17-21

Wear Something Gaudy Day

Project #3 due

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

Project #4 due

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

Project #5 due

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

EXAM #2

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

Project #6 due

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/.