CS 171 Computer Programming 1

CS 171 Computer Programming 1 - Syllabus

Term and Credits

Winter 2016-2017 (Jan 09, 2017-Mar 25, 2017)
3 Credits

Room and Time


Labs: (TA in Bold is Primary Grader for Lab Section)

Who Grades Your Stuff:


Mark Boady
Electronic Mail Address: mwb33@drexel.edu
Office: University Crossings 138
Extention: 215-895-2347
Office Hours: Mon. 4-5pm, Tues. 3-5pm, Wed. 4-5pm

Teaching Assistant(s)

Office Hours and Contact Info Through the CLC: https://www.cs.drexel.edu/clc

Course Description

Introduces fundamental concepts of computing including memory, instructions, function calls, and activation records. Covers fundamentals of structured computer programming in the language of instruction: variables, input and output, expressions, assignment statements, conditionals and branching, subprograms, parameter passing, repetition, arrays, top-down design, testing, and debugging.

Course Objective and Goals

  1. Trace execution of a C++ program containing assignment statements, strings, conditionals, file input/output, functions, and loops.
  2. Determine appropriate code constructs and design a C++ program using them to satisfy problem description.
  3. Write appropriately styled C++ code and documentation for programs using assignment statements, strings, conditionals, file input/output, functions, and loops.
  4. Detect and correct syntax errors in C++ programs containing assignment statements, strings, conditionals, file input/output, functions, and loops.
  5. Detect and correct logic errors in C++ programs containing assignment statements, strings, conditionals, functions, and loops.
  6. Communicate and solve problems effectively as a member of a team.

Audience and Purpose within Plan of Study

This course is the first in a two-term sequence of computer programming courses in C++ (CS 171-2) and is a required course for students majoring in computer science, mathematics, physics, information systems, and digital media. It is also a required course for students pursuing a minor in computer science. The goal is for students completing this sequence to be competent programmers, able to write working C++ program on their own using appropriate constructs when presented with a problem description.


While there are no formal prerequisites for the course, students are expected to be computer literate. Prior programming experience (such as that gained in CS164: Introduction to Computer Science, SE 101: Software Engineering I, CS 140: Multimedia Programming, CS 143: Computer Programming Fundamentals, or PHYS 160: Introduction to Scientific Computing) is not required, but is definitely helpful.


Big C++ (2nd Edition)
Cay Horstmann and Timothy Budd
ISBN-10: 0470383283
ISBN-13: 978-0470383285
E-Textbook from https://www.vitalsource.com Also available through the Drexel Bookstore
Also available from Amazon

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.


Prior to each lab there will be a pre-lab. This is intended to be done on your own and will be due prior to your lab. The purpose of this is to get you thinking about topics relevant to the lab prior to meeting with your group in lab. That way hopefully you have more to contribute and things can go (relatively) smoothly!

The pre-lab will be a written assignment that must be handed in on paper at the start of the lab.


Your lab grade is based upon your attendance in lab, participation in individual and group lab activities, and completion of assigned lab projects. Each lab period you will be given an assignment which must be started in class. During class time you may consult with other students or the TAs if you need help on the lab. Because labs involve group work experiences, you are expected to attend and participate as part of a group, and not work alone outside the lab.

If you cannot make a lab and notify the TA prior to lab you may make it up during his office hours. If you do not notify him/her prior and/or don't work on the lab during his/her office hours then you will receive zero credit for that lab. This must be done within one week of the original lab.

All lab assignments will be posted on Bb Learn. There you will find instructions for each lab, along with questions that you must answer. In lab, you will receive a paper lab grade sheet. The TA will sign off on parts of the lab as you complete them. This sheet will also include written questions the TAs will grade outside of lab.

If you cannot finish a lab, you may complete the lab at home (yes this is seemingly contradictory to a prior statement, but in the case that you spend the entire time working with your group in lab and cannot finish by the end, then you may finish at home).
To receive credit for the lab, you MUST meet with the TA to have your lab grade sheet updated. The TA will review your work and give you a new grade. This MUST be done within one week of the original lab date. (Before the start of the next lab.)


