Midterm Exam: October 26, 2022, 14:30 -- 15:45, Keller Hall 3-125
Final Exam: December 17, 2022, 8:00 -- 10:00, Location
Keller Hall 3-125
Online discussion using Piazza
This aggregate is out of a total of 70 points. If we were forced to assign letter grades right now, we might draw the cutoff for some kind of A (i.e. A- or A) at 62, for some kind of B (i.e. B-, B or B+) at 51, and for some kind of C (i.e. C-, C or C+) at 38.aggr := (hw1 * 3/40) + (hw2 * 7/44) + (hw3 * 7/23) + (hw4 * 5/13) + (hw5 * 8/52) + (hw6 * 6/19) + (hw7 *8/61) + (hw8 *6/27) + mid/5
There are still 30 points to be determined, all of which will come from the final exam. Once the cutoffs have been decided, we will take into account what was turned in for the special problems and for the extra credit problem in hw8. Also to be taken into account is the "redo" of the mid term exam. Note also that there is a stipulation of satisfactory performance in homeworks for passing the course.
12/12/2022
12/05/2022
11/21/2022
Older postings worth retaining
Required Text and Other References
The required text is Programming Languages: Concepts and Constructs
(Second Edition), Ravi Sethi, ISBN 0-201-59065-4. This book is
currently out-of-print. You should be able to get a second-hand copy
via the internet. The library is also making an electronic copy
available to students enrolled in the course. You will find a link to
this copy on the Canvas page for the course and can also access it
directly using this link.
If this link does not work for you, you need to access the book
through the Canvas site first, on the Library Course Materials page.
You can find this on the left side of the Canvas site, although you
may need to click on the hamburger menu to find it. Once you access
it through the Canvas site, the link here should start working.
We will be reading a few research/expository papers during the term. These will be made available via the password protected papers and handouts page. Occasionally, when I cannot get an electronic copy of a paper, I will distribute xerox copies in class.
Course Description and Objectives
This course provides an introduction to the
area of programming languages. The focus will be on conceptual
issues. Aspects relating to the structure, usability and
implementation of a variety of programming languages and paradigms
will be studied. Case studies from existing programming languages such
as Pascal, C, C++, Java, ML, Scheme, Haskell and Prolog will be used
to motivate and ground discussions at various points. Some programming in each of these
languages will be needed in order to clearly understand the issues
that we will study. However, the eventual purpose of the course is
not to learn to program in a variety of different
languages. Rather, the objective is to obtain a general understanding
of the idea of a programming language; such an understanding might be
useful at a later stage in quickly assimilating information about any
new language that is encountered and in making judgements about its
implementability and usefulness for specific programming tasks. Also,
while you will not necessarily be ready at the end of this course
to design or implement new programming languages, you should be
adequately prepared at that point for advanced courses that address
these aspects.
The text is a little superficial in its coverage of some important topics and so we will supplement it through lecture material and research papers. Also, going the other way, the syllabus indicated above is a little ambitious and time constraints may not permit us to cover all the topics in the mentioned parts of the text; in past offerings, discussions of object-oriented programming and concurrency have been casualities of time pressures.
Lectures will often cover material not directly available from the book or in the assigned papers. Students will be responsible for assimilating such material as well. Thus, attending lectures and keeping abreast of discussions is very important. Students who have skipped lectures have had difficulty with the course in the past.
While the reading assignments and class participation do not contribute directly to the grade, they will have an important indirect impact. Whether or not the reading assignments are done will show up in the quality of the responses to questions in the homeworks and exams. Further, class participation will be taken into account in determining borderline issues when translating an aggregate into a letter grade.
While we expect timely submissions, situations sometimes arise that prevent us from meeting deadlines. To accommodate for this, each student will be given a cumulative grace period of 5 days that can be used in the way they deem necessary across all the homeworks. Once this time has been exhausted, no credit will be given for any further late homework.
There is an exception to the grace days policy. The available grace time may be sharpened for homeworks that are due before exams, when we may have to return graded homeworks more quickly than normal or we might need to put out solution sketches to help students prepare for the exams. Any such sharpening of the policy for individual homeworks will be announced when the assignment is made available.
While each homework will contribute a specific amount to the final grade, students are expected to turn in all of them and exhibit reasonable effort (read: at least a 50% score) on each to obtain a passing grade in the course. Note that this requirement holds even if the grace period has been exhausted: all homeworks must be turned in, even if they do not accrue credit towards the aggregate.
The exam dates are firm: No changes or makeup exams will be considered except in the case of serious and documented illness. Also, the likely format for any officially sanctioned makeup exam will be an oral one.
I may put out a few "special problems" during the term that may involve learning things beyond what we will discuss explicitly in class and that may be more challenging than the usual homeworks in this sense. If I do this and if a student solves these problems successfully, then I will take the work into account in the process of determining the letter grade. As a rough calculation, such work may be thought of as cumulatively contributing an additional 15% to the aggregate. Note that only complete solutions will make a difference, i.e. taking a few steps towards solving these special problems will generally not count.
Issues such as presentation elegance, clarity and conciseness of expression and the insights offered are essential aspects of submitted work, not just optional ones. As such, these will be taken into account in grading. The Web page for homeworks discusses these points in more detail and also explains matters of protocol.
A last comment about how to approach this course. For most students, there will be a lot of new things to be learnt. New languages and new ways of thinking about programs will be encountered. Moreover, the focus will be on things that have a long term impact on your understanding. For example, we will not really be discussing how to program in Java, C++ or some other language but, rather, how to think about programs and the devices available in these and other languages. You may feel diffident at times doing this---all of us have an initial desire to stay with familiar things---but it can be very rewarding in the end. Also, know that the TA and the instructor are quite passionate about the subject and are more than willing to give you assistance. However, such assistance can be useful only if you have made the initial efforts to understand and if you keep a positive attitude towards learning despite the obstacles you may have encountered along the way.
Collaboration is strongly encouraged in this course insofar as this
serves to improve understanding of the course material. As one
indication of how seriously we mean this, we have set up Piazza forums
for discussions related to various aspects of the material we will cover.
While collaboration is both natural and useful, carrying it too far
can interfere with learning as well as with the assessment of what has
been learnt. A specific requirement that should be adhered to strictly
is that any work that is meant to be graded must be
an indication of the student's own understanding and hence must be
done completely independently.
In the first instance, this means that a clear distinction must be
made between a discussion that is meant to help understand a homework
problem and the issues it might be highlighting and one that is about
a solution to the problem; the latter is prohibited, the former is
not.
Similarly, if outside sources, such as resources available
over the web, have been consulted in developing a solution then these
must be clearly identified in the work that is turned in. Not doing so counts
as plagiarism, one of the worst forms of cheating in the academic
context. Using such sources is not by itself disqualifying, what is
disqualifying is simply copying the solution.
We will make a determination of whether this line has been crossed and
will adjust the credit accordingly.
Our role as instructors for the course require us to deal strictly
with collaborations that cross the lines described above, instances
of plagiarism and other forms of cheating. There are lots of simple
yet effective ways to determine if this is happening.
If such violations are encountered, they will be dealt with as a
breach of the academic honesty guidelines for this course. Penalties
for such transgressions will range, at my discretion, from no credit
for the assignment in question to a failing grade in the course. To
ensure fairness and in keeping with University requirements, suspected
breaches of the policy will be reported to
the Office of Community
Standards. At a personal level, this kind of dishonesty
interferes
seriously with intellectual development and it also sours
relationships. I sincerely hope, therefore, that we will not have to
get into a realm where we have to deal with such issues.
A comment on a related point. For those of you who seem to be
understanding the material in the course well and are enthused by
this, I would like to encourage your being helpful to
others. However, please be aware that, if taken beyond a reasonable
point, such help can be detrimental to someone else's learning.
One particular situation
to be aware of is when you respond to queries on the discussion fora.
Give thought to whether or not you will be letting out solutions to
problems that your colleagues should have a chance to think through
for themselves. Dawn and I will try to monitor this aspect
towards guiding you in deciding when responses and help you provide
has the danger of crossing the boundary of legitimacy, but, for the
situation to be manageable, they will need you to be cooperative and
responsible as well.
Note: The department has a default set of policies regarding
academic conduct that you will
find here. These policies are effective for
anything that is not explicitly covered above.
Policies and Related Information
Collaboration and Academic Honesty
COVID-19 Specific Policies
COVID-19 transmission and the dangers of contracting the disease
continue worry many of us. The University has a set of
policies related to this and the Senate Committee on Educational
Policy has put together
a "recommended
syllabus language" that is relevant to the instructional
environment. That document identifies three aspects as worthy of
clarification: course modality, what to do in case of illness, and
requirements concerning vaccination and masking.
The information specific to this course related to these three aspects is the following:
Access to the videos is provided through the UNITE Media Portal based
on a University of Minnesota Internet I.D. and password, i.e., the
information needed to access a University of Minnesota email account.
UNITE partners with the DRC in implementing accommodations approved by
University of Minnesota's Disability Resource Center (DRC)
consultants. Students working with the DRC may have their DRC
consultant contact UNITE directly.
UNITE will consider lifting the ten-day delay in the following
circumstances: for illness/emergency lasting one-week or longer
with documentation; for
University of Minnesota events/projects with inflexible schedule
(approved examples: travel for CSE Solar Car Team Project, travel for
university athletics), travel for a conference related to student's
program. Examples of those not approved: CSE Career Fair (which has
an all-day schedule), personal travel.
The instructor and the teaching assistant will not be able to help you
with questions related to the UNITE Media. Use the UNITE
Troubleshooting FAQ or "Submit a Trouble Report to UNITE" link found
on all pages within the UNITE Media Portal or send an email message to
UNITE.
UNITE's Policy for On-Campus Students: https://cse.umn.edu/unite/unite-streaming-video-access-campus-students
UNITE Related Provisions
This course is also being offered via UNITE, as a result of which
there are some special provisions for students attending it on
campus. Streaming video archives of class meetings are available
with a TEN-DAY delay for the length of the semester. UNITE
will not make media available to students enrolled in on-campus
sections for any reason past the final exam. See UNITE's Policy for
On-Campus students (link below) for details of access for on-campus
students. This ten-day delay is lifted one week prior to scheduled
exams and one week prior to finals as long as students are also
enrolled in the course through UNITE Distributed Learning. If there
are no UNITE enrollments, the ten-day delay may only be lifted the
week prior to finals week.
Technical FAQ: https://cse.umn.edu/unite/troubleshoot-unite-media
UNITE Media Portal: https://media.unite.umn.edu/secure/