CS 171 Computer Programming 1
CS 143 Computer Programming Fundamentals

Term and Credits

Winter 2018-2019
3 Credits

Basic Course Information

Rooms and Times

CS 171-A Time: Tuesday 02:00PM-3:50PM Instructor: Prof. Mark W. Boady Room: Curtis Hall 340
CS 171-B Time: Monday 01:00PM-2:50PM Instructor: Prof. Mark W. Boady Room: Disque Hall 108
CS 171-C Time: Monday 03:00PM-4:50PM Instructor: Prof. Mark W. Boady Room: Disque Hall 108
CS 171-D
CS 143-A
Time: Tuesday 12:00PM - 01:50PM Instructor: Prof. Adelaida A. Medlock Room: Curtis Hall 341
CS 171-E
CS 143-B
Time: Tuesday 02:00PM - 03:50PM Instructor: Prof. Adelaida A. Medlock Room: Curtis Hall 341
CS 171-F
CS 143-C
Time: Tuesday 10:00AM - 11:50AM Instructor: Prof. Adelaida A. Medlock Room: Curtis Hall 456

Labs: (Primary TA in italic grades lab submissions)

Wednesday Labs
CS 171-66 Time: Wednesday 09:00AM-10:50AM Instructor:
Yigit Alparsan
Chetan Parakh
Room: University Crossing 151
CS 171-67 Time: Wednesday 09:00AM-10:50AM Instructor:
Charlie Chiccarine
Patrick Brinich
Klimentina Krstevska
Room: University Crossing 153
CS 171-81
CS 143-61
Time: Wednesday 11:00AM-12:50AM Instructor:
Patrick Brinich
Minh Le
Room: University Crossing 149
CS 171-65 Time: Wednesday 01:00PM-02:50PM Instructor:
Alex Duff
Chetan Parakh
Yigit Alparsan
Room: University Crossing 151
CS 171-68 Time: Wednesday 01:00PM-2:50PM Instructor:
Klaus Nuredini
Minh Le
Kevin Li
Room: University Crossing 153
CS 171-80
CS 143-60
Time: Wednesday 01:00PM-02:50PM Instructor:
Saem Joen
Patrick Brinich
Room: University Crossing 149
CS 171-70 Time: Wednesday 03:00PM-04:50PM Instructor:
Uzair Vawda
Saem Jeon
Minh Le
Room: University Crossing 153
CS 171-71 Time: Wednesday 03:00PM-04:50PM Instructor:
Samyam Shrestha
Guruansh Singh
Alex Duff
Room: University Crossing 151
Thursday Labs
CS 171-82
CS 143-62
Time: Thursday 09:00AM-10:50AM Instructor:
Kevin Li
Enes Sezen
Room: University Crossing 149
CS 171-83
CS 143-63
Time: Thursday 11:00AM-12:50PM Instructor:
Enes Sezen
Minh Le
Alex Duff
Room: University Crossing 149
CS 171-84
CS 143-66
Time: Thursday 01:00PM-02:50PM Instructor:
Caitlyn Yergey
Patrick Brinich
Alex Duff
Room: University Crossing 149
Friday Labs
CS 171-60 Time: Friday 09:00AM-10:50AM Instructor:
Chetan Parakh
Yigit Alparsan
Room: University Crossing 151
CS 171-61 Time: Friday 09:00AM-10:50AM Instructor:
Klimentina Krstevska
Patrick Brinich
Kristopher Lopez
Room: University Crossing 153
CS 171-63 Time: Friday 01:00PM-02:50PM Instructor:
Klaus Nuredini
Patrick Brinich
Minh Le
Room: University Crossing 151
CS 171-69 Time: Friday 01:00PM-2:50PM Instructor:
Klimentina Krstevska
Kevin Li
Alex Duff
Room: University Crossing 153
CS 171-62 Time: Friday 03:00PM-04:50PM Instructor:
Enes Sezen
Chetan Parakh
Klaus Nuredini
Room: University Crossing 151
CS 171-64 Time: Friday 03:00PM-4:50PM Instructor:
Kristopher Lopez
Kevin Li
Alex Duff
Room: University Crossing 153


Mark W. Boady
Electronic Mail Address: mwb33@drexel.edu
Webpage: https://www.cs.drexel.edu/~mwb33/
Office: University Crossings 138
Extention: 215-895-2347
Office Hours: Tuesday 11:00AM-12:00PM, 4:00PM-5:00PM, Thursday 2:00PM-5:00PM, and by appointment

Prof. Adelaida Alban Medlock
Electronic Mail Address: aalban@drexel.edu
Webpage: http://www.cs.drexel.edu/~aalban/
Office: University Crossings 107
Extention: 215-895-2672
Office Hours: Tuesdays 4:00 - 5:30 PM, Wednesdays 2:00 - 3:30 PM; and by appointment

Teaching Assistant(s)

Office Hours and Contact Info Through the CLC: https://www.cs.drexel.edu/clc
Contact your TA through Slack for Course Related Questions

