COS 250 – Spring 2004

 

George Markowsky

University of Maine

 

GOALS

 

1.   To teach you about the important basic concepts of computer science and to improve your ability to solve problems with the computer

 

2.   To teach you to think more clearly and abstractly.

 

3.   To help you understand formal logic and the axiomatic method.

 

4.   To introduce you to programming in a functional language.

 

5.   To give you some experience in programming in Logo.

 

6.   To give you some experience using Windows and writing programs in it.

 

PREREQUISITES

 

1.  A good understanding of very basic mathematics.

 

2.  A willingness to learn something new and to work.

 

GRADING

 

Your final average will be computed using the harmonic mean of your homework grade and your exam grade as described below. This method places equal emphasis on homework and exams. If you get a poor grade in either homework or exams it will seriously drag your average down.

 

There will be a midterm and a final in this course, together with regular homeworks.

1. I   will use +/- grading in the class.  The grades will be assigned   on the basis of your final class average based on the following ranges:

 

A

90 or above

C

70 to 72

A-

85 to 89

C-

65 to 69

B+

83 or 84

D+

63 or 64

B

80 to 82

D

60 to 62

B-

75 to 79

D-

55 to 59

C+

73 or 74

F

54 or below

2. To encourage improvement, I will replace earlier test scores by later test scores if they are better.  For example, if you get 50 on the midterm and 85 on the final, both scores will be counted as 85. Thus, a poor midterm grade will not hurt you as long as you improve.

 

3. The homework average is just the arithmetic average of the homework grades.

 

4. The exam average is computed as follows:

a. ExamAvg = AdjustedMidterm/ 3 + 2*Final/3

b. AdjustedMidterm = max(Midterm,Final).

c. FinalAvg = HarmonicMean(HwAvg,ExamAvg);

5.  All   numbers are rounded and the letter grades are assigned according to the scale mentioned in bullet 1 above.

                THE HARMONIC MEAN APPROACH TO GRADING

In this course, both the homework and exams are very important. The arithmetical mean that is often used to average course grades allows a good performance in one area to offset a poor performance in another. Since I want to emphasize good performance in both homework and exams, I will use the harmonic mean of your homework grade and your exam grade as your final average.

 

The harmonic mean is very sensitive to extremes in performance. In other words, if your homework and exam grades are close to one another, their harmonic mean is essentially the same as the usual arithmetic mean. If they are far apart, the harmonic mean is pulled sharply down toward the lower grade. Thus, students who copy their homework from others cannot use the good grades they obtain in this manner to offset their poor exam grades. The following table gives you sample values.

 

 

 

 

 

Exam Grade

 

 

 

 

 

 

 

 

 

 

40

45

50

55

60

65

70

75

80

85

90

95

100

 

40

40

42

44

46

48

50

51

52

53

54

55

56

57

 

45

42

45

47

50

51

53

55

56

58

59

60

61

62

 

50

44

47

50

52

55

57

58

60

62

63

64

66

67

HW Grade

55

46

50

52

55

57

60

62

63

65

67

68

70

71

 

60

48

51

55

57

60

62

65

67

69

70

72

74

75

 

65

50

53

57

60

62

65

67

70

72

74

75

77

79

 

70

51

55

58

62

65

67

70

72

75

77

79

81

82

 

80

53

58

62

65

69

72

75

77

80

82

85

87

89

 

85

54

59

63

67

70

74

77

80

82

85

87

90

92

 

90

55

60

64

68

72

75

79

82

85

87

90

92

95

 

95

56

61

66

70

74

77

81

84

87

90

92

95

97

 

100

57

62

67

71

75

79

82

86

89

92

95

97

100

 

The exact formula for the harmonic mean is

 

F = 2*E*H/(E+H)

 

Here E is the exam grade and H is the homework grade. Your final grade F will be computed by using this formula exactly and rounding off to the nearest whole number.

 

ADDITIONAL NOTES

 

 1.     The dates of the two PRELIMS are given on the schedule.

 

 2.     Prelims are based  on homeworks and lectures. Under  the  harmonic  mean homework can count a great deal and I urge you to take it seriously.

 

 3.     Prelims are long but not tricky, so you must know the material thoroughly!  You are expected to know the definitions of all important  concepts and will be asked to write them down on the exams.

 

 4.     All prelims and finals are closed book and in class. CALCULATORS MAY NOT BE USED ON ANY OF THE EXAMINATIONS!

 

 5.     All  prelims and finals are cumulative and cover all the material up  to the  time they are given so you must review material from the  beginning of the course when preparing for these exams.

 

 6.     Partial credit will be given on exam problems.

 

 7.     I want  people to work on the homework individually.  You can talk to each  other  and give help, but this help should not take  the  form  of  letting other people copy your work. It is important that you understand how to do all the problems on your own. Otherwise you cannot do well on the exams. The harmonic mean grading scheme requires a good performance on both the homework and exams in order to get a good grade.

 

 8.     The homework grading will be strict since the goal is to make you more careful. Errors are the source of much mischief, so it is important to reduce  them as much as possible. Even minor arithmetical mistakes will result in points being lost, so do your work carefully.

 

 9.     If a  problem asks you to write a program, a function or  a  procedure, always submit a printed listing and output, even if the problem does not explicitly  ask for these.  Handwritten code is not acceptable.  I also expect homeworks to be stapled together rather than paper clipped.  You will lose points if you fail to follow these rules.

 

