This is the main website for the course. The slides, schedule, and links to assignments, labs, and projects, as well as the official course policies, will be posted here. The course also uses other websites for specific purposes.
- Piazza is a question-and-answer forum.
All official announcements will be sent through Piazza,
and you are responsible for monitoring Piazza to keep up to date with
announcements
(Piazza by default will send an email when an announcement is posted).
- Signup link: www.piazza.com/gvsu/fall2020/cis343.
- You can read the following Piazza FAQ if you are have questions.
- Zoom will be the video conferencing service for office
hours and synchronous course meetings.
- Course meetings (Section 1): https://us02web.zoom.us/j/89247728114?pwd=TzBRZENjaHhiaFZJRmc5NUJkVHhKZz09
- Course meetings (Section 2): https://us02web.zoom.us/j/87241162031?pwd=Y3hKSzZOSXNPQUg3R3MyVitwK2hQQT09
- Office hours: https://us02web.zoom.us/j/86265634339?pwd=S2NmYjRkUFRsR3Jpb1JoU0VEQ2JtUT09
- Prairielearn is where you will submit all of your assignments, labs, and projects.
Be sure to read through the syllabus for course policies, contact information, and other important info.
If you purchased the eText, the link to redeem the textbook is https://console.pearson.com/enrollment/0mbbvf
** Note: This is an estimated timeline and subject to change. **
| Week | Topics | Readings | Deliverables |
|---|---|---|---|
| 1 | Logistics (video) Overview (slides) (video) Language Evaluation (slides) (video 1) (video 2) Friday activity |
Chapter 1 | Friday 9/4 Syllabus quiz |
| 2 | Imperative Procedural Programming (with C) (c-intro) (c-libraries) (c-linking) (c-layout) (c-data-types) (c-mem-manage) (slides) Friday activity |
Check out pointer perils | |
| 3 | History and Architecture (video 1) (video 2) (video 3) (video 4) (slides) |
Chapter 2 | |
| 4 | Syntax (CFGs) (slides (for all 3 videos)) (Parse trees) Semantics (Semantics) Friday activity |
Chapter 3 | |
| 5 | Lexing and Flex (video) (slides) Friday activity |
4.1 - 4.2 | Thursday 10/1 C Project -- Reading Difficulty |
| 6 | Parsing (video) (slides) Bison (video) (slides) |
Thursday 10/8 Homework 1 | |
| 7 | Object-oriented Programming (ADT slides) (ADT video) (OOP slides) (OOP video) Friday activity |
Chapters 11 & 12 | |
| 8 | Object-oriented Programming (with Python) (video 1) (video 2) (video 3) (video 4) (slides) |
Midterm Exam Friday, October 23 | |
| 9 | Names, Bindings, and Scope (names) (addresses) (binding) (storage) (scope) (slides) Friday activity |
Chapter 5 | Monday, October 26 Language Creation Project |
| 10 | Expressions and Assignments (video 1) (video 2) (slides) Operator Overloading (C++ Examples) (video) (slides) Friday activity |
Chapter 7 | |
| 11 | Functional Programming (with Scheme) (Intro) (slides) (Scheme) (slides) (Recursion) (slides) (Lists and let) (slides) (Practice problems) Friday activity |
Chapter 15 | |
| 12 | Functional Tools (map) (fold/reduce) (filter) (zip) (slides) Lazy Evaluation (video) (slides) |
Monday, November 16 Project 3 Scheme implementation |
|
| Subprograms Intro (video) (slides) Thanksgiving break 11/25 - 11/29 |
Tuesday, November 24 Homework 2 | ||
| 14 | Subprograms (parameters) (closures) (slides) Friday activity |
Chapter 9 | |
| 15 | Logic Programming (introduction) (rules and queries) (arithmetic and lists) (slides) Friday activity |
Chapter 16 | Friday, December 11 Term Paper |
| 16 | Final Exam | Sunday, December 13 Project 4 |