Graduate

Courses

Computer Science

B629 Topics in Programming Languages

Credits: 1-6

Prerequisite(s): CSCI-C 311 or B 521 and permission of instructor.

Special topics in programming languages. May be repeated 1 time for a maximum of 6 credit hours.

  • Course History

      Spring 2017


      Instructor: Chung-chieh Shan
      Topic: Research & Probablstc Progrmng
      Time: 11:15AM-12:30PM Tue, Thu
      Location: JHA107


      Instructor: Dan Friedman
      Instructor: David Christiansen
      Topic: Dependent Types
      Time: 4:00PM-5:15PM Tue, Thu
      Location: Student Building, Room 131

      Spring 2016


      Instructor: Amr Sabry
      Topic: Homotopy Type Theory
      Time: 2:30PM-3:45PM Tue, Thu
      Location: Informatics East, Room 130

      Fall 2015


      Instructor: Chung-chieh Shan
      Topic: Probabalistic Programming
      Time: 4:00PM-5:15PM Mon, Wed
      Location: HU217

      Spring 2015


      Instructor: Sam Tobin-Hochstadt
      Time: 11:15AM-12:30PM Tue, Thu
      Location: Informatics East, Room 150
      Course URL (syllabus link or course homepage)
      Supplementary Description: This course is a graduate seminar on metaprogramming---programs that manipulate other programs. Primarily, we will focus on reading papers, both historical and modern, that treat a broad range of metaprogramming topics, from C++ templates to Scheme macros to Scala DSLs. Students will be expected to present research papers to the class, write programs with a variety of languages and systems, and perhaps complete a semester project. This course requires permission from the instructor to enroll.

      Fall 2014


      Instructor: Ryan Newton
      Topic: Domain Spec Lang & Compilers
      Time: 2:30PM-3:45PM Tue, Thu
      Location: Lindley Hall, Room 035
      Course URL (syllabus link or course homepage)
      Course File (syllabus or course advertisement)
      Supplementary Description: This is a seminar course focused on parallelism (1) in functional languages and (2) in domain-specific languages (DSLs) based on functional abstractions. We review data-parallel DSLs that focus on stream processing on parallel container datatypes. We also survey the state of parallelism in general-purpose functional language implementations (Clojure, F#, Scala, Haskell, Manticore, etc).

      Spring 2014


      Instructor: Chung-chieh Shan
      Topic: Probabalistic Programming
      Time: 2:30PM-3:45PM Tue, Thu
      Location: Geology, Room 436
      Course URL (syllabus link or course homepage)

      Fall 2013


      Instructor: Amr Sabry
      Time: 2:30PM-3:45PM Mon, Wed
      Location: Lindley Hall, Room 008
      Course File (syllabus or course advertisement)

      Fall 2012


      Instructor: Amr Sabry
      Topic: Advanced Functional Programing
      Time: 9:30AM-10:45AM Tue, Thu
      Location: HDTBA


      Instructor: Ryan Newton
      Topic: Vectorized Code Generation for High-Level Data-Parallelism
      Time: 4:00PM-5:15PM Tue, Thu
      Location: Lindley Hall, Room 008
      Course File (syllabus or course advertisement)
      Supplementary Description: Covers techniques for generating low-level vectorized code for CPUs and GPUs from high-level data-parallel programs with map/reduce-style operators. The course will be half paper reading and half compiler writing. Assignments will walk each student through building a new code-generation backend for a high-level language that we will provide. (A choice of OpenCL or Cilk/ICC compilation targets is provided.) P423/523 is a prerequisite, or permission of the instructor.

      Fall 2011


      Instructor: Ryan Newton
      Topic: Domain-Specific Languages and Compilers: Performance meets Productivity
      Time: 4:00PM-5:15PM Tue, Thu
      Location: Lindley Hall, Room 008
      Course URL (syllabus link or course homepage)
      Supplementary Description: This course focuses on domain-specific models of computation that sidestep the trade-off between high-level and high-performance found in general purpose programming languages. Course readings will draw from the primary literature and span several domains, including stream processing, stencil computations, and graphics. Emphasis is placed on the relationship between language design and implementation opportunities. Hands-on labs will involve programming in and evaluating specialized languages.

      Spring 2011


      Instructor: Amr Sabry
      Topic: Reversible and Quantum Computing
      Time: 11:15AM-12:30PM Tue, Thu
      Location: Swain Hall East, Room 010
      Course URL (syllabus link or course homepage)