COSC 320 - Fall 2021

Course Information

  • Instructor: Dr. Aaron Garrett (garrettal@wofford.edu)
  • Class Meeting (Olin 218): TR 9:30a-10:50a
  • Office Hours (Olin 204E): MWF 2:00p-4:00p; TR 11:00a-12:00p
  • Textbook: None, but we will (for the most part) be following the outline of the University of Washington Programming Languages course. There you will find plenty of materials (notes, videos, etc.) for all of the languages/topics except Prolog. For Prolog, there is an online textbook titled Learn Prolog Now! that you will find useful.
  • Final Exam: See the Registrar’s page

Catalog Description

A comparative study of high-level programming languages, including study of the design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming.

Goals

  • Develop a basic knowledge of language design principles in order to compare languages
  • Understand the basic vocabulary of programming languages
  • Understand and appreciate the common programming language paradigms
  • Gain practice in learning new languages quickly
  • Gain practice working with different programming environments

The overall goal is not expertise with any particular language. Instead, it is to give you some proficiency with a set of disparate languages that so that you can more easily identify the common aspects of programming languages in general.

Grades

Your grade in the course will be based on a combination of assignments and exams.

Assignments
Assignments are short exercises that reinforce the core concepts.
Project
The project is a larger, more complex programming assignment.
Presentation
The presentation is a prepared oral presentation of an assigned programming language.
Artifact Points
Assignments (~7) 70
Project 15
Presentation 15
Total 100

The usual grading scale will be applied to the accumulated points: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.

Policies

Attendance

You are expected to attend class meetings and come to class prepared. Refer to the General Policy Regarding Attendance in the Wofford College Student Handbook. The policy makes you responsible for catching up on missed classes. If you must be absent for class, please email me in advance to let me know.

Make-up exams are not available. If you have a legitimate, excused absence during the midterm exam, then you must make it up during the final exam period.

Assignment Deadlines

Late assignments will not be accepted without a legitimate excuse. All assignments are expected to be submitted by the posted deadline.

Academic Integrity

The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. While I may specify some assignments as collaborative, work represented as your own must be your own. If you have any doubt about what is appropriate for a given assignment, you should contact me for clarification.

Accommodations

If you have a disability that requires assistance or accommodation, or if you have questions related to any accommodations for testing, note takers, readers, etc., please contact Dean Beth Wallace by telephone at (864) 597-4371 or in person by visiting the Hugh R. Black Infirmary. You must arrange accommodations during the first week of classes.

Tentative Schedule

Meeting Language Topics Deadline
Sep 2
7 ML expressions, bindings
9 ML pairs, lists, let, options
14 ML datatypes, patterns A1
16 ML nested patterns, tail recursion
21 ML first-class functions, scope A2
23 ML closures, currying
28 ML A3
30 Racket definitions, functions, lists
Oct 5 Racket delayed evaluation, streams
7 Racket datatypes, structs
12 Racket implement programming languages
14 Racket A4
19
26 Racket static vs. dynamic typing
28 Racket A5
Nov 2 Prolog facts, rules, queries
4 Prolog unification, proof search
9 Prolog recursion Project
11 Prolog lists
16 Prolog arithmetic
18 SQL A6
30 SQL
Dec 2 SQL
7 Presentations
9 Presentations A7

Note: This syllabus is subject to change with notice.