MacMurray College

    Computer Science 205

    Advanced Programming

    Incomplete Course Syllabus


    Course Information
      Credit hours: 3
      Semester: Spring 2000
      Day & Time: Monday, Wednesday, Friday from 10:00 to 10:50 AM
      Room: Mac Hall 16
      Prerequisite: None
    Instructor Information
      Instructor: Kent Palmer
      Office: Mac Hall 15B
      Office Hour: Monday, Wednesday, Friday 3:15-4:15 PM
            Tuesday & Thursday from 10-11 AM
      Office Phone: (217) 479-7102
      Home Phone: (217) 245-7675
      E-mail: kpalmer@mac.edu

      Required Text

      Ford, William H. & William R. Topp. Introduction to Computing Using C++ and Object Technology. Upper Saddle River, NJ: Prentice Hall, 1999.

      Supplemental Texts

      Deitel, H. M. & P. J. Deitel. C How to Program. Second Edition. Upper Saddle River, NJ: Prentice Hall, 1994.

      Eckel, Bruce. Thinking in C++. Upper Saddle River, NJ: Prentice Hall, 1999.  Available Online at: http://www.BruceEckel.com/ThinkingInCPP2e.html

      Satir, Gregory and Doug Brown. C++: The Core Language. Cambridge: O'Reilly and Associates, Inc., 1995.

      Goals

      Catalog Description: An intensive programming course in C++. Topics covered: problem solving fundamentals; data types;  functions; selection and repetition structures; classes; objects etc.

      After completing this course a student should be able to write C programs using:
       

      • Classes
      • Encapsulation
      • Inheritance
      • Polymorphism
      • Virtual functions
      • Overloading
      • Recursion
      • Arrays
      • Structures and unions
      • Pointers
      • Linked list
      • File input and output
      • Loops
      Course Expectations

      General: Programming is an art form that can only be effectively learned by practice. This means that to become truly adept at C++ programming you will need to do more than just the assigned programs. In most of the chapters of the Ford and Topp text there are around 30 questions. There are another dozen or so exercises at the end of the chapters in Eckel's Thinking In C++ book.Students are encoraged to look at these problems and either solve them or think about how they could solve them.

      Attendance: Students are expected to attend each scheduled class session. If a student needs to miss a class they should notify the instructor in advance. Unexcused class absences will reduce the attendance and participation grade.

      Exams may only be made up in the case of an excused absence. Please notify the instructor in advance if you are unable to attend a scheduled exam session.

      Academic Honesty: Students are referred to the policy outlined in the student handbook (The Maggie).

      Lecture Schedule



       
       
      Day Satir & Brown Ford & Topp Topics covered
      January 28 Preface, 2   What is C++
      January 31 1 1 What is object-oriented programming?
      February 2 2 2-1, 2-2 I/O, integer objects
      February 4   2-3, 2-4 Character & real number objects
      February 7   2-5, 2-6, 2-7 String objects and C++ operators
      February 9 1, 6 3-1, 3-2, 3.3 Class descriptions
      February 11   3-4 UML
      February 14   3-5, 3-6, 3-7, 3-8 Class declarations
      February 16   3-9, 3-10 Free functions
      February 18   4-1, 4-2, 4-3 Logical expressions
      February 21   4-4, 4-5, 4-6 Boolean & loops
      February 23 Preface, 1, 2, 6 1, 2, 3, 4 Review
      February 25 Preface, 1, 2 1, 2, 3, 4 Exam
      February 28   5-1, 5-2 Implementing classes
      March 1 3 5-3, 5-4, 5-5, 5-6 Member functions
      March 3 4 5-7 Inline code, encapsulation
      March 6   6-1, 6-3, 6-3, 6-4, 6-5 Enumeration 
      March 8   6-2, 6-6, 6-7, 6-8, 6-10 Switch, For
      March 10 8 6-9, 6-12 File I/O
      March 13 10 7-1, 7-2, 7-3, 7-4, 7-5 Arrays of objects
      March 15   7-7, 7-8, 7-10 Searching and sorting
      March 17   7-11, 7-12 Strings
      March 20-24     Break
      March 27   8-1, 8-2 Object design principals
      March 29   8-3, 8-4 UML
      March 31   8-5, 8-6 Recursion
      April 3 3, 4 5, 6, 7, 8 Exam 2
      April 5 9 9-1, 9-2 Function Overloading
      April 7   9-3, 9-4, 9-5 Operator overloading
      April 10 11 9-6, 9-7, 9-8 Templates
      April 12   10-1, 10-2 Pointers
      April 14 7 10-3, 10-4, 10-5 Dynamic memory
      April 17   10-6, 10-7 Vectors and strings
      April 19   11-1, 11-2 Linked list
      April 21     Good Friday (No class)
      April 24     Easter Monday (No class)
      April 26   11-3 Building linked lists
      April 28   11-4 List class
      May 1 5 12-1, 12-2 Inheritance
      May 3   12-3 Ordered list
      May 5 12 12-4 Polymorphism
      May 8 13 12-5, 12-6 Virtual functions
      May 10 14, 15, 16   Final remarks on Object-oriented design
      May 17  1 through 16 1 through 12 Final exam at 8AM

       

      Grading Scale


      Grade Percentage
      A 87 – 100%
      B 75 – 86%
      C 63 – 74%
      D 50 – 62%
      F 0 – 49%

       

      Grade Distribution


      Component Percentage
      Exam 1 15 %
      Exam 2 15 %
      Final exam 25 %
      Quizzes 10 %
      Homework 30 %
      Attendance & participation 5 %

       

      Exam Schedule


      Week Exam Topics covered
      February 25 Exam 1 Booleans, logic, loops, objects, classes, 
      April 3 Exam 2 Functions, arrays, searching, strings, recursion
      May 17 (8 AM) Final Exam This exam will be comprehensive, but greater emphasis will be placed on material covered since the last exam.

      Quiz Schedule

      The top 8 of 11 quiz scores will be used to figure a student’s quiz grade.

      No quiz can be made up after 5 PM on Wednesday following the Friday the quiz was given. Quizzes can only be made up for excused absences. Make up quiz may vary from original quiz.
       
      Quiz Date
      February 4
      February 11
      February 18
      March 3
      March 10
      March 17
      March 31
      April 7
      April 14
      April 28
      May 5

       

      Homework Schedule

      Some adjustments to the homework schedule may occur during the semester.

      There will be a one day grace period on all assignments. Credit for assignments turned in late will be reduced by 2 % for each day past the grace period. Assignments will not be accepted more than 15 days late.

      You should always keep an electronic copy of any assignment you turn in. This is for two reasons: Your instructor could lose what you turn in and some later assignments are based on earlier assignments and you may need to start on these before your graded assignment is returned. Keep copies of graded assignments for later questions about your grade.
       
      Due Date Chapter Exercises in Ford & Topp
      February 7 1 21, 22, 34
      February 14 2 17, 24, 26, 39, 50, 53, 66
      February 21 3 16, 20, 23, 33, 37
      February 25 4 15, 19, 24, 27, 35, 45, 59, 60
      March 8 5 13, 18, 25, 34
      March 15 6 16, 23, 24, 30, 52, 59, 61, 72
      March 29 7 27, 28, 40, 41, 49, 66, 73
      April 3 8 15, 20, 34, 35, 39
      April 14 9 17, 23, 24, 30
      April 28 10 21, 23, 30, 33
      May 3 11 16, 20, 28, 29, 33
      May 10 12 10, 12, 19, 22, 23, 26, 27

      Documentation for Programs

      (All programming assignments must include at least the following comment lines)

      // TASK: Identify what the entire program accomplishes
      //
      // CREATED BY: List author(s)
      //
      // CREATION DATE:
      //
      // MODIFICATIONS: List modifications and date
      //
      // PRECONDITION: List all requirements that must be satisfied
      // Before program can work. This would include
      // describing input parameters and acceptable values.
      //
      // POSTCONDITION: What actions are taken by the program.
      // The status of any output parameters
      //
      // ALGORITHM: Describe how program accomplishes the task

      #include <stdio.h>

      main()

      {

      }

      (If your program includes any function modules, each function needs to be documented )

      // PURPOSE: Identify what the function will accomplish
      //
      // CREATED BY: List author(s)
      //
      // CREATION DATE:
      //
      // MODIFICATIONS: List modifications and date
      //
      // PRECONDITION: List all requirements that must be satisfied
      // before the program can work. This would include
      // describing input parameters and acceptable values.
      //
      // POSTCONDITION: What actions are taken by the program.
      // The status of any output parameters
      //
      // RETURN: If the function returns a value, state its significance.
      // For instance: Function returns a 1 to indicate success and
      // a 0 to indicate that it did not find the desired value.
      //
      // ALGORITHM: Describe how the function accomplishes its task.
      {
      }

      MacMurray College Homepage

      Department of Computer Science Homepage


      Kent Palmer Homepage
      e-mail instructor
      Page last modified: January 8, 2000