| Objectives |
Students taking this course can expect to be able to:
-
Program in a functional programming language
-
Understand the evaluation of programs in a functional programming language
-
Understand the phases of a compiler
-
Recognize and use major methods of specification of
dynamic semantics
-
Write a interpreter based on a formal operational
semantics of the language
-
Write a type checker / type inferencer given a formal
type system
-
Write a lexer, and a parser using recursive-descent
parsing, or a parser-generator
-
Write a syntax-directed translator from abstract syntax
to intermediate representations
-
Write an evaluation engine base on formal semantics
|
| Class and Exam Attendance |
-
Attendance in CS 421 is expected, and the student
accepts that work done in the class period or a
proctored examination may only be made up because of
a reason outlined in the
student code
in Section 1-501 d-f, or because of illness
immediately affecting the day of absence, with
notification being given to the instructor before
the class or examination, or as soon as possible
afterwards if the illness is serious enough to have
reasonably prevented earlier contact.
-
In-class quizzes may be rescheduled for two weeks
(14 days) after the original date of the exam, if
the absence has been excused. All other work missed
as a result of an excused absence must be made up
with three (3) business days of the missed class for
in-class events unless a letter of absence from the
Student Assistance Center is provided and indicates
a reason for absence of a greater period of time.
In the case of a prolonged absence, as documented in
an absence letter, work must be made up within three
(3) business days of the end of documented need for
absence.
-
When a quiz or exam is held in the CBTF, students
are required to register for the event before the
testing period opens. Failure to do so will not
automatically grant the right to a make-up.
-
Reasons that do not excuse an absence, but count as the
student's personal choice not requiring
consideration include
-
Travel, except as part of a University sponsored
event.
-
Family visits, whether the student travels to
their family or their family travels to them.
-
Travel because of a family emergency should
be discussed with the instructor to
determine what accommodation is possible.
-
Appointments that could reasonably be
scheduled/rescheduled not to conflict with the
class period.
-
Reasons listed in 1-501.d.6.(i)-(iii), and for
other reasons which do not satisfy the standard
of significant and compelling, as determined by
the course instructor.
-
Requests for personal accommodation may be
considered, but they will be handled in as uniform a
manner as the circumstances allow. Requests must be
made at least one week in advance of the date of the
desired absence, unless clearly not possible by the
circumstances of the reason for the request.
|
| Contacting the Course Staff |
-
For email and
Campuswire
please allow about 24 or so hours for a
response, except on weekends (see below).
-
The staff do not work on the weekends. If you send
or post something late Friday or over the weekend then you
should not expect a reply before Monday.
|
| Quiz and Exam Policies |
-
This course uses the Grainger College of Engineering’s
Computer-Based Testing Facility (CBTF) for its three
Midterm exams. The CBTF will also be used for
students requiring special DRES accommodation (see below).
-
The quizzes and Final will be in PraireLearn through PrairieTest
in class using the student's computer, and using
the Respondus LockDown browser.
The dates for the quizzes and Final can be found in
the mps webpage. Alternate exam
times for the Final will only be given for reasons
allowed by the
student code.
-
The policies of the CBTF are policies of this
course, and academic integrity infractions related to
the CBTF are infractions in this course. This includes
examinations given in the CBTF and those given in other
setting such as the classroom.
-
If you have accommodations identified by the
Division of Rehabilitation-Education Services (DRES)
(http://www.disability.illinois.edu/)
for exams, please submit your Letter of Accommodations
(LOA) through the
CBTF website (https://cbtf.illinois.edu/students/dres)
and by email to the instructor as soon as
possible. It can take up to five days for your LOA to
be processed by the CBTF. If you make a reservation
before your LOA has been processed, your reservation
will not include your testing accommodations and you
will be required to reschedule. This must be done each
semester you use the CBTF.
-
If you have any issue during an exam, inform the proctor
immediately. Work with the proctor to resolve the issue
at the time before logging off. If you do not inform a
proctor of a problem during the test, then you forfeit
all rights to addressing the problem you experienced
during your exam.
-
Take the
CBTF Orientation (https://go.illinois.edu/student-orientation)
(10 minutes) and review all instructions on the
CBTF website
(https://cbtf.illinois.edu/students)
before your first exam.
|
|
Doing and Submitting Coding Questions on Assignments and
Quizzes and Exams
|
|
All work submitted for credit this semester is
submitted through PrairieLearn. Please go to
prairielearn.com
and enroll in CS 421, if you have not already done
so.
This semester, there are two kinds of assignments in
this course: machine problems (MPs), and web assignments
(WAs). Eight of the MPs will be submitted for credit in
their entirety in PrairieLearn as MPs. For each of the
other three, credit will be received by taking an
in-class quiz instead. The quiz will be a selection of
problems from the given MP.
The questions on the MPs are submitted as text
files, one for each problem, with the file usually
named after the code being implemented. WAs are
calculational exercises, also submitted in
PrairieLearn. Both types of questions may appear
on Midterms and the Final.
For each problem on an MP or coding problem on an
examination, you will be given in PrairieLearn a
separate VSCode window, containing a directory
(listed to the left), an editor (VSCode) with a
window for opening the file for you to complete
with the answer to the problem. That file
typically will already contain a bit of starter
code sufficient for you to begin testing your
work. VSCode also has the ability for you to
start a terminal window, which will open placing
you in a directory (as listed on the left) with
all the files you need to complete and test the
assignment, and with full access to the compiler
for OCaml, the programming language we will be
using this semester.
Before submitting a coding question on a
examination or an MP assignment,
you MUST make sure that your answer to the
coding question
compiles with the student grading script
supplied with the assignment or exam. You can do this by
typing make in the terminal window
and making sure that you are given a grade report
with a list of tests run, saying for each whether it was
passed, and giving the points earned for the student
test suite.
If your question fails to compile with the
student grading script, your question submission
will receive NO CREDIT. There will be no
partial credit for coding questions that fail to
compile.
The grader is run on the tests in the tests
file in the directory provided. It contains enough
tests to ensure your code compiles and has the right
type.
Running make in the terminal in VSCode in
PrairieLearn does not ensure the correctness of your
code beyond it's ability to compile.
It is your responsibility to add enough tests to the
test suite to ensure passing the tests will ensure your
code is correct.
You may do multiple commits of either the MPs or
the WAs. Your best score will be your score for
the assignment. Work submitted before the late
deadline will not be subject to the late penalty,
but work submitted after will.
Questions on quizzes and exams typically will only
be allowed one submission. However, for coding
questions, you will still be given the full VSCode
environment to help you develop your answer. You
may build and run the student grader as many times
as you wish.
|
| Extensions |
|
Each MP/WA will normally have an automatic 48-hour extension
with a penalty on that MP/WA that the possible points
earned on that submission is capped at 80% the
total value of the assignment. If we cannot give such an
extension for a particular MP/WA, for example due to
scheduling constraints, we will announce that on
the mps webpage when the MP/WA
is made available.
During the automatic extension, staff is not obliged
to answer questions for that MP/WA. You are on your own.
Extensions without a point penalty for the first 48 hours
and any extension beyond the 48 hours will only be granted
under very unusual circumstances such as a medical or family
emergency. A signed note from a responsible party, or
similar evidence, will be required. If you do need such an
extension for some legitimate reason, do your best to let us
know as soon as possible, preferably before the normal MP/WA
deadline.
|
| Regrade Policy |
|
All grading is done automatically in PrairieLearn via
algorithms that are fairly generic and in no way specialized
to your code. A regrade for you will likely mean a regrade
for the entire class. Requesting a regrade requires an
explanation of why you believe your answer was incorrectly
graded.
In order to have your regrade considered you must provide the following:
- your netid;
-
which assignment or exam question was graded incorrectly;
and
-
what evidence you have that your answer was incorrectly
graded.
You must also
submit your regrade request for a particular assessment
within one week of receiving a grade for that assessment
.
It must be submitted directly to the course instructor,
via email to
egunter@illinois.edu,
not to the TAs. Late regrade requests will not be
accepted or read.
Good reasons to ask for a regrade:
-
The grading was inconsistent with the description of how
to do the problem given in class. Details need to be
provided.
-
The grading was inconsistent with the problem
statement. You must indicate what you believe the
inconsistency to be.
Bad reasons to ask for a regrade:
-
Part of your answer "matched" the answer given in the solution.
A partially correct answer is still wrong.
"The difference between an
almost right word and a right word is the difference between a
lightning bug and lightning." -- Mark Twain
-
You wrote the right answer in VSCode. The answer
submitted is the answer that counts, not work done in
VSCode.
-
You expended a lot of effort answering the problem. We
are measuring mastery, not effort.
-
You wrote something down.
|
| Collaboration |
|
You are allowed to collaborate on the machine problems (MPs) and
the web assignments (WAs) of this course, in order to figure
out how to solve the problem, resolve things you don't
understand, and help each other track down errors or bugs.
Nevertheless, you must each
write and test your code separately
and submit your own solution.
Similarly, you must write up your own WA separately from others.
If your collaboration extended beyond understanding for what the
problem was asking, then you should note on your assignment with whom
or what you collaborated. As always, you are subject to
the rules for plagiarism. Whether you pass
this course or not will depend heavily on whether you pass the exams -- and
those are non-collaborative.
We allow you to collaborate for several reasons:
- substantial research done indicates that students learn
more when they are allowed to work together;
- our own ability to respond to student questions is increased
because your peers are able to give help.
However, you have to collaborate intelligently in order
to get the most out of it. If you ask a friend or
AI agent to describe the solution completely to you
and then you write it down in your own words, you will
get the credit but you'll fail the exam because you
never learned the methods/techniques/concepts.
-
If you verbatim copy, or copy with name, whitespace
and comment changes only, from a friend's solution
or other source, wholly or substantially, if you
cite, this is still violation of course policy and
you will receive a zero on the questions with
copying, if it is determined such copying took place.
-
If you verbatim copy, or copy with only name, whitespace
and comment changes, from a friend's solution or
other source, wholly or substantially, if you did
not cite, or did not cite truthfully, that is
considered cheating.
-
If you work as a group, each writing part and
sharing it with the others, that is also
considered cheating, unless you cite all members
from whom you copied. Again, it will be a
violation of course policy if you copy verbatim or
with only name and whitespace changes, even if
you cite, and you will risk losing all credit for
the questions with parts so copied.
-
If you copied your answer from a source on the
internet or generative AI tool, that is considered
cheating, unless you both cite your source, and
clearly indicate what was copied. If you cite, but
copy verbatim or with only name, whitespace and
comment changes, again that is a course policy
violation, and if determined, may result in the loss
of credit for those questions with parts so copied.
The penalties for being discovered cheating are described in the
next section, below. If you offer your solution for others to
copy, you should protect yourself from being accused of
cheating by reporting this as well. Then, if some of those to
whom you have lent your work fail to cite you, you will be
protected from cheating accusations (unless they also claim
they lent the same problem to you).
If you copy your solutions from friends or other sources, you
must cite your source, and the degree and extent of copying.
Also, to get credit, you must do your writing
without direct copying.
Think of MPs and web assignments as being part of the
practice for the exam. Many of the problems will be used as a
basis for the exam problems themselves. In fact, when it comes
time to study, you are advised to redo your MPs and
WAs.
|
| Policy on Cheating |
|
We will be looking for cheating on both assignments
and exams. The penalty for being caught cheating a
first time -- either sharing your solution or
copying anyone or anything else's solution on
an exam, or copying anyone else's solution on an
assignment without citation -- is that
you will receive a negative score for the unit
on which you cheated equal to the value of the unit
.
Having a cheat sheet or similar forbidden resource
present during an exam or quiz will result in
receiving a negative score on every unit on the effected
assessment with a question with content related to the
forbidden resource.
If there is clear evidence of your consulting
resources that are not allowed, but it is not possible to
ascertain which units were not effected, you will receive
the lesser of the score resulting from giving each
unit clearly potentially effected by your consulting disallowed
resources the negative of it's orignal potential value on the
exam, or a 0 on the exam.
An assignment (MP or WA) is one unit. A PrairieLearn zone on
a test, including all its parts, is one unit.
The penalty if you are caught cheating a second time,
after being informed of the first time, is a grade of F for
the class. You should take all reasonable precautions to
prevent others from cheating and report any suspected
cheating.
All policies of the CBTF are the policies of this course, and
academic integrity infractions related to the CBTF are
infractions in this course. In particular, the following are prohibited activities:
-
Utilizing a cellphone, smartwatch, or any other electronic
device during a quiz or an examination. These resources will be
assumed to relate to all questions on the quiz or exam.
This applies to in-class quizzes and exams as well as exams held
in the CBTF.
-
Having available during a quiz or exam, or bringing into
the CBTF, external papers, index cards, scratch paper not
supplied by a proctor, Help Sheets, information that could
be construed as relevant written on body parts or clothing
or attached to clothing or other things being warn that could
be made visible during the assessment, or any materials
containing information related to the exam.
-
Accessing files, apps or internet resources other than a
browser and PrairieLearn through PrairieTest during a quiz
or an examination.
-
Exiting the testing premises while in possession of used
or unused scratch paper supplied by the CBTF or an exam
proctor. Similarly, when a quiz or exam is given in the
classroom, exiting the classroom while in possession of
used scratch paper supplied by the course staff with
content related to the quiz or exam.
-
Initiating the examination before receiving authorization
from the proctor.
-
Continuing to work on the exam even after the designated
end time has been announced.
-
Engaging in any other activities that contravene the
guidelines outlined for Academic Integrity.
The University of Illinois at Urbana-Champaign Student Code should
also be considered as a part of this syllabus. Students should pay
particular attention to Article 1, Part 4: Academic Integrity. Read
the Code at the following URL:
http://studentcode.illinois.edu/
.
Academic dishonesty may result in a failing grade. Every
student is expected to review and abide by the Academic
Integrity Policy:
https://studentcode.illinois.edu/article1/part4/1-401/
.
Ignorance is not an excuse for any academic dishonesty. It is
your responsibility to read this policy to avoid any
misunderstanding. Do not hesitate to ask the instructor if
you are ever in doubt about what constitutes plagiarism,
cheating, or any other breach of academic integrity.
|
| Grading |
|
All grading is done automatically in PrairieLearn, and you will
receive your results for each problem when you press the Save
& Grade button. You can see the scores of all past
assessments in the PrairieLearn gradebook.
It should be noted, however, that the value for WAs and for
MPs submitted as MPs, not quizzes, is the number of points
assigned in PrairieLearn; they are not all valued equally.
The score tells you the percentage of the points you received,
but you will need to refer back to the assignment itself to
view how many points it was worth. There seems to be no way
to make PrairieLearn report points rather than scores in the
gradebook. The contribution of the MPs and WAs is the number
points earned cumulatively for all non-quiz MPs and WAs divided by the
total points possible, times the percentage of the course the
MPs and WAs combined are worth (14% for 3 credit students, and
8.5% for 4 credit students).
Below is a table giving the percentage each major
category of work in the class contributes to the final
grade.
| Grading Breakdown |
| Work |
Weight (3cr) |
Weight (4cr) |
|
Machine Problems, and Web Assignments (combined)
|
14% |
10.5% |
| Quizzes | 6% | 4.5% |
| Midterm 1 | 15% | 11.25% |
| Midterm 2 | 15% | 11.25% |
| Midterm 3 | 15% | 11.25% |
| Final Exam | 35% | 26.25% |
| Project | NA | 25% |
| Grading Scale |
| Grade |
If your overall score is at least |
| A+ | 100% |
| A | 93% |
| A- | 90% |
| B+ | 87% |
| B | 83% |
| B- | 80% |
| C+ | 77% |
| C | 73% |
| C- | 70% |
| D+ | 67% |
| D | 63% |
| D- | 60% |
|
| Textbooks |
There is no required textbook for this course. However, the
following textbooks are recommended reading: (see also
the resources page)
-
The Objective Caml system, release 4.07
Documentation and user's manual by Xavier Leroy
(with Damien Doligez, Alain Frisch, Jacques Garrigue, Didier Rémy and Jérôme
Vouillon), from the official INRIA website for OCAML.
- an
online book
about OCaml from CalTech.
- Modern
Compiler Implementation in ML by Andrew Appel.
Published by Cambridge University Press. ISBN 0-521-60764-7
(paperback).
- Compilers: Principles, Techniques, and Tools,
also known as "The Dragon Book"; by Aho, Sethi, and Ullman.
Published by Addison-Wesley. ISBN: 0-201-10088-6.
- Essentials of
Programming Languages, 2nd Edition; by Friedman, Wand,
and Haynes. Published by MIT Press 2001. ISBN: 0-262-06217-8.
- Advanced Programming Language Design, by Raphael
A. Finkel. Addison Wesley Publishing Company, 1996.
- Programming Language Pragmatics, by Michael
L. Scott. Morgan Kaufman Publishers, 2000.
- Concepts, Techniques, and Models of Computer
Programming Peter Van Roy and Seif Haridi, MIT Press,
2004 ISBN 0-262-22069-5
|
| Mental Health Assistance |
Significant stress, mood changes, excessive worry,
substance/alcohol misuse or interferences in eating or sleep can
have an impact on academic performance, social development, and
emotional wellbeing. The University of Illinois offers a variety
of confidential services including individual and group
counseling, crisis intervention, psychiatric services, and
specialized screenings which are covered through the Student
Health Fee. If you or someone you know experiences any of the
above mental health concerns, it is strongly encouraged to
contact or visit any of the University’s resources provided
below. Getting help is a smart and courageous thing to do for
yourself and for those who care about you.
- Counseling Center (217) 333-3704
- McKinley Health Center (217) 333-2700
- National Suicide Prevention Lifeline (800) 273-8255
- Rosecrance Crisis Line (217) 359-4141 (available 24/7, 365
days a year)
If you are in immediate danger, call 911.
|
-
This statement is approved by the University of Illinois
Counseling Center
|
| Caring Community |
|
As members of the Illinois community, we each have a responsibility to
express care and concern for one another. If you come across a
classmate whose behavior concerns you, whether in regards to their
well-being or yours, we encourage you to refer this behavior to the
Connie Frank CARE (Coordination, Response, Assistance, and
Education) Center
(217-333-0050
or
https://www.odos.illinois.edu/community-of-care/CAREcenter
).
Based on your report, the staff in the Connie Frank CARE Center
reaches out to students to make sure they have the support
they need to be healthy and safe.
Further, we want to support you in your
overall wellness. We know that students sometimes face challenges that
can impact academic performance (examples include mental health
concerns, food insecurity, homelessness, personal emergencies). Should
you find that you are managing such a challenge and that it is
interfering with your coursework, you are encouraged to contact the
Connie Frank CARE Center in the Office of the Dean of Students
for support and referrals to campus and/or community resources.
|
| Inclusive Community |
|
The effectiveness of this course depends on each of us
contributing to a safe and encouraging learning environment
that allows for the open exchange of ideas while also ensuring
equitable opportunities and respect for all of us. Everyone is
expected to help establish and maintain an environment where
students, staff, and faculty can contribute without fear of
personal ridicule, or intolerant or offensive language. If you
witness or experience racism, discrimination,
micro-aggressions, or other offensive behavior, you are
encouraged to bring this to the attention of the course
instructor, if you feel comfortable. You can also report these
behaviors to Campus Belonging Resources
(
https://access.illinois.edu/compliance/accommodations-support/campus-belonging/
).
Based on your report, Members of the Office of the Vice
Chancellor for Diversity, Equity & Inclusion staff will follow
up and reach out to students to make sure they have the
support they need to be healthy and safe. If the reported
behavior also violates university policy, staff in the Office
for Student Conflict Resolution may respond as well and will
take appropriate action.
|
| Students with Disabilities |
|
To obtain disability-related academic adjustments and/or auxiliary
aids, students with disabilities must contact the course instructor as
soon as possible and provide the instructor with a Letter of Academic
Accommodations from Disability Resources and Educational Services
(DRES). To ensure that disability-related concerns are properly
addressed from the beginning, students with disabilities who require
assistance to participate in this class should apply for services with
DRES and see the instructor as soon as possible. If you need
accommodations for any sort of disability, please speak to me after
class, or make an appointment to see me or see me during my office
hours. DRES provides students with academic accommodations, access,
and support services. To contact DRES, you may visit 1207 S. Oak St.,
Champaign, call 217-333-1970, e-mail
disability@illinois.edu
or visit the DRES website at
http://www.disability.illinois.edu/.
|
| Disruptive Behavior |
|
Behavior that persistently or grossly interferes with classroom
activities is considered disruptive behavior and may be subject to
disciplinary action. Such behavior inhibits other students’ ability to
learn and an instructor’s ability to teach. A student responsible for
disruptive behavior may be required to leave class pending discussion
and resolution of the problem and may be reported to the Office for
Student Conflict Resolution
(
https://conflictresolution.illinois.edu
;
conflictresolution@illinois.edu
; 333-3680) for disciplinary action.
|
| Emergency Response Recommendations |
|
Emergency response recommendations and campus building floor plans can
be found at the following website:
https://police.illinois.edu/em/run-hide-fight/
.
You are encouraged to review this website within the
first 10 days of class.
|
| Religious Observances |
|
Illinois law requires the University to reasonably accommodate its
students' religious beliefs, observances, and practices in regard to
admissions, class attendance, and the scheduling of examinations and
work requirements.
Students requiring religious accommodation should review the
schedule of assignments, quizzes and exams for potential
conflicts. If such conflict is found, the student is required to
inform the instructor of the potential conflict, and describe
the circumstances under which the conflict may arise by the end
of the first 15 days of instruction (September 16). For exams
in the CBTF, unless the full time the CBTF is available for a
given exam is in conflict with the religious observance or the
student's classes, the
student must so a good-faith effort to register for the exam at
a time that does not cause the conflict, including trying to
register at least a week before the exam period begins.
|
| Sexual Misconduct Reporting Obligation |
|
The University of Illinois is committed to combating sexual
misconduct. Faculty and staff members are required to report
any instances of sexual misconduct to the University’s Title
IX and Disability Office. In turn, an individual with the
Title IX and Disability Office will provide information about
rights and options, including accommodations, support
services, the campus disciplinary process, and law enforcement options.
A list of the designated University employees who, as
counselors, confidential advisors, and medical professionals,
do not have this reporting responsibility and can maintain
confidentiality, can be found here:
wecare.illinois.edu/resources/students/#confidential.
Other information about resources and reporting is available
here:
wecare.illinois.edu.
|
|
|