Course Syllabus |
Homework Submission Guide |
Office Hours | Instructor | | | | | Corky Cartwright | TuTh | 1:30pm-2:30pm By appointment | Online via Zoom Online via Zoom | Teaching Assistants | Agnishom Andrew Obler Chunxiao Liao | TBA TBA TBA | TBA TBA TBA | Online via Zoom Online via Zoom Online via Zoom |
|
Textbooks | There is no required textbook. We will follow the pedagogic approach of "How to Design Programs" and extend it to other languages. We will also draw material from a variety of sources, including: - Felleisen, Findler, Flatt, Krishnamurthi. "How to Design Programs." MIT Press 2001.
- Robert Cartwright, "Elements of Object-Oriented Design"b, Unpublished notes.
- Harold Abelson, Gerald Jay Sussman, Julie Sussman, "The Structure and Interpretation of Computer Programs." MIT Press 1985.
- Odersky, Spoon, Venners. "Programming in Scala." Artima Press 2012.
- Chiusano and Bjarnason. "Functional Programming in Scala.” Manning Publications Co. August 2014.
- Coursera: Functional Programming Principles in Scala by Martin Odersky.
- edX: FP101x: Introduction to Functional Programming by Erik Meijer.
- Okasaki. "Purely Functional Data Structures.” Cambridge University Press. New York, NY. 1999.
- "Why is functional programming important?" by Corky Cartwright
|
Recommended Videos | |
Development Environment | - DrRacket is recommended for all Racket homework assignments in this course. The interface is "textually transparent" as we will show in class.
- DrJava is the supported IDE for Java in this course, but you are welcome to use any IDE such as IntellJ or Eclipse.
- We are still evaluating IDEs for Haskell.
|