CPTR 246  Principles of Advanced Programming - Syllabus

January 9, 2012


Instructor:  Dr. Eileen M. Peluso, D325 Academic Center, (570) 321-4135


Email:  pelusoem@lycoming.edu


Office hours:  Posted at http://www.lycoming.edu/~pelusoem.


Goals and Objectives:  Utilizing the C++ programming language, students will learn principles of effective programming, with emphasis on object-oriented programming techniques.  Advanced programming topics will include formatting of output, parsing and verification of input, recursive functions, multidimensional arrays, pointers, dynamic memory allocation, data file manipulation, structures, classes, templates, inheritance, polymorphism, function and operator overloading, and linked data structures.  Students will also continue to develop their problem solving skills as well as their ability to locate, comprehend, and apply technical documentation. 


Finally, this course aims to enhance the students’ computational thinking skills defined as the combination of abstract, algorithmic, and critical thinking skills and to prepare students for further work in the scientific traditions that require the application of computational fundamentals in problem-solving, all in support of the Lycoming College mission (see full statement on the college web site at http://www.lycoming.edu/aboutLycoming/mission.aspx).


Text: Deitel and Deitel, C++: How To Program, 8th edition, Prentice Hall, 2012


Class Material: Additional materials for the course will be made available on Moodle.



·         Programming Assignments: 30%

·         Laboratory exercises: 20%

·         Problets: 5%

·         Exams(3): 45%  (Tentatively scheduled for February 8th, March 7th and April 13th)

·         Final: 15%


Grade scale: If you earn the following average, you will receive at least the grade indicated.

·         93.0 or above       A

·         90.0 to 92.99        A-

·         87.0 to 89.99        B+

·         83.0 to 86.99        B

·         80.0 to 82.99        B-

·         77.0 to 79.99        C+

·         73.0 to 76.99        C

·         70.0 to 72.99        C-

·         67.0 to 69.99        D+

·         63.0 to 66.99        D

·         60.0 to 62.99        D-

·         59.99 or below     F


Attendance Policy:

Students are expected to attend class and lab, and to be on time.  Students are allowed 3 unexcused absences.  Students who miss class are to email their instructor, stating the excuse.  Students with 4 or more unexcused absences will automatically fail the course.  Attendance signature sheets will be circulated at the beginning of each class period.  It is the student's responsibility to make sure that they have signed the day's attendance sheet.  It is also the student's responsibility to obtain details about any missed work, announcements, and any information disseminated during the missed classes.


Disability Statement:

Lycoming College provides academic support for students who have been diagnosed with learning, physical, and psychological disabilities.  If you have a diagnosed disability and seek academic accommodations, please contact Mr. Dan Hartsock, Sophomore Dean and Co-ordinator of Services for Students with Disabilities.  Mr. Hartsock will help you arrange for academic accommodations in the classroom.  You may contact him as follows:  hartsock@lycoming.edu; 570-321-4294; Snowden Library, 3rd floor, ARC.



1.       Students will not be excused from exams unless

·         they are ill and have been to the infirmary or have seen a doctor, or

·         they have an emergency situation and have received exemption from the dean. 

It is wise to contact me before missing an exam. Any tests missed will result in a grade of zero unless arrangements for a make-up are made within 48 hours.


2.       Unless otherwise announced, we will be going into Lab B201 every Thursday 3:00pm-5:50pm.  Lab assignments will be due by 5:00 PM the following Monday.  They will be returned the following Thursday, at which point any errors may be corrected for full credit (referred to as “the REDO option”).  The date by which the REDO is to be completed will be written on the lab handin.  When submitting the corrected lab, staple the new handin to the original handin. 


Late labs (those not submitted by 5:00 PM on the Monday following the lab) may be turned in prior to Thursday 3:00pm of the next lab.  Full credit will be given for correct late labs; partial credit for incorrect ones.


3.       As with other writing assignments, a certain amount of the grading of programming assignments will be subjective.  As a matter of principle, if you have a program that works according to the specification given in the assignment handout, that should earn you at least a C-range, but most likely a B-range grade.  The difference between a B and an A comes down to documentation, structure, following a certain style of programming, and in some cases how you answer questions associated with the assignment.  All of these aspects will be discussed as they come up in the course.


4.       Problets (freely available at http://problets.org/user/s12/lycoming/) are problem solving software assistants for learning, reinforcement and assessment of programming concepts. They are designed to help students learn programming concepts through small-scale problem-solving.  They were developed by Dr. Amruth Kumar in work partially funded by the National Science Foundation under grants DUE-0088864, CNS-0426021, and DUE-0817187.  Specific problets (with Friday due dates) will be assigned throughout the semester.


5.       Students are encouraged to work collaboratively on course work, including programming assignments and lab exercises. In fact, students taking computer science courses are given priority access to Lab A3 from the hours of 7-10 PM on Sunday through Thursday evenings. 


Discussions with other students about programming assignments are encouraged, however academic dishonesty is not allowed.  There is a fine line between the two.  Check with the instructor if you are not sure that what you are doing is acceptable. However, as a general rule of thumb: The difference between sharing ideas and plagiarism will be determined by the instructor as follows: if you cannot discuss, expound upon, justify, and modify what you have written, then you have plagiarized.


NOTE: You should never have in your possession or have access to (in paper or electronic form) a copy of someone else's solution to a programming assignment or lab exercise.


6.       Programming assignments can often take a lot of time.  Don’t plan on finishing a programming assignment in one sitting.  Instead, begin the programming assignment as soon as it is assigned and plan to finish it before the due date.  Then if problems arise, you can seek help from your instructor and/or the class tutor before the due date arrives.  Programs that are developed and refined over a few iterations end up with much cleaner structures and are easier to understand.


7.       Attached is a tentative reading schedule outlining those sections of the text that should be read PRIOR TO the class period for which they are listed.  Although you may not understand the material upon first reading, you will find class lectures and discussions to be much more valuable if you have seen the material at least once.