CIS 254     Computer Programming II
Course Syllabus

Instructor:                    Dr. Roman Erenshteyn
Office:                           CIS Faculty Suite, Fulmer Center's ground floor
Phone:                          (302) 225-6315
E-mail:                          roman@gbc.edu
Homepage:                   http://goldey.gbc.edu/~roman/
Office Hours:                as posted & by appointment
Tutorial Hours:            by appointment

Course Description

This course expands students' knowledge and develops their programming skills in C/C++ in
relation with business and other applications. The course is the second computer-programming
course in a sequence and creates an understanding of object-oriented programming.  Students
will be introduced to main C++ concepts, including classes, constructors and destructors,
pointers, inheritance, polymorphism, function templates and standard template library. Students
also will be introduced to elementary data structures, such as, lists and algorithms on lists.

In order to complete this course successfully, students should be prepared to spend a
minimum
of five hours per week in the computer lab in addition to regular class attendance
and active
in-class participation. Remember, nobody learned how to program just from lectures!

Prerequisite

CIS 253 – Programming Logic and Design with grade not less than C-.

Textbook

Required Texts                   Joyce Farrell, Object-Oriented Programming Using C++,
                                                 Third Edition, Thomson – Course Technology, 2007

Microsoft Visual Studio 2005 or Microsoft Visual C++ 2005 Express Edition are recommended for
this course. They are installed in Computer Lab. Express Edition can be also downloaded for free
from Microsoft website. 

Materials

Media:                                    Flash Drive, CD-R, CD-RW
 
All home works will be posted on BlackBoard's Assignment Section and should be submitted
using this section

Topics Covered

The following is a list of tentative subjects for this course in no particular order, which may be
changed without notice at any time at the instructor's sole discretion.  Students should reference
the lecture outlines on the course web page for weekly lecture outlines, and reading and other
assignments.
 
Object-Oriented Programming
A. Encapsulation
B. Abstract Data Types
C. Client/Server Model
D. Inheritance and Polymorphism

Classes and Objects
A. Class Declarations.
B. Object Definitions
C. Class Scope
D. Class Methods
E. Constructors and Destructor
F. Class Libraries
G. Applications.

Manipulating Objects
A. Dynamic Memory Allocation
B. Concept of Pointers
C. Strings
D. Pointers to Objects
E. Pointers and Arrays.
F. Pointer Arithmetic
G. Call-by-Reference vs Call-by-Value
H. Applications.

Dynamic Memory and Dynamic Data Structures
A. Addressing Data in Dynamic Memory
B. Pointers to Data Structures
C. Linked Lists
D. Operations on Linked Lists
E. Applications

Concept of Inheritance and Polymorphism
A. Direct and Indirect Inheritance
B. Private and Protected Members
C. Constructors and Destructors Under Inheritance
D. Polymorphism
E. Abstract Base Classes
F. Applications.
G. Programming Exercises.

Introduction to Templates
A. Templates
B. Containers, Algorithms, and Iterators
C. Applications

Files
A. Input/Output Streams
B. Processing Files
C. Random Access Files
D. Applications.
E. Labs

Total Sessions:                40.00
Number of Credits:         4.0

Policies

Attendance

Attendance will be taken during each class.  Attendance for the duration of every class is essential
for having any chance of passing this course. Important information including, but not limited to,
the course schedule, assignments, tests, and many other items of importance will be covered and
discussed during class time, as needed.  Students are responsible for being informed of all relevant
course information that transpires during class time. Students missing any part of any class need to
make arrangements with a classmate for "catching up" on any missed material, notes, assignments,
handouts, etc. Almost all class assignments could be found in the BlackBoard’s course homepage.
It is students' responsibility regularly check course homepage. Remember, the homepage is
developed to avoid time and paper wasting.

Please, don't be late! Class doors are closed 5 min after class begins!
Turn your cell phones in the classroom or in the Lab during the class!


Late Assignments

Assignments are due when they are due and should be submitted electronically.
A 4% penalty will be applied for each day an assignment is late, including the first day and weekends.
 
