Instructor: Rob Hasker (414-277-7326)
Office hours: See my home page: https://faculty-web.msoe.edu/hasker/
Textbooks: |
Software Languages: Syntax, Semantics, and Metaprogramming, Ralf Lämmel, Springer, 2018, ISBN 978-3-319-90798-7 |
Real World Haskell, O'Sullivan, Stewart, and Goerzen, O'Reilly, 2008. This book is available online. |
Course Description: This course studies programming languages and their implementations. This includes discussions of data types, storage management, syntax, BNF descriptions, domain-specific languages, semantics, lexical analysis, parsing, and compilation. Traditional and more modern programming languages are used as examples. Students use a functional programming language to construct interpreters and translators for multiple domain-specific languages.
Prereq: CS 2040
Format: 4 lecture hours, no lab, 4 credits
Course Outcomes: On successful completion of this course, the student will be able to
Grading:
Percentage | |||
---|---|---|---|
Assignments | 30% | ||
Quizzes/exercises/participation: | 20% | ||
2 Midterm exams: | 30% | ||
Final Exam: | 20% | ||
Total: | 100% |
The MSOE grading scale will be used, though I reserve the right to award higher grades to individual students if it increases fairness.
I will either link to materials or provide materials on Canvas. This includes quizzes, exams, assignments, notes, and other materials. I also provide materials at my class web site https://faculty-web.msoe.edu/hasker/cs3040/ such as sample programs illustrating key concepts and upcoming notes. Class announcements and (when relevant) lectures will be provided via Teams. I intend to record each class's lecture and make those available on Canvas. There will be times where there are pre-recorded lectures. It is critical you enable notifications for the Teams entries for CS 3040. Many announcements will be made that way and no other. I may also use email at times. I expect you to check for electronic communications at least once a day.
Unless otherwise announced, late assignment solutions (for labs and exercises) will be penalized 2% per day, and solutions more than a week late are worth 0 points unless there is advance arrangement for extenuating circumstances. Unless you have written permission, all assignments must be submitted before Monday of finals week.
Programs will be graded for both correctness (does it work right?) and presentation (does it look good on the printed page?). I will not be handing out an extensive style sheet for this course, but at a minimum you must do the following:
const int MAX_SIZE = 30; // max # of dates const int LIMIT = 50; // limit of 50 – USELESS if ( x > 0 ) // check x is positive – USELESS
Assignments and quizzes are individual unless explicitly stated otherwise. You are responsible for honestly completing and representing your work, for appropriately citing sources, and for respecting the academic endeavors of others. Electronic tools may be used to identify plagiarism. You will be penalized for violating these standards.
Missed quizzes cannot be made up, but at least one of the lowest quiz or exercise scores will be dropped. All assignments must be submitted by the Saturday after week 10. Assignments will not be accepted after that unless there is advance, written approval.
Attending Teams-based class meetings and lab sessions is mandatory. I may not always take formal attendance, but attendance and participation will be factored into your grade. It is expected that you will read lab writeups and review lecture material before the appropriate lab or class meeting.
Do not record video or audio of lectures without my permission, and do not redistribute provided videos.
All students must take the final exam to receive a passing grade in the course unless the student has been excused in advance.
For students with documented disabilities, chronic medication conditions and mental health concerns: MSOE provides services to make reasonable accommodations available. If you are a student who requires or anticipates the need for accommodations, please contact Student Accessibility Services Office at 414-277-7281, by email at moureau@msoe.edu, or in person at K250 to discuss appropriate accommodations and eligibility requirements.
All students are expected to follow the procedures specified in the Raider Return Plan.