Image goes here
Syllabus
CptS 580 Section 1 (Section 3 in TC): Advanced Programming Languages - Spring 2015
Washington State University

Course Location

MW 16:15-17:30, EME B46/TWST 224

Course Web Pages

Information you need to successfully complete the course will be posted on the course web pages from time to time. This syllabus, a calendar of lectures and assignments, assignments themselves, lecture notes, handouts, audio from the lectures, etc. will all be found on the web pages: http://www.eecs.wsu.edu/~hauser/cs580.

Teacher Contact Info

Prof. Carl Hauser
Office: EME 53
Phone number: 5-6470
E-mail: hauser@eecs.wsu.edu
Office Hours: Tentatively: MW 1-2PM

Course Description

This course is for graduate 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.

Additional Reading

Extensive additional readings will be assigned 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. Senior undergraduates with excellent grades in CptS 355 may be admitted with permission of the instructor.

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. There will be two term projects: one implementation based and one research paper. Your particular project and paper will be decided in discussion with the instructor, but both will be of scale and depth worthy of the name "term project" in a graduate course. Collaboration on the project and paper are highly encouraged. You will also be expected to lead the discussion on one or two papers that we will be reading.

Grading: exams 30%, term paper 30%, term project 30%, homework, attendance, and in-class participation 10%. The grade scale will be 93-100 A, 90-93 A-, 87-90 B+, 83-87 B, 80-83 B-, 77-80 C+, 70-77 C, 67-70 C-, 60-67 D, below 60 F. I reserve the right to lower the grading points (increase your grade) if circumstances warrant.

I expect that you will put in a minimum of 2 hours outside work prior to every class period -- reading papers, working problems, formulating questions. Additional time should be budgeted to work on your term paper and project.

Late work policy

Due dates for assignments are firm unless an extension is negotiated ahead of time (i.e., if you don't turn it in on time and haven't discussed an extension with me previously you will not receive credit.)

Cheating Policy

You may NOT work together on Exams (whether in-class or take-home). Collaboration on homeworks and presentation discussions, term papers and projects 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 and Emergency Notification

Washington State University is committed to enhancing the safety of the students, faculty, staff, and visitors. It is highly recommended that you review the Campus Safety Plan and visit the Office of Emergency Management web site for a comprehensive listing of university policies, procedures, statistics, and information related to campus safety, emergency management, and the health and welfare of the campus community.

Topics

  • Functional programming basics
  • Basic types from a programmer's perspective
  • Modules
  • Programming language formalisms: syntax and semantics
  • Advanced type systems: connections with category theory
  • Programming language support for concurrency
  • Programming Language Ecosystems

Tentative Schedule

The schedule is on the course calendar page. The schedule is tentative: there is way more interesting material to cover than there is time to cover it. The papers we will be reading depend on a lot of knowledge that isn't part of most students' background, so an important part of this course is to provide that background, as needed, to make the content of chosen papers understandable.
(c) 2003 Curtis Dyreson, (c) 2004-2006 Carl H. Hauser           E-mail questions or comments to Prof. Carl Hauser