All assignments will be posted with a due date. No late material will be accepted. Even if it's less than a second overdue. Make sure to submit early. Your lowest assignment grade will be dropped since I realize that occasionally things happen.

All written material (non-code) must be prepared on a word processor, converted to pdf, and submitted electronically via Bb Learn.

Although labs are designed to be collaborative, pre-lab and assignments are meant to be done individually. If at any point you use part of someone else's solution in an assignment you MUST cite the source of the code. Copy from others (online or classmates) results in an automatic zero for the assignment and additional possible penalties (including course failure and/or escalation to the honor board).

Additional Policies

Plagiarism Detection System

To ensure that assignments are done independently, in addition to human observation, we will be running all assignments through a plagiarism detection system. This program uses compiler techniques which are invariant of syntax and style. It has a very high accuracy rate.

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

Assignments will be submitted to learning.drexel.edu by 11:59PM on the date they are due. Grades will be reported via learning.drexel.edu.

Assignments and exams will be returned on a regular basis to provide feedback to students.

Late Submissions will not be accepted without written proof (see special exceptions below). Dropping the lowest grade in each range allows you to miss an assignment if needed.

Special Circumstances: If you have a documented reason why you cannot submit a homework by the cut-off deadline, a special exception may be made. The Professor may also wave the late submission penalty for documented special exceptions.

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:

Software and Hardware Requirements

All Drexel students are required to have individual access to a dedicated computer which meets minimum specifications, including: processor speed, memory and secondary storage requirements, connectivity via high-speed or direct connection to campus network, and a CD/DVD drive.

Visual Studio
The official compiler used for this course is Microsoft Visual Studio Professional 2013. This compiler runs under the Windows operating system only. Students using other operating systems are responsible for ensuring that programs they write will compile and run properly with Visual C++. Drexel Students may obtain Microsoft Visual Studio Professional 2013 via the Dreamspark Suite from Microsoft Academic Alliance.

To obtain Visual Studio:

Drexel students with insufficient internet access to download such a large file may arrange to obtain a CD copy of the compiler through the Dreamspark / Microsoft Academic Alliance website. Do this as soon as possible, in order to allow sufficient time to complete assignments.

This course is operating with the Blackboard Course Management System (also referred to as Drexel Learn), which allows electronic submission of assignments, quizzes, and lab exercises, along with online chat sessions and threaded discussion groups. Instructions on usage of Drexel Learn will be given in the first assignment and lab exercise. You can access the Drexel Learn course website by visiting the Drexel Learn course website (http://learn.dcollege.net/) and logging in using your Drexel userid and password. Further help is available at the login page.

Tentative Course Schedule

Please see the appropriate assignment webpages for a detailed description of course deliverables.

Week Topic Reading Notes
1 (1/9/17) Anatomy of a C++ Program Chapters 1-2
2 (1/16/17) Basic Element of C++
(Monday Campus Closed)
Chapter 2 HW 1 Due 1/20/17 at 11:59PM
Quiz 1 in Lab
3 (1/23/17) Conditional Flow Control Chapters 3.1-3.5
4 (1/30/17) Loops Chapters 3.6-3.11 HW 2 Due 2/3/17 at 11:59PM
Quiz 2 in Lab
5 (2/6/17) Introduction to Functions Chapter 4
6 (2/13/17) Advanced Function Use Chapters 4,10 HW 3 Due 2/17/17 at 11:59PM
Quiz 3 in Lab
7 (2/20/17) Vectors Chapter 6.1-6.3
8 (2/27/17) Introduction to Object Oriented Programming Chapter 5.1-5.5 HW 4 Due 3/3/17 at 11:59PM
Quiz 4 in Lab
9 (3/6/17) More About Object Oriented Programming Chapter 9
10 (3/13/17) Libraries and Graphics Getting Started for your OS using SFML HW 5 Due 3/17/17 at 11:59PM
Quiz 5 in Lab
Extra Credit 1 & 2 Due 3/17/17 at 11:59PM
11 (3/20/17) Final Exam Wed. March 22, 2017 8:00AM Main Auditorium (In Main Building)
Final Review Session: Monday, March 20th 6:30-8:30pm CAT 61