Semester.ly

Johns Hopkins University | EN.600.426

Principles of Programming Languages

3.0

credits

Average Course Rating

(4.35)

Functional, object-oriented, and other language features are studied independent of a particular programming language. Students become familiar with these features by implementing them. Most of the implementations are in the form of small language interpreters. Some type checkers and a small compiler will also be written. The total amount of code written will not be overly large, as the emphasis is on concepts. The ML programming language is the implementation language used. [Analysis] Requistes include 600.226. No Freshmen or Sophomores.

Spring 2013

(4.57)

Spring 2014

(4.29)

Spring 2015

(4.19)

Spring 2013

Professor: Scott Smith

(4.57)

The best aspects of this course included the encouragement toward students to col aborate with one another, and the fun and engaging assignments. One student felt that some sections of the course were not clearly defined. Another student felt that certain students were permitted to dominate class discussions. Suggestions included providing more examples and cal ing on students to voice their input as opposed to letting just anyone speak up. Prospective students should know they are expected to be very comfortable with functional programming by the end of the semester, and though it’s not necessary, previous knowledge of Haskell helps.

Spring 2014

Professor: Scott Smith

(4.29)

The best aspects of the class were the interesting material, the homework that clearly reinforced the lectures, and learning the ins and outs of programming languages. The workload and difficulty of some homework was the worst aspect of the course. Some suggestions for improving the course included 92 covering more homotopy-type theory, replacing oCaml with Haskell, and lecture slides rather than a whiteboard. Prospective students should have some background in programming, start homework early, and be able to work well in groups.

Spring 2015

Professor: Scott Smith

(4.19)

The best aspects of the course included the responsive, knowledgeable and passionate instructor as well as the interesting material. Students noted that the assignments were effective for learning the material. While comments on assignments were detailed and instructive, feedback was untimely and left students with little idea as to how they were performing. Students also found the late-days policy to be excessively harsh in terms of point deductions. Suggestions for improvement included providing feedback on assignments more promptly, and making homework assignments less time consuming. Prospective students should be prepared for conceptually difficult material with few resources available outside of the course textbook. Students may benefit from experience with functional programming.