handout #1
Computer
Science & Engineering 341
Programming
Languages
Instructor |
Stuart Reges |
|
reges@cs.washington.edu |
phone |
685-9138 |
office |
Paul G. Allen Center, room 552 |
office hours |
Tuesdays 1:30—3:30 pm |
Lecture and Section Times
Lecture MWF 12:30—1:20, EEB 045
Sections AA: Thursdays, 8:30—9:20, MGH 242
AB: Thursdays, 9:30—10:20, MGH 242
Textbooks
Elements of ML Programming, Ullman, required
Programming Ruby, Thomas, optional
Course Overview
The prerequisite for this course is CSE143 and we will assume that you come to the course with significant experience in either Java or C++. We will build on that experience by examining three languages that provide an interesting contrast to what you already know. The goal is to give you a much broader view of programming and to teach you the basic terminology that we use to distinguish different programming languages. For example, the following table shows the three languages we will study along with Java/C++ categorized by programming paradigm (object-oriented vs functional) and by the kind of type system it uses (static vs dynamic):
|
Object-oriented |
Functional |
Statically typed |
Java/C++ |
ML |
Dynamically typed |
Ruby |
Scheme |
We will spend approximately 5 weeks studying ML, then approximately 3 weeks studying Scheme, then approximately 2 weeks studying Ruby.
Course Web Page
Information about the course will be kept at http://www.cs.washington.edu/341. The web page will include links to useful resources, class handouts, lecture notes and a message board.
Grading
You will be expected to complete a variety of programming assignments for this course and to take two open-note, open-book exams. The resulting scores will be combined according to the following weightings:
40% weekly homework assignments
20% midterm (in class on Friday, 4/30/10)
40% final exam (on Thursday, 6/10/10, 8:30—10:20 am)
Using the weightings above, each student’s scores will be turned into an overall score ranging from 0 to 100 percent. These will be turned into grades as follows:
90% at least 3.5
80% at least 2.5
70% at least 1.5
60% at least 0.7
If you need to miss an exam, you must contact Stuart prior to the exam to get permission. Even if you are sick at home, you should be able to call your instructor’s office phone number to leave a message that you need to be contacted.
Unless otherwise noted, each homework assignment will be worth 100 points.
Late Policy
Each assignment will list its due date. Most will be due on Thursdays at 11 pm. Each student in the class will have a total of three “free” late days (a late day is 24 hours of lateness). There are no partial days, so assignments are either on time, 1 day late, 2 days late, etc. Because of this generous late policy, students will not be granted extensions for assignments unless they have some highly extenuating circumstances. You can use at most two late days for any single assignment. If you run out of late days or if you submit your solution more than two days late, you will receive no credit.
Policy on Collaboration
You are to complete programming assignments
individually. You may discuss the
assignment in general terms with other students including a discussion of how
to approach the problem, but the code you write must be your own. The intent is to allow you to get some help
when you are stuck, but this help should be limited and should never involve
details of how to code a solution. You must abide by the following: