Math 253
(Introduction to Computer Science II)
Tentative Syllabus Spring 1997
Prerequisites: Math 251 or permission of the instructor. This course is, for some of you, a continuation of the course Math 251, Introduction to Computer Science. If you did not take Math 251, you should check with your instructor to see which course you should be taking. Please do this as soon as possible!
Text: Pascal and Beyond...Data Abstraction and Data Structures Using Turbo Pascal, by Steve Fisher and Stuart Reges.
Course content. This course is a continuation of Math 251 and was designed to be a bridge between that course and the 300 level computer science courses, especially Data Structures. Some of you will already know a variant of Pascal. One thing that we will do early on is to learn a dialect called Turbo Pascal, which is quite compatible with what you already know up to this point. After a review of what you have already studied, we will begin to introduce some new data structures. We will examine most of the topics in Sections 1-7 of the text.
Modus Operandi. You will notice as we progress through the text that it is written to be read. For this reason, the first version of an algorithm that is presented is usually just that - a first approximation. You should scrupulously read the sections assigned before the class in which we discuss the topics in order to be able to see the full development of those topics.
Programming. We will meet almost every day in the computer lab in Palenske Hall, where we can use the network's Turbo Pascal. This means that you will have hands-on access to the microcomputers there every day. I also plan to use the college's Alpha, which uses a nearly standard Pascal, so that you can see the similarities and differences with Turbo. Much of your homework will be in the form of computer projects, some of which may be group efforts, others not. We will stress good programming practices, such as top-down design and data abstraction. None of the good habits you learned in Math 251 will be wasted or should be abandoned! This goes especially for documentation, choosing meaningful variable names, etc. Good documentation and program logic will earn you a lot of points, and the reverse (whatever that is) is also true. I guess now is a good time to reinforce what you already know about GETTING STARTED EARLY and working steadily (remember we are time-sharing the network and things tend to run extremely slowly the night before a project is due.) I will have very little sympathy for someone who does not have his/her project done by the due date who has not begun to work on it when it was assigned. Also note that I may deduct up to 10 percentage points per calendar day past due. End of the mean disclaimers. :-)
Office hours. I have posted and keep office hours which I hope will be convenient for most people. If you need to see me at another time, please make an appointment for another hour. I welcome your bright cheerful face to my office! Make sure that when you show up for your appointment, you have done some work on the problem that you are having, and know what the question is. I am available almost all the time when not in class by e-mail: mokennon.
How your grade is calculated. You will have three major tests, each worth approximately 20 points; a final examination worth 30 points. Your programming projects will total approximately 60 points. Besides the above, you may have several other homework assignments to total up to 20 points. Attendance will be noted daily. No more than three unexcused absences will be allowed. Extra credit projects will be suggested from time to time. Remember that according to the catalog, the grade of 4.0 is reserved for those who have shown interest beyond the ordinary assignments. (Extra credit can help your grade even if you are not shooting for the 4.0.) Your grade will be calculated by adding up all the points you have earned from the above (they do not add up to 100% unless I got very lucky) and dividing by the total number of possible points. A grade of 93% or better plus some extra initiative will get you a 4.0. Please note that I do NOT grade on a "curve", so you are only competing with yourself.
The final mark is calculated by multiplying each mark by its value, adding the products, and dividing by the sum of the values (a weighted average), then figuring in attendance and extra credit. I usually use a rough percentage-to-grade conversion like this:
Grade Percentage
4.0 93% or above, with
some extra credit
3.7 88-92%
3.3 84-86%
3.0 80-83%
2.7 78-79%
2.3 74-77%
2.0 70-73%
1.7 68-69%
1.3 64-67%
1.0 60-63%
Tentative Timetable:
Please note that part of the content of this course will be presented in the form of notes, in-class exercises, and projects, and will not correspond exactly to sections of the book. However, the following approximately describes how the course and the book dovetail.
Weeks 1- 4: Review of Pascal from Math 251(Arrays, Records, Looping Constructs); Abstraction and Units (Chapters 1 and 2)
Programming
Project #1
Test #1 : Monday, February 3 KEY:
page 1 page2
page
3
Weeks 3 - 6: Pointers (Chapter 4) and Recursion (Chapter 3)
Programming
Project #2
Weeks 7 - 9: Binary Trees (Chapter 5) and more practice on recursion
Test #2 Tuesday, March 3 OLD TEST #2
Weeks 10 - 12: Sorting and Searching; Analysis of Algorithms
(Chapter 6)
Test #3 Thursday, April 2
Weeks 13 - 14: Graphs (Chapter 7)
Week 15: Review
Final Exam Saturday, May 3, 11:30 am - 1:30 pm...
Note: Changes to this syllabus to allow for extra topics or more coverage of a topic will be announced in class and updated here.