Course Information
- Instructor: Dr. Aaron Garrett (garrettal@wofford.edu)
- Class Meeting (Olin 218): TR 9:30a-10:50a
- Office Hours (Olin 111A): MW 10:00a-12:00p; TR 1:00p-3:00p; or by appointment
- 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.).
- 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) | 35 |
Project | 15 |
Midterm Exam | 20 |
Final Exam | 30 |
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.
Generative AI Policy
Generative AI is NOT allowed in this course. This course is foundational, emphasizing the development of essential skills such as writing and understanding code, as well as enhancing analytical and critical thinking abilities. To achieve the learning outcomes, all assignments must be completed individually by the student. Generative AI is a powerful tool, but it should be used by individuals with a solid understanding of the domain it is applied to. This course is designed to build that foundational knowledge, ensuring you have the skills needed to effectively use such tools in your future career. Therefore, the use of generative AI for any part of your work in this course is strictly prohibited. Any AI-generated content submitted as part of your assignments will be treated as plagiarism and a violation of the honor code.
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 | |
---|---|---|---|---|
Aug | 28 | |||
Sep | 2 | ML | expressions, bindings | |
4 | ML | pairs, lists, let, options | ||
9 | ML | datatypes, patterns | ||
11 | ML | nested patterns, tail recursion | A1 | |
16 | ML | first-class functions, scope | ||
18 | ML | closures, currying | A2 | |
23 | ML | |||
25 | Racket | definitions, functions, lists | A3 | |
30 | Racket | delayed evaluation, streams | ||
Oct | 2 | Racket | datatypes, structs | |
7 | Racket | implement programming languages | ||
9 | Racket | A4 | ||
14 | Midterm Exam | |||
21 | Racket | static vs. dynamic typing | ||
23 | Racket | A5 | ||
28 | Java | object oriented programming | ||
30 | Java | references | ||
Nov | 4 | Java | polymorphism | Project |
6 | Java | interfaces | ||
11 | Java | A6 | ||
13 | SQL | relational databases | ||
18 | SQL | queries | ||
20 | SQL | |||
Dec | 2 | SQL | A7 | |
4 |
Note: This syllabus is subject to change with notice.