Course Description and Objectives

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 Goals

The goal of this course is for students completing it to be competent programmers, able to write working Python program on their own using appropriate constructs when presented with a problem description.

Course Objective

  1. Trace execution of a Python program containing assignment statements, strings, conditionals, file input/output, functions, and loops.
  2. Determine appropriate code constructs and design a Python program using them to satisfy problem description.
  3. Write appropriately styled Python code and documentation for programs using assignment statements, strings, conditionals, file input/output, functions, and loops.
  4. Detect and correct syntax errors in Python programs containing assignment statements, strings, conditionals, file input/output, functions, and loops.
  5. Detect and correct logic errors in Python 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 open to all student's interesting in Programming and Computer Science.

This course is the first in a two-term sequence of computer programming courses in Python (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 Python 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 is not required, but is definitely helpful.

Required Textbook and Software


Title: Programming in Python 3 with zyLabs
Edition: Drexel University CS 171 / CS 143 Boady-Medlock Winter 2019
Author: Bailey Miller
ISBN-13: 978-1-5418-5433-8
Buy: zyBooks.com
Copyright: 2014, 2015, 2016, 2018 Zyante Inc. (zyBooks.com)
Price: $77.00

In order to acquire the book you will need to follow these steps:

  1. Sign up at learn.zybooks.com
  2. Enter zyBook code DREXELCS143CS171Winter2019
  3. Click Subscribe

Software Requirements

The official language used for this course is Python 3.


Optional: Use May use these alternatives to program in Python 3

Additional Requirements:

All Drexel students are required to have individual access to a dedicated personal computer which meets minimum specifications, including: processor speed, memory and secondary storage requirements, and connectivity to campus network. Please see http://www.drexel.edu/irt/computers-software/buying-guide/ for further information.

This course is operating with the Drexel BlackBoard Learn (Learn) Course Management System, which allows electronic submission of assignments, quizzes, and lab exercises, along with online chat sessions and threaded discussion groups. You can access the Drexel Learn course website from the Drexel portal http://one.drexel.edu/. You can also access Drexel Learn from the following page https://learn.dcollege.net/

Grade Computation

Homework Assignments20%
Final Exam20%

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.

Grading Policies

Contacting TAs/Professors






Special Circumstances

If you have a documented reason why you cannot submit any work by the cut-off deadline, a special exception may be made. The Professor may also wave the late submission policy for documented special exceptions. Special Exceptions must be approved by the Professor.

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.

Additional Course Policies

Academic Honesty Policy

The university's Academic Honesty policy is in effect for this course. This policy is available in the Student's Handbook https://drexel.edu/studentlife/community_standards/code-of-conduct/. Please also read the following information from the Provost Office: https://drexel.edu/provost/policies/academic-integrity/

You must be the sole original author of all assignments and examination solutions in their entirety, unless the instructor explicitly instructs you otherwise in written directions on an assignment or exam. Except where specifically assigned, collaborative work is a violation of academic honesty in this course. You are not to examine, share, or use code/written solutions belonging to someone else, nor may you let anyone else examine or copy your code/written solutions.

Students found in violation of the Academic Honesty policy will receive no credit for the questionable assignment or exam, a half letter grade reduction on the final grade for the course (on the first occurrence), a whole letter grade reduction on each subsequent occurrence(s), and/or will possibly receive a failing grade for the course. In addition, a Drexel University Alleged Academic Misconduct Report will be filed for each occurrence of Academic Dishonesty.

If you are suspected of academic dishonesty, a note will be placed in the BB Learn course site and you will be required to communicate with the course instructor within 72 hours indicating your response to the suspected violation.

Students having difficulty fulfilling the requirements for an assignment without outside help are to seek assistance from a teaching assistant or instructor, not from another student or knowledgeable person.

It is your responsibility to avoid violating the university's policy. If you are unclear as to what the policy means in a particular situation, ask the instructor for clarification before you hand anything in.

See the examples below for clarification of this policy.


The following are acceptable: These are NOT acceptable:

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

Disability Statement

Students requesting accommodations due to a disability at Drexel University need to request a current Accommodations Verification Letter (AVL) in the ClockWork database before accommodations can be made. These requests are received by Disability Resources (DR), who then issues the AVL to the appropriate contacts. For additional information, visit the DR website at https://drexel.edu/oed/disabilityResources/students/, or contact DR for more information by phone at 215-895-1401, or by email at disability@drexel.edu

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.

The Official Language is Python 3.6. You must have Python 3.6 installed on your computer. It is available for free from https://www.python.org

No specific IDE is required. We strongly suggest Thonny for offline development.

Class Disruption Policies

According to the student handbook (Code of Conduct section), Disorderly Conduct is defined as behaviour that disturbs academic study:

Behavior that disturbs the peace, academic study, or sleep of others both on or off campus is prohibited. Examples of disorderly conduct as it pertains to class/research settings includes, but is not limited to the following:

Students are responsible to comply with a reasonable request from a professor, instructor, or other University official regarding appropriate behavior.

Students disrupting the lecture and/or lab will be asked to stop the disruptive behaivor. If they do not stop, the student will be asked to leave the classroom (and if they don't, public safety will be called to help), and a formal complaint will be filed with the Office of Student Conduct and Community Standards.

Cell Phones and other electronic devices

Classroom Policy

Use of cell phones and other electronic devices during class is disruptive to other students and the instructor. If you must bring your phone to class, make sure you turn the ringer off. If you need to take or make a call, quietly leave the room.

Students who bring laptops/tablets to class should turn the sound off. Start-up and shut-down music, dialogue and error alerts, instant messaging sounds, etc., are disruptive.

Exam Policy

Cell phones, tablets, laptops, smart-watches, and other devices can be used to communicate with people and access Internet sites. Thus using any of these items during an exam is in direct violation of the academic honesty policies of Drexel University. Any use of any electronic device during an exam is considered an act of cheating. Students are advised not to bring these items to exams to avoid misunderstandings. If you must bring any of these items with you to the exam, turn it off and keep it in your book bag. You may not make a call, receive a call, or otherwise keep any of these items "in plain sight."

Course Change Policy

The instructor may, at her/his discretion, change any part of the course during the term, including assignments, grade breakdowns, due dates, and schedule. Such changes will be communicated to students via the announcements tool in Blackboard Learn, as well as announcements during the lecture. Students are encouraged to regularly check BlackBoard Learn for such changes and other important course announcements.

Tentative Course Schedule

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

Schedule Subject to change at any time.

CS 171 Winter 2019 Schedule
Week Lecture Lab Assignments Due
1 (1/7/2019) Lecture 0: Syllabus Review
Lecture 1: Introduction to Python
Topics: ZyBooks 1.1-1.12
Lab 1 Week 1 Reading
Due Sunday 1/13/19 11:59PM
2 (1/14/2019) Lecture 2: Arithmetic
Topics: ZyBooks 1.13-1.19
Lab 2 Homework 1
Due Thursday 1/17/19 11:59PM
Week 2 Reading
Due Sunday 1/20/19 11:59PM
3 (1/21/2019) Lecture 3: Data Types
Topics: ZyBooks 3.1-3.8
Martin Luther King Day No Class Monday.
Monday Sections, Watch Recording of Tuesday Lecture.
Lab 3 Homework 2
Due Thursday 1/24/19 11:59PM
Quiz 1 (Covers ZyBooks 1.1-1.19)
Due Friday 1/25/19 11:59PM
Week 3 Reading
Due Sunday 1/27/19 11:59PM
4 (1/28/2019) Lecture 4: Branching
Topics: ZyBooks 5.1-5.14
Lab 4 Homework 3
Due Thursday 1/31/19 11:59PM
Week 4 Reading
Due Sunday 2/3/19 11:59PM
5 (2/4/2019) Lecture 5: Loops and Iteration
Topics: ZyBooks 7.1-7.26
Lab 5 Homework 4
Due Thursday 2/7/19 11:59PM
Quiz 2 (Covers ZyBooks 3.1-3.8, 5.2-5.14)
Due Friday 2/8/19 11:59PM
Week 5 Reading
Due Sunday 2/10/19 11:59PM
6 (2/11/2019) Lecture 6: Functions
Topics: ZyBooks 9.1-9.17
Lab 6 Midterm (Covers ZyBooks 1.1-1.19, 3.1-3.8, 5.2-5.14, 7.1-7.26 )
Due Friday 2/15/19 11:59PM
Week 6 Reading
Due Sunday 2/17/19 11:59PM
7 (2/18/2019) Lecture 7: Exceptions, Files, and Modules
Topics: ZyBooks 10.1-10.16
Lab 7 Homework 5
Due Thursday 2/21/19 11:59PM
Week 7 Reading
Due Sunday 2/24/19 11:59PM
8 (2/25/2019) Lecture 8: Recursion and Binary Search
Topics: ZyBooks 12.1-12.12
Lab 8 Homework 6
Due Thursday 2/28/19 11:59PM
Quiz 3 (Covers ZyBooks 9.1-9.17, 10.1-10.16)
Due Friday 3/1/19 11:59PM
Week 8 Reading
Due Sunday 3/3/19 11:59PM
9 (3/4/2019) Lecture 9: Sorting
Topics: ZyBooks 14.1-14.7
Lab 9 Homework 7
Due Thursday 3/7/19 11:59PM
Week 9 Reading
Due Sunday 3/10/19 11:59PM
10 (3/11/2019) Lecture 10: Classes
Topics: ZyBooks 16.1-16.8
Lab 10 Homework 8
Due Thursday 3/14/19 11:59PM
Quiz 4 (Covers ZyBooks 12.1-12.12, 14.1-14.7)
Due Friday 3/15/19 11:59PM
Extra Credit Reading 1 and 2
Due Sunday 3/17/19 11:59PM
11 (3/18/2019) Final Exam - Schedule TBD
Final Exam Covers all Material Weeks 1-10.