Math 146 - Programming I - Spring 2017

Department of Mathematics and Information Technology

Mercyhurst University

Course Syllabus


Course Handouts
Course Syllabus PDF
Syllabus Slides - In-class slide presentation from the first day of class

Class Information
Instructor: Prof. Stephanie Blanda
Class Meeting: Section 01 - MWF 10:00am - 10:50am/T 9:30am - 10:20am (Main Lab)
Class Meeting: Section 02 – MTWF 11:00am – 11:50am (Main Lab)
Old Main 400 (Tower)
Office Phone: (814)  824-2233
Office Hours:
    Mon: 2:00 - 3:00pm (Advanced Lab)
    Tue: 10:30 - 11:00am (Main Lab) and 1:30 - 3:30pm (Old Main 400)
    Wed: 9:00 - 9:45am (Old Main 400) and 2:00 - 3:00pm (Advanced Lab)
    Thurs: None
    Fri: 9:00 - 9:45am (Old Main 400)
Text: Python Programming: An Introduction to Computer Science (2nd Ed.) by J. Zelle

Course Description
An introduction to computer programming with an emphasis on the development of good programming habits and skills utilizing a modern object-oriented language (Python).  Topics will include programming basics such as loops, decisions, functions, lists, file I/O, objects, classes, and inheritance.  Satisfies the REACH core requirement in mathematics.

MATH Placement score of at least 46.


When we finish a section in the book, you should immediately begin working on the suggested homework problems.

This "homework" will not be collected – it is designed to give you practice with the material we cover in class.  Just as an athlete or musician must practice in order to improve, you as a programmer must go through the repetition of homework problems in order to learn.  Working through these problems will help you understand the details of programming with Python.

Make sure you keep up to date with the homework and ask questions if you are having trouble.  Do not ignore a problem that you are struggling with.  If you are having trouble with a topic, please come talk to me during office hours, ask questions in class, or seek help from a classmate.  I encourage you to get help sooner rather than later, as confusion and problems tend to escalate quickly.  Don't wait until after the exam/the end of the semester when nothing can be done.  You are expected to try to work on all problems on your own first – when coming to office hours be prepared to show me what you've already tried.

Programming Assignments
There will be a programming exercise due (almost) every week (see the schedule at the end of the syllabus for exact dates). These assignments will give you the opportunity to design, write, and debug your own programs from start to finish. All assignments will be posted online on our course webpage under the “Programming Assignments” link.

Each programming assignment is worth 30 points and is broken into two exercises:

1. Algorithm Pseudocode (5pts): Writing pseudocode for your algorithm is always the first step of the programming process. Before writing code on the computer you must first create a design on paper. The design should not be working Python code. Instead, it will be pseudocode – precise English that describes what the program does and gives an idea of the program's structure. This design will be collected at the beginning of class on the day it is due. Your algorithm design will be returned the next class period with feedback.

Python Code (25pts): Using your algorithm pseudocode as a guide you will write the actual Python code. The code must be submitted through Blackboard and is due by 11:59pm on the due date provided. If you submit your code at 12:01am it is considered late! There is a grace period on the due date for the code: Work submitted within 24 hours of the due date/time will receive a maximum of 20 out of 25; Work submitted within 48 hours of the due date/time will receive a maximum of 15 out of 25; Work received after 48 hours past the due date/time will not be accepted.

Advanced Problem (extra credit): Each programming assignment will include an “advanced” problem that is an extension of the programming assignment. These are not required but can be completed for a few extra credit points. The advanced problems are designed to be more challenging than the required assignment and are completely optional. If you already have programming experience or just want an extra challenge, these are great problems to try. Other than debugging help you may not ask questions about the advanced problems.
You are not permitted to work together on these assignments. All code should be your own – it's important that you understand the code you have submitted.

Asking about programming assignments:
  • * Due to the detailed nature of programming, it is best to ask questions during class or in office hours.

* If you must email a question, be sure to attach your Python (.py) file.

* If you have questions about why something isn't working the way you think it should, I'm happy to help. Please explain what you've tried and what you think is the problem, not simply “is this correct?”

* I will not be responding to emails after 8pm on the day a programming assignment is due.


Quizzes will be given according to the due date schedule. The quizzes will be short and largely based on the suggested homework.  Athletes or other individuals missing for school activities must take the quiz before the quiz date. You may not use calculators, notes, the computer, the textbook, or any other materials when taking quizzes.  You must make up any missed quiz within one week of the quiz date.  After one week, your score on the quiz will be a zero.

Quizzes are worth 25 points and you will be given 20-30 minutes at the start of class to complete the quiz.  If you are late to class you will not receive additional time to complete the quiz.  For example, if class starts at 11:00am and you arrive at 11:10am, you will still only have until 11:30am to complete the quiz.  If you expect to be late or need extended time for the quiz, please speak with me ahead of time so we can arrange for you to take the quiz before the quiz date.

Midterm Exams

We will have two in class exams on the dates given below. The exams will be written exams (i.e. paper-and-pencil exams) and will incorporate programming questions, conceptual questions, and problem solving. You may not use calculators, notes, the computer, the textbook, or any other materials when taking the exams.

Your lowest exam grade will be replaced by your final exam grade (if your final exam grade is the higher of the two). There are no make up exams. The grade for a missed exam will be replaced by your final exam grade. A second missed exam will receive a grade of 0, so please check your schedules carefully and ensure that you can attend all exams.

Exam Dates:

Wednesday, February 22nd

Wednesday, April 5th

Athletes or other individuals missing for school activities must take the exam before the exam date.

Final Exam
The final exam will be cumulative and is scheduled for:

10:30am – 12:30pm on Wednesday, May 10th for Section 01

10:30am – 12:30pm on Friday, May 12th for Section 02

Please note that you are required to take the final exam.

Final Grades
Grades will be calculated as follows:

100 points – Average of 4 quizzes
120 points – Average of 4 programming assignments
200 points – Average of 2 midterm exams (lowest replaced by final                              exam, if better)
200 points – Final Exam

Your letter grade will be determined according to the department grading scale:

Grades will be posted on Blackboard so you can keep track of your progress throughout the semester.

Other Course Information

          • *Attendance is not required, but regular attendance is necessary to keep up with the material. Let me know if you will be missing class for an extended period.
        • *I will return emails as thoroughly and promptly as possible. However, it is generally better to ask complicated questions during class or in office hours.

  • *If I receive  your email before 8pm I guarantee that you will get a reply that night.  For emails received after that time, you may not get a response until the next day.

        • *Check the course website frequently as important information, such as instructions for submitting programming assignments, will be posted online.

Support of the Mercy Mission
This course supports the mission of Mercyhurst University by creating students who are intellectually creative. Students will foster this creativity by: applying critical thinking and qualitative reasoning techniques to new disciplines; developing, analyzing, and debugging computer programs; and engaging in innovative problem solving strategies.

Learning Differences

In keeping with college policy, any student with a disability who needs academic accommodations must call the Learning Differences Program secretary at 824-3017 to arrange a confidential appointment with the director of the Learning Differences Program during the first week of classes.