Course Syllabus PDF
Class Meeting: MWF 1:00 - 1:50pm in the Old Main Lab
Office: Old Main 400 (Tower)
Office Phone: (814) 824-2233
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)
Fri: 9:00 - 9:45am (Old Main 400)
Text: Data Structures and Algorithms Using Python and C++ by David M. Reed and
Text: John Zelle
Math 146 - Programming I
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
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.
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.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.
2. 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.
3. 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.
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 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:20am 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.
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.
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.
Wednesday, March 1st
other individuals missing for school
activities must take the exam before the exam date.
The final exam will be cumulative and is scheduled for:
1:00pm – 3:00pm
Please note that
you are required to take the
Grades will be calculated as follows:
100 points – Average of 4 quizzes
120 points – Average of 5 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
Support of the Mercy Mission
- *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.
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.
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.