Uploaded by mshakour

CS4121 Programming Languages Syllabus - Summer 2025

advertisement
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.
Download