Course Syllabus CS4121 – Programming Languages College of Computing Summer 2025 Instructor Information Instructor: Office Location: E-mail: Office Hours: Jianhui Yue, PhD, Assistant Professor offline, video recordings are available at Huskycast jyue@mtu.edu Monday 8:30 pm – 10:00 pm, Friday 8:30 pm – 10:00 pm Zoom link: https://michigantech.zoom.us/j/87034671050 Course Identification Course Number: Course Name: Course Location: Class Times: : CS4121 Programming Languages offline offline Course Description/Overview A discussion of the concepts underlying programming languages. Topics include programming paradigms; language properties (including syntax, semantics, run-time behavior, and implementation issues); data, procedure, functional, and control abstraction; functional programming; and logic programming. Topics to be covered: ● Top-down and bottom-up parsing ● Types ● Subroutine and control abstraction, data abstraction ● Functional programming ● Language security Course Resources Course Website(s) Canvas https://mtu.instructure.com/courses/1552057 Required Course Textbook Programming Languages Pragmatics, 4th edition, by Michael L. Scott, 2016 Reference Textbook(free) Introduction to Compilers and Language Design, by Douglas Thain, 2021 https://www3.nd.edu/~dthain/compilerbook/compilerbook.pdf Course Learning Objectives Students will: 1. Specify the syntax of programs with regular expressions, grammars and implement with scanners and parsers 2. Specify the meaning of programming languages through development of compilers 3. Understand type systems including type checking, type equivalence, and type compatibility 4. Specify memory layout and implementation of composite types 5. Understand procedural abstraction, parameter passing, bindings and their implementation 6. Program in new programming language paradigms such as functional programming 7. Understand buffer overflow and mitigation schemes Tentative Course Topics Topic Book Sections History of Programming Languages 1.1 - 1.7, Notes Scanners (review) 2.1.1, 2.2 2.1.2, 2.1.3, 2.3, 2.4 Parsers Notes Rudimentary Compilation Notes, 3.1, 3.2 Exam 1 MIPS assembly languages Control Flow Notes 6.1 - 6.6 Types & Dynamic Memory Management 7.1 - 7.4; 8.1-8.6 Subroutine and Control Abstraction 3.3 - 3.5, 3.8.1, 9.1 - 9.3 Exam 2 Data Abstraction 10.1-10.7 Functional Languages 3.6, 8.6, 11.1 - 11.3 Logic Programming 12.1-12.2 Language Security and C Notes Exam 3 Grading System Letter Grade A AB B BC C CD D F I X Percentage 90% -100% 85% – 89% 80% – 84% 77% – 79% 72% – 77% 68% – 72% 60% - 68% 59% and below Grade points/credit 4.00 3.50 3.00 2.50 2.00 1.50 1.00 0.00 Rating Excellent Very good Good Above average Average Below average Inferior Failure Incomplete; given only when a student is unable to complete a segment of the course because of circumstances beyond the student’s control. Conditional, with no grade points per credit; given only when the student is at fault in failing to complete a minor segment of a course, but in the judgment of the instructor does not need to repeat the course. It must be made up by the close of the next semester or the grade becomes a failure (F). A (X) grade is computed into the grade point average as a (F) grade. Grading Policy Grades will be based on the following: Homework (5~6 assignments) Projects (4~5) Quiz (3) Exams (3) 20% 40% 10% 30% Assignments All homework and programming assignments will be posted on Canvas. Programming assignments are to be done on an individual basis. Students are allowed to discuss algorithms and concepts, but are not allowed to share code or obtain code from any other resource (e.g., the web). Homework assignment must be done individually. All assignments will be collected online through Canvas unless otherwise noted. If you work on paper, please scan it to pdf and submit the pdf file to Canvas. For the projects, please submit the archive to Canvas. Late Assignments For the assignments, you are allowed 4 late days to be used throughout the semester. For any given assignment, you can use at max 2 late days, after using your two late days, late submissions will be penalized 25% each day late. Course Policies Follow the tenets of the course pledge (found on Canvas). If any student cooperation is allowed, it will be explicitly stated in-class and/or on the assignment, otherwise all work is to be done individually. For more details on academic integrity, please check the Academic Integrity Policy of Michigan Tech. Academic Integrity Rules students do not communicate with others during exams. Because it’s important to everyone at Michigan Tech that academic standards be maintained, academic misconduct may result in an appropriate conduct sanction/educational condition(s) imposed by the Office of Academic and Community Conduct and/or in an academic penalty (lower grade/failing grade) imposed by the faculty. For more details on academic integrity, please check the Academic Integrity Policy of Michigan Tech. University Policies Academic regulations and procedures are governed by University policy. Academic dishonesty cases will be handled in accordance the University's policies. If you have a disability that could affect your performance in this class or that requires an accommodation under the Americans with Disabilities Act, please see me as soon as possible so that we can make appropriate arrangements. The Affirmative Action Office has asked that you be made aware of the following: Michigan Tech complies with all federal and state laws and regulations regarding discrimination, including the Americans with Disabilities Act of 1990. If you have a disability and need a reasonable accommodation for equal access to education or services at Michigan Tech, please call the Dean of Students Office, at 487-2212. For other concerns about discrimination, you may contact your advisor, department head or the Affirmative Action Office, at 487-3310 Academic Integrity: http://www.studentaffairs.mtu.edu/dean/judicial/policies/academic_integrity.html Assessment: http://www.admin.mtu.edu/usenate/policies/p312-1.htm Veterans / Military: http:www.mtu.edu/registrar/students/veterans/ The Office of Institutional Equity and Inclusion: http://www.mtu.edu/equity Affirmative Action: http://www.admin.mtu.edu/aao/ Disability Services: http://www.admin.mtu.edu/urel/studenthandbook/student_services.html#disability Equal Opportunity Statement: http://www.admin.mtu.edu/admin/bot/policy/ch5/ (Links to an external site.)Links to an external site.