10.    If your programs have bugs, I expect you to make a reasonable effort to find the bug on your own. I will be happy to help you find problems   in your programs, but you must come with evidence that you have  tried  to find the problem on your own and the program I see should have  evidence of your efforts to debug it.

 

11.    If you  run out of time and must turn in a program  that  doesn't  run, submit enough material to explain what you have done as well as a  listing.   Look up an error messages in the Help facility and try your best to solve the problem on your own.

 

12.    Be sure   that your listings include comments that explain   what   you  are doing if it is not completely obvious.  It is up to you to   explain what you are doing.

 

13.    If   you do not understand a problem get a clarification from me.    Do not waste a lot of time working on something that you don't understand.

 

14.    Expect a penalty for late homework unless you get permission to turn the homework in late. Homework turned in late without permission will lose points.  Once a homework has been graded and returned you will be unable to submit it unless you have prior permission from me.

 

15.    People caught cheating will suffer the full wrath of the instructor. Cheating includes such things as using crib notes on exams and copying other students' homework.  Cheating is bad for the class and bad for the individual.

 

TEXT

 

I will use Discrete Logo: Release 2.1. It should be available at the bookstore.  I have changed some of the material from earlier releases, which has completely changed  the  page numbering. If you want to avoid confusion, I suggest that you get a copy of the latest version of the book, although older versions have considerable overlap with this release.

 

OFFICE HOURS

 

Office

237 Neville Hall

Office Hours

TuTh  9:30-11:00 am and by appointment

Phone

581-3940

e-mail

markov on any CAPS or CS Dept. Network

If you plan to come for office hours it is best to make sure that no unplanned event is keeping me away.  You can check by either calling my number or the Computer Science Department (581-3941). If you have problems with this course and need help come in to see me immediately.  Don't fool around until the end of the semester and then try to learn all the material in a week.

 

CLASS MEETINGS

 

The   class will meet every Tuesday and Thursday from 11:00 am until 12:15 pm with the following exceptions: there will be no classes during Spring Break.

 

Tuesday, October 14 is FALL BREAK.

 

Thursday, November 27 is THANKSGIVING.

 

GRADER

 

Jeremy Logan  (e-mail: Jeremy_Logan@umit.maine.edu) will  be  the  teaching assistant/grader for this course. If you have any questions about how your homework was graded, please talk to him first, before you talk to me.

 

 

TUTORING

 

You  can  obtain help with COS 250 from several sources. First,  you  can  ask questions  in  class (this has been known to help). Second, you  can  come  to office  hours. Third, you can send me e-mail with questions. Fourth,  you  can make appointments with the teaching assistant for help. Fifth, you can ask for tutoring from the tutoring program.

 

DISABILITIES

 

If you have a legitimate disability that is interfering with your  performance in class, please speak to me about it.  I will try to accommodate you as  much as possible.

 


SYLLABUS

The following schedule subject to change. I will be traveling some this semester and will have some guest lecturers on some of the indicated dates. Details will be announced as they are determined.

 

 

Date

Event

 

Part I -- Recursion

 1/13

Introduction to the Course, Logo and Recursion

 1/15

Recursion

 1/20

Proof by the Principle of Recursion

 1/22

Proof by the Principle of Recursion (HW #1 Due)

 1/27

Numbers and Peano's Axioms

 1/29

Numbers and Peano's Axioms

 2/03

Impossible Problems (HW # 2 Due)

 2/05

Backus-Naur Form and Context Free Languages

 2/10

PRELIM 1

 2/12

Review of Prelim 1

 2/17

The History of Computing (HW #3 Due)

 2/19

Principles of Computation

 2/24

Principles of Computation

 

Part II -- Logic

 2/26

Propositional Logic (HW #4 Due)

 3/02

SPRING BREAK

 3/04

SPRING BREAK

 3/09

SPRING BREAK

 3/11

SPRING BREAK

 3/16

Computer Circuits

 3/18

Arguments and Satisfiability (HW #5 Due)

 3/23

Truth Trees

 3/25

Predicate Logic & Prolog

 3/30

Predicate Logic & Prolog (HW #6 Due)

 4/01

Predicate Truth Trees

 4/06

PRELIM 2

 4/08

Review of Prelim 2

 

Part III – Set Theory

 4/13

Finite Sets and Combinatorics

 4/15

Finite Sets and Combinatorics (HW #7 Due)

 4/20

Infinite Sets

 4/22

Relations and Database Theory

 4/27

Relations and Database Theory (HW #8 Due)

 4/29

Relations and Database Theory

 

The due dates for the homeworks are tentative and liable to change. The number of homeworks is also tentative. There will be a final in this course.   The time will be selected by the Registrar and announced in class.