CSC324 Programming Languages

Fall 2019

Home
MarkUs
Piazza
Software
Course Notes
Homework
Midterm
Exam
Team
Bonus

Video Bonus (1%)

Many people in the programming languages research community strive to make their talks accessible to people who are new to the field. I chose a few such videos to give you a sense of what (some) people who work in this field are excited about.

If you decide to participate in this bonus assignment, you'll need to:

  • Watch one of the videos. (You're welcome to watch more than one, since these are all really interesting talks!)
  • Write a paragraph describing what video you watched, what it was about, and what your thoughts were.
  • Submit your writeup as a PDF file called "bonus.pdf" on Markus.

Video 1: On the Expressive Power of Programming Languages (2019)

Link: https://www.youtube.com/watch?v=43XaZEn2aLc

We discussed the Church-Turing thesis in the first lecture. But if all Turing-complete language have the same computational power, then how can we compare the expressiveness of different languages?

Video 2: Four Languages from Forty Years Ago (2018)

Link: https://www.youtube.com/watch?v=0fpDlAEQio4

This talk is a gentle introduction to the "big ideas" in programming languages, including logic programming, algebraic data types, and others.

Video 3: "I See What You Mean" (2015)

Link: https://www.youtube.com/watch?v=R2Aa4PivG0g

This talk is about the connection between logic programming and Structured Query Language, but continues the discussion by adding the notion of time.

Video 4: Barliman: trying the halting problem backwards, blindfolded (2016)

Link: https://www.youtube.com/watch?v=er_lLvkklsk&feature=youtu.be&t=95

This talk is about using a version of logic programming to automatically generate programs. (If are doing well in this course, and want to work on something like this, talk to me!)

Video 5: A Unified Approach to Solving Seven Programming Problems (2017)

Link: https://www.youtube.com/watch?v=o3AHnyEf7IE

This talk is similar in spirit to choice 3, and uses relational interpreters to solve a variety of problems.

Video 6: Functional Core Imperative Shell (2012)

Link: https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell

This video is a little old, but the ideas are still relevant even if the technology isn't. This talk is the most "industry focused" out of the list of talks.