CS 171 Computer Programming 1 - Syllabus

Term and Credits

Fall 2016-2017
3 Credits

Room and Time

Lecture: Monday 12:00pm-1:50pm RANDEL 121

Labs:
Section 61: Thursday 5pm-6:50pm CURTIS 231 (Tiffany and Prateek)
Section 62: Wednesday 1pm-2:50pm CURTIS 231 (Joseph and Eshu)
Section 63: Wednesday 11am-12:50pm UCROSS 149 (Prateek and Joseph)
Section 64: Wednesday 3pm-4:50pm CURTIS 231 (Eshu and Prateek)

Instructor

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

Teaching Assistant(s)

Prateek Somawanshi ps637@drexel.edu

Joseph Urbano jau35@drexel.edu

Eshu Jain ej357@drexel.edu

Tiffany Wong tyw24@drexel.edu

Course Description

Fundamentals of structured and object-oriented programming in the language of instruction (e.g., C++). Topics include: variables, input and output, expressions, assignment statements, conditionals and branching, functions, parameter passing, and repetition.

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.

Prerequisites
None.

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.

Textbook

Big C++ (2nd Edition)
Robert Sedgewick, Kevin Wayne
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.

Pre-Labs

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.

Labs

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.)

Assignments

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.

Written Assignments must be submitted as PDFs. They may be typed or scanned, but only PDF files will be accepted.

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.

Any student having issues accessing the site should first visit http://www.cci.drexel.edu/msdnaareset to have account information and instructions for connecting sent again. If the above link is broken or says you do not have an account, contact ihelp@drexel.edu to create or reset your password manually.

Blackboard
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 (9/19/16) Anatomy of a C++ Program Chapters 1-2  
2 (9/26/16) Basic Element of C++ Chapter 2 Quiz 1 in Lab
3 (10/3/16) Conditional Flow Control Chapters 3.1-3.5 HW 1 Due 10/7/16 at 11:59PM
4 (10/10/16) No Lecture for Columbus Day Monday. Labs run normally. Quiz 2 in Lab
5 (10/17/16) Loops Chapters 3.6-3.11 HW 2 Due 10/21/16 at 11:59PM
6 (10/24/16) Introduction to Functions Chapter 4 Quiz 3 in Lab
7 (10/31/16) Advanced Function Use Chapters 4,10 HW 3 Due 11/4/16 at 11:59PM
8 (11/7/16) Advanced Mathematics in C++ Chapter 3 Quiz 4 in Lab
9 (11/14/16) Introduction to Object Oriented Programming Chapter 2 HW 4 Due 11/18/16 at 11:59PM
10 (11/21/16) More About Object Oriented Programming Chapter 9 No Labs - Thanksgiving
11 (11/28/16) Review for Final HW 5 Due 12/2/16 at 11:59PM
Quiz 5 in Lab
12 (12/5/16) Final Exam