Office Hours | Instructor | | | | | Corky Cartwright | TuTh | 3pm-4pm By appointment | DCH 3104 TBA | Teaching Assistants | Agnishom Chattopadhyay Clayton Ramsey Andrew Obler | TBA TBA TBA | TBA TBA TBA | TBA TBA TBA |
|
Textbooks | There is no required textbook. We will follow the pedagogic approach of "How to Design Programs, First Edition" and extend it to other languages. The Second Edition of this book is default at the website www.htdp.org but this page contains a link to the first edition (at URL: https://htdp.org/2003-09-26/) at the bottom of the page. We will draw material from a variety of sources, including: - Felleisen, Findler, Flatt, Krishnamurthi. "How to Design Programs, First Edition" MIT Press 2001.
- Robert Cartwright, "The Elements of Object-Oriented Design", 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.
- Cartwright, "Why is functional programming important?" by Corky CartwrightFunctional Programming Important?" (Advanced material)
|
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 Rust.
|