CS 172 Computer Programming II - Syllabus

Term and Credits

Winter 2015-2016
3 Credits

Rooms and Times

Lecture
Section A Tuesday 11:00 am - 12:50 pm Randell 326 CRN: 25746
Labs
Section 62 Thursday 11:00 am - 12:50 pm Rush 006 CRN: 24179
Section 63 Thursday 1:00 pm - 2:50 pm Rush 006 CRN: 25745
Section 61 Thursday 4:00 pm - 5:50 pm Rush 006 CRN: 20461

Instructor

Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: University Crossings 138
Extention: 215-895-2347
Office Hours: Tuesday 4-5pm, Thursday 11am-1pm, 4-5pm, Wed: By Appointment

Teaching Assistant(s)

Avichal Chum
Electronic Mail Address: ac3394@drexel.edu
Office: Drexel CLC UC 152
Office Hours: Tuesday 4pm-6pm, Wednesday 4pm-6pm
Lab Sections: 61,62,63

Khevna Kirendra Khona
Electronic Mail Address: kkk42@drexel.edu
Office: Drexel CLC UC 152
Office Hours: Wednesday 2pm-4pm, Friday 2pm-4pm
Lab Sections: 61, 62

Shine Thomas
Electronic Mail Address: sat88@drexel.edu
Office: Drexel CLC UC 152
Office Hours: Thursday 10am-12pm, Friday 11am-2pm
Lab Sections: 63

Course Description

Object-oriented design, inheritance hierarchies, information hiding principles, recursion, quick sort, multidimensional arrays, classes, pointers, dynamic memory, good programming style, documentation, debugging, and testing.

Course Objective and Goals

This course is the second in a sequence of computer programming courses in C++ and is a required course for students majoring in computer science. It is also a required course for students pursuing a minor in computer science. The goal is for students completing this course to be able to write a working C++ program using classes, recursion, dynamic allocation, etc. on their own when presented with a problem description. The course further develops programming skills using C++ and introduces students to algorithmic problem solving and software design.

Audience and Purpose within Plan of Study

This is a computer science core course required by Computer Science major and minor students.

Prerequisites
Grade of C or better in CS 171 (Computer Programming I) or CS 132 (Computer Programming B)
NOTE: Students earning a "C-" or "D" in CS 171 are advised to re-take CS 171.

What Students Should Know Prior to this Course

Students should have a fundamental knowledge of structured and object-oriented programming. This includes variables, input and output, compiling, expressions, assignments, looping, conditionals, functional programming, and objects.

What Students will be able to do upon Successfully Completing this Course: Statement of Expected Learning

Students completing this course should be able to:

Textbook

Big C++, 2nd Edition
Cay Horstmann, Timothy A. Budd
Wiley Publishing Company, 2008
ISBN-13: 978-0470383285
Available from Amazon
Available at the Drexel Bookstore (http://drexel.bkstore.com/)
Also available as an E-Textbook for $47.60 at VitalSource

Grading and Policies

Final grades will be determined by your total points weighted according to this distribution. Grades may be curved but are generally computed via the formula below. It may be modified at the instructor's sole discretion, but letter grades will generally not be lower than those shown here.

Academic Honesty Policy

The CCI Academic Honesty policy is in effect for this course. Please see the policy at http://drexel.edu/cci/resources/current-students/undergraduate/policies/cs-academic-integrity/ .

Submitting Assignments

Pre-Labs
Pre-Labs must be submitted by 11:00AM the day of the lab. Labs not submitted by this deadline will receive a zero unless a special exception is given.

Labs
Labs should be completed in class. If a lab is not finished in class, it may be submitted until 11:59pm the sunday following the lab. Afte this deadline, labs may only be completed with the approval of the Professor/TA. You must attend lab to receive credit. If you do not attend lab, you will receive a zero unless approved by the Professor/TA.

Homeworks
Late Penalty of 15% per day after due date. Late submission may be accepted with no penalty but only under approval of the Professor based on special circumstances.

Topics

  1. Abstract Data Types
  2. Operator Overloading
  3. Vectors and Arrays
  4. Recursion and Iterators
  5. Sorting and Searching
  6. Memory Allocation and Pointers
  7. Inheritance

Computer/Software Help
iCommons: http://drexel.edu/cci/about/our-facilities/rush-building/iCommons/

University Policies
In addition to the course policies listed on this syllabus, course assignments or course website, the following University policies are in effect:

Tentative Course Schedule

Please see the appropriate assignment, lab, and/or project webpages for a tentative schedule of course deliverables.

WeekTopicReadingLabAssignment
1 Introduction to Abstract Data Types Chapter 5 Lab 1  
2 More About Classes Chapter 5 Lab 2 Assignment 1 Due 1/17/2016 11:59pm
3 Operator Overloading and Class Templates Chapter 14,16 Lab 3 Assignment 2 Due 1/24/2016 11:59pm
4 Vectors, Arrays and the Standard Template Library (STL) Chapter 6 Lab 4 Assignment 3 Due 1/31/2016 11:59pm
5 Introduction to Abstract Data Types
Midterm 1 Wed February 3, 2016 8-8:50AM CAT 61
Chapter 10 Lab 5  
6 Searching and Sorting Chapter 11 Lab 6 Assignment 4 Due 2/14/2016 11:59pm
7 Pointers and Dynamic Memory Allocation
Midterm 2 Wed February 17, 2016 8:00-8:50AM CAT 61
Chapter 7 Lab 7  
8 Advanced Pointer Usage Chapter 12 Lab 8 Assignment 4 Due 2/28/2016 11:59pm
9 Inheritance Chapter 8 Lab 9  
10 Review and Catch Up   Lab 10 Assignment 5 Due 3/13/2016 11:59pm
11 Final Exam
Location TBD


Software & Hardware Requirements:

Microsoft Visual Studio Professional 2012
Microsoft Corporation
http://www.microsoft.com/visualstudio/