Late assignments will be accepted for not more than 7 days after the due date unless special
arrangements were made.

Homeworks and project should be submitted only using BlackBoard's DropBox.
When submitting don't forget to press "Send" button in your DropBox, and then to attach a file,
browsing it on your computer. To keep all your files in your DropBox you should press “Add” button.


Attachments should be prepared in MS Word. Program listings and result’s screen snap shots should
be copied to MS Word document from MS C++ compiler.

Each assignment should be submitted as one MS Word file!
Hand-written homework will not be accepted.
 

No assignment will be accepted after the start of the last regular class of this course.

Note:  It is better to submit completed assignments a day or two late rather than an
            incomplete
assignment on the due date. Students will usually fair much
            better by submitting a
completed assignment, even if it is a day or two late.
            Don't wait for the assignment’s due date!


Make-up Tests

Make-up tests are rare and will be given only in cases of documented serious illness or other emergencies.

To be eligible for a make-up test, the student must provide an acceptable excuse prior to the
scheduled date and time of the test.
 

In the event a make-up test is granted, the student is responsible for taking the test before the start of the
next class.

If the instructor is not notified prior to the scheduled test time and still permit a make-up, unless a
satisfactory reason is given for the lack of notification, a
20% reduction of grade will be incurred.
If the next class is scheduled on a day the college is closed, the make-up test must be taken prior
to the closing of the college.

Academic Honesty

Helping a classmate is very honorable, but sharing solutions is strictly prohibited. All work is to be
done individually, unless explicitly stated otherwise.

Anyone caught cheating, copying solutions or electronic files, or performing any other activity
that may be construed as dishonest will be punished up to
dismissal from class with a failing
grade and report to the College Academic Honesty Committee.
 

No identical programs will be accepted, with exception of group projects. Remember, that the
programming style is very individual. Don't forget that when copying other students projects
and/or assignments you are copying their errors too.


Semester Grade

Homeworks, tests and grades.

Six homeworks will be worth 30% of the final grade, the project - 10%.
Five tests will be worth 60% of the final grade.

The percentage will not be rounded to the closest integer.
Up to five points could be added for active participation, perfect attendance.
No extra credits!
Up to eleven points could be deducted for failed tests (1 pt each) and/or bad attendance (more
than 5 missing classes (for day classes) or 3 missing classes (for evening classes) - 5 pts)!

A letter grade based on the total percentage achieved will be given in accordance with the College's
grading system.

No grade negotiation, please! Everybody deserves what she/he deserves!

Correction of Grades

If an error is made in grading any of your work or your final grade, I will be glad to make a correction.
However, the error must be called to my attention within two weeks of the return of the material in
question. In the case of final grades, the error must be called to my attention within two weeks of the
next regular semester.

Getting Help

If help is needed, students are advised to seek it immediately.  The ARC doesn't provide tutoring on
the course subject. The best way to reach the instructor is by e-mail at roman@gbc.edu Individual
assistance will be nearly available at nearly any time I am in my office. Office and tutorial hours are
set up to ensure that when you arrive, I'll be there.

Working Together

You are encouraged to partner with one or more other classmates. Should it be necessary for you
to miss class, a partner can take notes for you, grab extra copies of the assignment.
 
However, each student must prepare the homework by him/herself. Do not copy another's
homework, test, or project! As it was mentioned above cheating or plagiarism will not be
tolerated and, as the first warning, the score will be divided by the number of participants
or zeroed! As well as it will be reported to College Academic Honesty Committee

Computer Software

The following software will be in use this semester:   Microsoft Visual Studio 2005 or Microsoft Visual
C++ 2005 Express Edition, MS Word. This and other software is available in the Computer Lab.

Academic Honor Code

All courses taught at Goldey-Beacom College are governed by the GBC
Academic Honor Code .
Click on the link above to learn more.

Note: After reading this syllabus you have to sign the acceptance sheet that will be passed
          through at the end of the first class meeting.