COSC 3410: Programming Languages

Spring 2020

Course Syllabus: Meetings
Office Hours
Textbooks
Outcomes
Policies
 • Attendance
 • ODS
Tentative Schedule*

Instructor

Patrick McGee
Email: patrick.j.mcgee@marquette.edu
Office Location: Cudahy 390

Lecture Time & Place

Lecture Section 701:
Mon/Wed/Fri 4:00pm-4:50pm, Cudahy Hall 143

Office Hours

Mon 5:00pm-6:00pm, Wed 5:00-7:00pm, or by appointment.
MSCS Department Logo

Textbooks

EOPL Textbook Cover
Essentials of Programming Languages.
Third Edition.
Daniel P. Friedman,
Mitchell Wand.
MIT Press.
TLS Textbook Cover
The Little Schemer.
Fourth Edition.
Daniel P. Friedman
and Matthias Felleisen.
MIT Press.
We will make our way quickly through all of The Little Schemer during the first two weeks. It is a quick read, and an excellent introduction to both functional programming style and the Scheme dialect for beginners.
Essentials of Programming Languages is a challenging book. I have chosen it because the interpreter project at the core of this book is first class (no pun intended,) and I know that together we can make our way through it. A graduate-level course would cover the entire text; we will cover chapter 1-4, 7, and 9. I will assign many of the problems contained in EOPL, and others may make excellent exam questions.

Course Outcomes

Upon completing this course, students will be able to:

Course Policies

Grades

Student grades will be assigned based on evaluation of homework, projects, exams, and participation, as described below:

Expected Performance Curve:

A 94-100
A- 90-93
B+ 87-89
B 83-86
B- 80-82
C+ 76-79
C 70-75
C- 67-69
D 60-66
F below 60

Grades will be routinely posted in the gradebook on the course D2L site, as they become available.

Exams

Two one-hour midterm exams are scheduled during the semester. The Final Exam will take place on Monday, May 4th, in Cudahy 143, from 3:30PM to 5:30PM.

Attendance

Student attendance will not be explicitly tracked in lecture. Students who routinely miss lectures should expect to be unprepared to complete the assignments and exams upon which grades so heavily depend.

If you know you will be missing class for a legitimate reason, in accordance with Marquette University Attendance Policies, I neither require nor accept documented excuses. Please have a peer in the class take notes in your absence, and get any assignments in ahead of the deadline.

The size and structure of this course will not normally allow acceptance of late work under any circumstances. There are enough opportunities for points in the course for most students to miss a few without severe consequences for their grades.

Academic Integrity

All students are expected to abide by Marquette University's Policy on Academic Integrity, and I will proceed under the assumption that everyone has committed themselves to the University's Honor Pledge:

I recognize the importance of personal integrity in all aspects of life and work. I commit myself to truthfulness, honor, and responsibility, by which I earn the respect of others. I support the development of good character, and commit myself to uphold the highest standards of academic integrity as an important aspect of personal integrity. My commitment obliges me to conduct myself according to the Marquette University Honor Code.

The Honor Code has particular implications for computer scientists and engineers, as well as computing professors, whose course work is so readily duplicated and shared in our modern digital world.

I will strive to ensure that your assignments and exams are engaging, challenging, and worth your investment in time and energy. For your part, I expect you will work hard, strive to learn, and present your work with honesty and integrity.

There will be many opportunities for you to collaborate with your peers in this course, and I strongly encourage you both to seek help when you are stuck, and to share your knowdledge with your peers when you have achieved understanding. Problems will only occur if you falsely claim work as your own when it is not, or collaborate when an assignment has been specified to be individual work.

In the unlikely event of an academic integrity violation in this course, Marquette University's Procedures For Incidents of Academic Dishonesty will be closely followed.

Students with Disabilities

Marquette University is committed to providing access and reasonable accommodation in its education for individuals with disabilities. To request disability accommodation in your class please contact the MU Office of Disability Services, Marquette Hall, Suite 05, 1217 W. Wisconsin Avenue, (414) 288-1645, ods@marquette.edu. I am more than happy to help accommodate.

Tentative Schedule

Week Date Topics Readings Notes Assignments
01 Jan 13 Scheme, grammars, inference TLS Ch 1-6, EoPL Ch 1   HW1: Intro To Scheme
02 Jan 20 Environments, ADTs TLS Ch 7-10, EoPL 2-2.4 NO CLASS 01/20: Martin Luther King, Jr. Day HW2: Environments
03 Jan 27 λ-Calculus, Parsing EoPL 2.5  
04 Feb 03 Interpreters, Binding EoPL 3-3.2   HW3: λ-Calculator
05 Feb 10 Parser Generators EoPL Appendix B   HW4: μLET
06 Feb 17 Closures, Recursion EoPL 3.3-3.4  
07 Feb 24 Scoping, S-Expressions EoPL 3.5-3.7   HW5:μλ
08 Mar 02 Side Effects, Statements EoPL 4-4.3   HW6:μREC
-- Mar 08 - Mar 15 -- -- NO CLASS: Spring Break --
09 Mar 16 -- -- NO CLASS: COVID-19 --
10 Mar 23 Parameter Passing, Type Systems EoPL 4.4-4.5, 7-7.3 Online classes begin HW7:μ;
11 Mar 30 Types, Classes EoPL 7, 9-9.4 HW8:μ✓
12 Apr 06 Inheritance EoPL 9.5-9.6 HW9: History of Computing
13 Apr 13 History of Programming Languages
Various
14 Apr 20 Other Languages Various  
15 Apr 27 Review   Withdraw deadline 05/01  
16 May 04 Final Exam    

As the instructor, I reserve the right to adjust this schedule as necessary.

Back to my homepage
[Revised 2020]