CSc 372 - Comparative Programming Languages
0 : Administrivia
Christian Collberg
Department of Computer Science
University of Arizona
Class |
|
: | |
372 -- Comparative Programming Languages |
|
Lecturer |
|
: | |
Christian Collberg |
|
Email |
|
: | |
collberg+372@gmail.com |
|
IM |
|
: | |
csc372 (AIM) |
|
WWW |
|
: | |
http://www.cs.arizona.edu/ collberg/Teaching/372/2005 |
|
Office |
|
: | |
Gould-Simpson 758 |
|
Office Hours |
|
: | |
Open door policy |
|
Phone |
|
: | |
621-6612 |
|
Lectures |
|
: | |
MWF 2:00-2:50, GLD-S 906 |
|
Honor's section |
|
: | |
M 4:00-4:50, GLD-S 805 |
|
TA |
|
: | |
TBA |
|
|
- Introduction to several major high-level programming
languages and their characteristics.
- This semester we will study three languages:
Haskell, Prolog, and Icon.
- At the end of the course you should
- be familiar with functional, logic, and string programming language paradigms;
- be competent programmers in Haskell, Prolog, and Icon.
- no longer be daunted by the prospect of having to
learn new languages and formalisms.
You are responsible for reading
and understanding this syllabus.
If you have any concerns or issues
about the information in this document
you should bring them up during the
first week of class.
Course Description
- Introduction to several major high-level programming languages and their
characteristics.
- Programming projects are required in at least three languages.
This semester we will study the languages: Haskell,
Prolog, and Icon.
The official course description is at
http://garnet.ccit.arizona.edu/schedule.cgi?CxSCz372z044zOpen
Depending on the interests of the students, we may
- Read and present research papers on programming languages.
- Learn and present programming languages not covered in class.
- Get involved with a research project.
gives the final exam schedule.
- The midterm exam is scheduled for Fri, Oct 14.
This may change, so pay attention in class and check the
web site.
- The final exam is scheduled for Wed, Dec 14, 2:00-4:00.
Check http://www.registrar.arizona.edu/schedule054/exams/054exams.htm for any changes.
- At the end of the course you should be familiar with functional,
logic, and string programming language paradigms;
- You should be competent programmers in Haskell, Prolog,
and Icon.
- You should no longer be daunted by the prospect of having to
learn new languages and formalisms.
- Clocksin-Mellish, Programming in Prolog [optional].
- Various web resources.
- Lecture notes.
- It is important in this class to allot significant time outside
of class to programming in the new languages we will study.
- You cannot pass this class by cramming before the final. You
must be a confident programmer in each language to pass the
tests and exam, and such skills can only be acquired by daily
hands-on practice.
- The languages we will study have free implementations.
If you own your own computer it's a good idea to download
and install the interpreters so that you can work at home.
- Just doing the programming assignments may not be enough
to become a good programmer in the new languages. You
should spend time outside class working programming exercises
on your own.
- Programming assignments.
- Working programming exercises on your own.
- Assignments will be mostly in the form of programming problems.
- You may work the assignments on any machine you want, but
before you hand them in you should test the code on
lectura! The TA will grade the assignments on lectura,
and if they don't work there, he won't debug them for you!
There can be subtle problems with code that's developed on
a Windows machine, for example, when it is run on a Unix
machine. For example, the two systems use different newline
characters.
- We will use the turnin program on lectura to hand
in assignments.
- Prerequisites: CSC 127B or CSC 227.
- You need to be a competent programmer in a
procedural/object-oriented language, such as Java or C.
Assessment Scheme
There will be
- one mid-term test worth a total of 10%;
- one comprehensive final exam, worth a total of 20%;
- five unannounced quizzes, where the
lowest score will be dropped, worth a total of 10%;
- two-to-four assignments on Haskell, worth a total of 20%;
- two-to-four assignments on Prolog, worth a total of 20%;
- two-to-four assignments on Icon, worth a total of 20%.
- Assignments handed in no more than 24 hours late will incur a 10% penalty.
- Assignments handed in more than 24 but no more than 48 hours late will incur a 20% penalty.
- Assignments handed more than 48 hours after the deadline will receive a grade of 0.
You cannot make up the midterm or final exam unless
- you have notified the instructor in writing (email is fine) or by phone
prior to the test that you will be absent, and
- you receive permission from the instructor to take the
test at a later date.
Pop quizzes will be given out at the beginning or end
of class and cannot, under any circumstance, be made up at a later date.
- All grades (for exams, quizzes, and assignments) will be curved up
by throwing away the highest grade in the class and scaling up such
that the second highest grade is 100.
- The curving is done to adjust for particularly difficult tests/assignments,
and to prevent an outlier from skewing the grade distribution.
- You cannot, after scaling, receive more than 100 on any exam, quiz,
or assignment.
- You will fail the class if you get less than 50 (after curving) on the
final exam.
- Otherwise, a curved total grade of [90,100] gives you an A, [80,89] a B,
[70,79] a C, [60,69] a D, and 59 and below an E.
- Except under exceptional circumstances I
will not assign incomplete grades.
- I decide what is an exceptional circumstance.
- To avoid any ambiguities, I have formalized the informal rules given above.
- The rules below should be considered minimum requirements to achieve
a particular grade. The instructor reserves the right to do additional
adjustments, as necessary.
- Any contradictions, omissions, errors, or ambiguities in the grading scheme
will be resolved by the instructor.
- Any issues or concerns regarding the grading scheme should be brought to the
attention of the instructor within the first week of class.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
you cut class at your own risk. x$ is a set of scores (for an assignment, a test, etc.)
and
is a student.
Note:
is set subtraction.
returns
's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
Anything covered in class or in any of the required readings
is fair game on tests and exams.
- To encourage class attendance and participation there will be
five unannounced pop quizzes during the semester.
- The honors section has mandatory attendance. We
will probably not meet every week, but when we do meet, you have
to be there.
- All holidays or special events observed by
organized religions will be honored for those students who show
affiliation with that particular religion. Absences pre-approved by the
UA Dean of Students (or Dean's designee) will be honored.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
class web site! x,s)$ returns 's score, curved up by
.
- For example, assume the following final exam scores:
After the curve has been applied, the scores will be
- final exam:
-
- Let be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
- midterm exam:
-
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
Anything covered in class or in any of the required readings
is fair game on tests and exams.
- To encourage class attendance and participation there will be
five unannounced pop quizzes during the semester.
- The honors section has mandatory attendance. We
will probably not meet every week, but when we do meet, you have
to be there.
- All holidays or special events observed by
organized religions will be honored for those students who show
affiliation with that particular religion. Absences pre-approved by the
UA Dean of Students (or Dean's designee) will be honored.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
You are responsible for checking this site regularly. f$ be the set of final exam scores.
- Let be the final exam score for student .
- Let be the weight of the final exam (20%).
-
is the curved final score for .
[midterm exam:]
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
Anything covered in class or in any of the required readings
is fair game on tests and exams.
- To encourage class attendance and participation there will be
five unannounced pop quizzes during the semester.
- The honors section has mandatory attendance. We
will probably not meet every week, but when we do meet, you have
to be there.
- All holidays or special events observed by
organized religions will be honored for those students who show
affiliation with that particular religion. Absences pre-approved by the
UA Dean of Students (or Dean's designee) will be honored.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm
the University of Arizona Code of Academic Integrity.
I take academic integrity seriously! I will report every violation! f^s$ be the final exam score for student .
Let be the weight of the final exam (20%).
is the curved final score for .
[midterm exam:]
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
0.6
- Please come and see me to chat, ask questions, or snack:
0.6
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
Anything covered in class or in any of the required readings
is fair game on tests and exams.
- To encourage class attendance and participation there will be
five unannounced pop quizzes during the semester.
- The honors section has mandatory attendance. We
will probably not meet every week, but when we do meet, you have
to be there.
- All holidays or special events observed by
organized religions will be honored for those students who show
affiliation with that particular religion. Absences pre-approved by the
UA Dean of Students (or Dean's designee) will be honored.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm
the University of Arizona Code of Academic Integrity.
- Be courteous and treat others in the class with respect.
- Please be courteous to other students by refraining from
talking, playing loud music in your headphones,
silencing cell phones, pagers, etc.
- We come to class to learn: don't read the newspaper,
solve cross-word puzzles, etc.
Let's Have Fun!!! t^s_f=curve(f,s)W^f$ is the curved final score for
.
[midterm exam:]
- Let be the set of midterm exam scores.
- Let be the midterm exam score for student .
- Let be the weight of the midterm exam (10%).
-
is the curved midterm score for .
-
is the total curved
assignment score for student .
- If, for whatever reason, the actual number of assignments
is less than the planned number, the 's will be
scaled up uniformly.
- The raw total score for student is
- We do a final curving of the total and round up to the nearest
integer:
- The final grade assignment for student is
- In other words, a student with a curved final exam score will fail
the class, regardless of their results on the other assessment
categories.
Policies
- I use an open door policy:
- Please come and see me to chat, ask questions, or snack:
- My goal is to keep class attendance high so that we can
get good discussions going in the class.
- You are not required to attend lectures, but...
Anything covered in class or in any of the required readings
is fair game on tests and exams.
- To encourage class attendance and participation there will be
five unannounced pop quizzes during the semester.
- The honors section has mandatory attendance. We
will probably not meet every week, but when we do meet, you have
to be there.
- All holidays or special events observed by
organized religions will be honored for those students who show
affiliation with that particular religion. Absences pre-approved by the
UA Dean of Students (or Dean's designee) will be honored.
- The information contained in this course syllabus,
other than the grade and absence policies, may
be subject to change with reasonable advance notice, as deemed
appropriate by the instructor.
- The instructor reserves the right to
- add, drop, or change topics;
- change exam or homework dates, etc.
- Changes will be announced in class and on the
- You should also check the course news group
cs.course372 for announcements.
- There is no objectionable material in this class.
You will be completing your homework on the department's instructional
machine, Lectura. You will also have access to the department's lab in
Gould-Simpson 228. You can access Lectura over the network or by dialing
in. You will, therefore, need to set up an account on Lectura. To do so,
go to the seventh floor of Gould-Simpson during normal business hours
during the first few days of the semester and follow the instructions for
setting up an account. When you apply for your account, you will pick up
an application form. Fill out and return the form to Gould-Simpson 721 to
pick up a magnetic access card that will allow you 24-hour access to the
Gould-Simpson 228 lab.
Students with disabilities who require reasonable accommodations to
fully participate in course activities or meet course requirements
must register with the Disability Resource Center. If you qualify for
services through DRC, bring your letter of accommodations to me as
soon as possible. See http://www.salt.arizona.edu/.
- Assignments in this course require individual attention and effort
to be of any benefit. All work is expected to be that of each student
alone. You may not consult with others, except in ways specifically
authorized by the course instructor. You also may not plagiarize another
person's work or copy another person's code.
- Students are responsible for
understanding and complying with the University's Code of Academic
Integrity. A synopsis of the Code is attached; the full text is
available from the Office of the Dean of Students in Room 203 Old
Main. Among other provisions, the Code demands that the work you submit
is your own, and that graded papers and exams will not subsequently be
tampered with. Copying of another student's programs or data, or
writings is prohibited when they are part of a published class
assignment; it is immaterial whether the copying is by computer, xerox,
pen or other means. Witting collaboration in allowing such copying is
also a Code violation.
- Assignments in this course require individual attention and effort
- Violations of the Code will, at minimum, result in loss of credit
for a graded item. An egregious first violation or any second violation
will minimally result in failure of the entire course.
- See also http://studpubs.web.arizona.edu/policies/cacaint.htm the University of Arizona Code of Academic Integrity.
- Be courteous and treat others in the class with respect.
- Please be courteous to other students by refraining from
talking, playing loud music in your headphones,
silencing cell phones, pagers, etc.
- We come to class to learn: don't read the newspaper,
solve cross-word puzzles, etc.
Footnotes
- ... 1
- That's right -- learning new languages is fun!
Christian S. Collberg
2005-08-22