Exercises for the week of Jan. 16
Attempt the first twenty problems from
http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems
CptS 580 Section 1, Advanced Programming Languages -- Spring 2012
Course Meeting Time and Location
The course meets MW 4:14-5:30PM in Murrow 55 (location will be changed if no
AMS students enroll).
Course Web Pages
http://www.eecs.wsu.edu/~hauser/cs580
Teacher Contact Info
Carl Hauser, EME-53, 335-6470, hauser@eecs.wsu.edu
Course Description
This course is for graduated students who want to gain familiarity
with advanced features of programming languages.
Textbooks
"Learn you a Haskell for Great Good", Miran Lipovaca, online at
http://learnyouahaskell.com/. You may want to
order a hardcopy or ebook version.
"Programming Language Pragmatics (3rd edition)", Michael L. Scott. Morgan Kauffman,
ISBN: 978-0-12-374514-9. You WILL need the CDROM that accompanies the book.
Additional Reading
Extensive additional readings will be assignmed from published papers.
Course Prerequisites
Graduate standing in Computer Science. An undergraduate course in programming
languages is a requirement for admission as a graduate student in Computer
Science so I will assume some breadth of understanding of programming lanuages:
some students may have some catching up to do.
Course Requirements
Attendance is expected at all lectures and attendance will be taken. A large part
of your learning in this class will depend on interacting with the instructor
and other students in class, as students will be presenting papers on
various topics throughout the semester.
Homework, Assignments, and Tests
There will be one mid-term exam and one final exam. Homework assignments
will be given to help you prepare for exams and provide a foundation for
in-class discussions. Each student will also be responsible for 2 paper
presentations and serving as discussant for 4 other papers (to be explained in class).
Late work policy
When work is assigned it will be as preparation for a particular
class session. If you are unprepared for class or do not participate
in class discussion you will be marked
down for that class.
Cheating Policy
You may NOT work together on Exams (whether in-class or take-home).
Collaboration on homeworks and presentation discussions is encouraged.
In any writing that you do you must avoid plagiarism (copying of other
people's work without citing it), and if you use outside resources (e.g. the web)
to solve problems you must cite your sources.
Depending on the severity of the case, consequences of academic dishonesty range from a failing grade on
the assignment involved to a failing grade in the class to recommendation that those
involved be dismissed from their graduate program.
Students with Disabilities
Reasonable accommodations are available for students with a documented disability.
If you have a disability and may need accommodations to fully participate in this
class, please visit the Access Center (Washington Building 217) to schedule an
appointment with an Access Advisor.
All accommodations MUST be approved through the Access Center.
Safety
Stress management
Students sometimes encounter stress and anxiety issues associated with
homework, tests, or life situations that can be an obstacle to success
in their courses. WSU Counseling Services (335-4511) offers
information including a test anxiety workshop conducted several times
each semester.
Visit
http://www.counsel.wsu.edu/self-help/test-anxiety.html
for more information.
Other Policies and Expectations
- I expect you to demonstrate critical thinking across the spectrum of
course work.
- I expect you to engage in active learning: speak up when you don't
understand, question assumptions, relate course material to your
experience outside class, seek out additional experience and reading
related to the class.
- I expect you to promptly review feedback you receive from me
or other students; to actively clarify the feedback if the material is
still unclear; and to incorporate the feedback in your future work.
- I expect you to spend adequate time on the course. Adequate time
includes getting enough rest
so that time you spend on course tasks is well-spent time. Adequate
time includes proofreading and reviewing your assignments before you hand
them in.
- I expect you to have high expectations of yourself: set goals for
yourself and try to do your very best. Consciously think about the
balance between what you do to earn a grade and what you do to learn.
(If I'm doing something that puts these in opposition to each other
please let me know.)
Topics
- Functional programming -
- Advanced type systems
- Iterators and co-routines
- Programming language support for concurrency
- Module systems
- Security: sand-boxed execution
Tentative Schedule
This schedule is tentative: this is a new class and we need
to figure out together how long it will take to convey and
learn this material.
- For 1/14: LYAH Chapters 1-4 (1&2 should be mostly review)
- 1/16: no class - holiday
- 1/18: no class - instructor out of town; we will make up
the class later, probably by holding the mid-term exam in the
evening.
- 1/23: LYAH Chapter 5&6
- 1/25: LYAH Chapter 7 and 8 (Just skim 7 for now; we will
return to it later)
- 1/30: LYAH Chapter 8 continued
- 2/1: LYAH Chapter 9 (Paper presentation)
- 2/6: LYAH Chapter 10, 11, and 12: Chapter 10 is for fun, the class session will be about 11 and 12.
- 2/8: LYAH: Ch 13 and 14
- 2/13: Paper: lazy functional programming
- 2/15: Paper: Haskell Hair shirt
- 2/20: PLP: Chapter 1
- 2/22-2/27: PLP Chapter 2
- 2/29-3/5: PLP Chapter 3
- 3/7-3/12: PLP Chapter 6
- 3/14-3/19: Spring Break
- 3/19-3/21: PLP Chapter 7
- 3/26-3/28: PLP Chapter 8
- 4/2-4/4: PLP Chapter 9
- 4/9-4/11: PLP Chapter 12
- 4/16: PLP Chapter 14.4 onward
- 4/18-4/23: PLP Chapter 15