CS 334: Principles of Programming Languages

A programming language is a programmer’s principle interface with the computer. As such, the choice of an appropriate language can make a large difference in a programmer’s productivity. A major goal of this course is to present a comprehensive introduction to the principal features and overall design of both traditional and modern programming languages. You will examine language features both in isolation and in the context of more complete language descriptions.

Full Syllabus
Software

Class Details

      Instructor:   Stephen Freund
Office: TPL 302 (working remotely)
Conferences: Mondays and Tuesdays on the class Zoom link (only accessible on campus or through VPN)
Office Hours:     Tuesday 2:00 - 3:30 and TBD…
email:
TAs:     Catherine Yeh, David Lee, Karmen Liang, Kiersten Campbell


TA Hours

TA hours will be in Slack and Zoom. Zoom links can be found here (only accessible on campus or through VPN).


Calendar


Mon
Tues
Wed
Thurs
Fri
02/15
02/16
02/18
02/19
02/15
02/16
02/18
02/19
03/22
Reading Period
03/23
Reading Period
03/24
03/26
03/22
Reading Period
03/23
Reading Period
03/24
03/26
04/19
Sections, Week 7
04/20
C++
04/21
Health Days
04/22
Health Days
04/23
04/19
Sections, Week 7
04/20
C++
04/21
Health Days
04/22
Health Days
04/23
04/26
Sections, Week 8
04/27
C++
04/28
04/29
Multiple Inheritance and Java
04/30
04/26
Sections, Week 8
04/27
C++
04/28
04/29
Multiple Inheritance and Java
04/30
05/03
Sections, Week 9
05/04
Java and Scala
05/05
05/06
Concurrency
05/07
Health Days
05/03
Sections, Week 9
05/04
Java and Scala
05/05
05/06
Concurrency
05/07
Health Days
05/10
Sections, Week 10
05/11
Concurrency
05/12
05/13
Security
05/14
05/10
Sections, Week 10
05/11
Concurrency
05/12
05/13
Security
05/14
05/17
Sections, Week 11
05/18
Security & Wrap Up
05/19
05/20
TBD
05/21
05/17
Sections, Week 11
05/18
Security & Wrap Up
05/19
05/20
TBD
05/21