CSC 424: Programming Languages, Spring 2005
Overview
- Text:
- None, although readings will be assigned from the web.
- Course Description:
- (from the Catalog) The topics of this course include a history
of programming languages, virtual machines, representation of data
types, sequence control, data control, lexical vs. dynamic scoping,
sharing, type checking, parameter passing mechanisms, run-time
storage management, context-free grammars, language translation
systems, semantics and programming paradigms.
- Grading:
- The grade for this course will be based on the following:
- 30%: Programming projects (Likely 3 or 4) - working in pairs
OK
- 10%: Homework assignments and quizzes
- 20%: Midterm exam (Wednesday, March 9)
- 15%: Lead a class discussion on an article (prepare a summary
and discussion questions in advance) - working in pairs
encouraged
- 25%: Final project (in language of your choice) and paper
discussing impact of language design on your project, followed by
oral exam - individual work
- Policy Statements:
-
- You are expected to attend all class sessions. However, I
expect you to take your own education seriously, so I do not keep
formal attendance records. If you miss a class, you are responsible
for catching up with the material that was covered and any
announcements that were made.
- An important part of this course will be classroom dialogues on
language design issues, so it is essential that you come to class
each day prepared to discuss the assigned readings.
- Homework assignments and programming projects are due by the
start of class on the assigned date. Late submissions will be
accepted until the next class time at a penalty of half the grade.
Extensions will be considered only by prior
arrangement.
- Programming projects will be graded on style and efficiency as
well as correct operation. To develop as a programmer, you are
strongly encouraged to do more than the minimum assigned amount of
work; the best way to learn good style and common idioms is to read
and write lots of code.
- Cheating, plagiarism, submission of the work of others, etc.,
violates the DePauw policy on academic integrity and may result in
penalties ranging from a lowered grade to course failure or
expulsion. The policy and discussion of each student's obligations
and rights are in the Student Handbook.
- With respect to this course, no collaboration is permitted on
exams or quizzes. You may discuss homework problems and programming
assignments with anyone you want (in fact, you are encouraged to do
so), but you should not copy another student's work nor permit your
work to be copied. The key idea is that you should
understand all of the work you turn in, and you should be
able to replicate it on your own. If you do not feel that you can
replicate the work independently, then it is not fair (to yourself
or to others) to submit it as your own work. If at any time you are
uncertain what constitutes "appropriate" collaboration, it is your
responsibility to clarify it with me.
- During class time, the computer at your seat should be used for
note-taking, classroom interaction, and in-class exercises. You are
not permitted to read e-mail, browse the web, play games, etc.
while class is in session.
- Calendar:
-
Week |
Monday |
Wednesday |
Friday |
1 |
Jan. 31 |
Feb. 2 |
4 |
2 |
7 |
9 |
11 |
3 |
14 |
16 |
18 |
4 |
21 |
23 |
25: No Class |
5 |
28 |
Mar. 2 |
4 |
6 |
7 |
9: Midterm |
11 |
7 |
14 |
16 |
18 |
Spring Break |
8 |
28 |
30 |
Apr. 1 |
9 |
4 |
6 |
8 |
10 |
11 |
13 |
15 |
11 |
18 |
20 |
22 |
12 |
25 |
27 |
29 |
13 |
May 2 |
4 |
6 |
14 |
9 |
11 |
13: Study Day |
- Schedule of Topics:
- This schedule is only approximate and subject to change.
- Weeks 1-3: Java
- Weeks 4-5: Extensions to Java (Nice, Groovy)
- Week 6: Scripting languages (Python, Ruby)
- Week 7: Other Java relatives (JavaScript, AspectJ)
- Weeks 8-10: Haskell
- Weeks 11-12: Logic programming (Prolog, Curry)
- Week 13: Concurrency (Erlang)
- Week 14: Wrap-up
DePauw University, Computer Science
Department, Spring 2005
Maintained by Brian
Howard (bhoward@depauw.edu
).
Last updated