Online discussion using Piazza
New Information
05/09/20
The maximum value for the aggregate based on this calculation is 72. Based on the results I saw, if I were forced to assign a letter grade today, the cutoff for some kind of C would be around 38, for some kind of B would be around 54 and for some kind of A would be around 62. If your aggregate based on this formula is below 38 and you aren't getting at least a 75% average on the homeworks, you will have to catch up in the final exam get a passing grade.aggr := (mid1 + mid2)/10 + (lab01 + ... + lab13)*7/26 + hw1*6/57 + hw2*8/83 + hw3*5/43 + hw4*5/54.5 + hw5*8/39 + hw6*6/20 + hw7*7/59
05/03/20
04/26/20
04/22/20
04/20/20
04/15/20
Useful information from the past
It is probably more important to understand what the prerequisites mean conceptually, and hence what will be assumed in this course.
I realize nevertheless that it is often reassuring to read material that you have seen in class from some other source. Towards this end, I will periodically put up readings from sources available on the web, I will try to write up notes from time to time, my lecture slides will be posted on the course website and all of us---the instructor and the graduate and undergraduate teaching assistants---will work with you to make the learning experience enjoyable and rewarding.
Course Description and Objectives
This is a course to be taken by computer science majors around the end
of the sophomore year. It will use a functional language to introduce a
high-level approach to programming over complex data. It will
emphasize a view of such data that abstracts away from their
representation, using types as a vehicle for organizing them as values
and for structuring computations over them. Advanced programming
techniques that use ideas such as recursion, higher-order functions,
lazy and eager forms of evaluation and infinite data objects will be
explored. The possibility of exploiting parallelism arising from pure
forms of expression evaluation will be examined. Other techniques and
principles to be studied include search-based programming, modularity
and concurrency. Programming projects that focus on symbolic
computation will be used to impart the core ideas in
the course; such projects may include writing parsers, type-checkers
and interpreters for suitably circumscribed programming languages,
and applications of search-based techniques.
Something to realize with regard to the list of topics above: these are topics that several of my colleagues and I concluded a few years ago would be great to provide you exposure to at this stage of your learning but not all of them have to be covered to make this a successful course. We will make some decisions as the semester moves along about what to focus on more sharply and, correspondingly, what to leave out to create more time for the selected topics. In making these decisions, I will take into account what absolutely must be covered and also where I sense the interests of the class to lie.
The division of credit across different homeworks will be based on
content, something that will be determined only in the course of the
term.
I will put information up about possible locations of cutoffs towards
the end of the term. The one helpful thing I might say right now:
based on experience with other courses I have taught, you should get a
C- or higher grade if your aggregate from all the work is over 55%.
Finally, towards ensuring accuracy, make sure to track the scores on
different components of the required work that we will post regularly
to your github repository for the course.. Questions about
grading and errors in grade entry must be reported no more that 2
weeks after the scores have been posted and the feedback has been
provided.
This being said, any work that you turn in for a
grade is expected to be representative of your independent
thinking. You may discuss assignments with each other to the
extent that this
clarifies your understanding of what is being asked, but this
discussion must stop before it gets anywhere near the details of a
solution. If you need help at this point, you should seek this
from the instructor or the teaching assistants who are in a better
position to decide what is and is not appropriate. In a similar vein,
it is not acceptable to simply reproduce solutions to problems that
you obtain from someone outside of class. Note in particular that
copying someone else's work from the web without proper attribution
constitutes plagiarism, a rather serious offense in academic work.
There will be penalties for breaches of this policy, ranging from no
credit for the work in question to a failing grade in the course. To
ensure fairness and in keeping with University policy,
suspected breaches of the policy will be reported to
the Office for
Community Standards. On a more personal note, this
kind of dishonesty interferes seriously with your own ability to learn
and so there is no benefit to it in the long run.
Two further comments on this subject. First, in a course that involves
programming, there is sometimes the temptation to make superficial
changes to programs obtained from someone or somewhere else in the
hope of camoflaging the source and to turn it in as one's own
work. Lots of tools have been designed to detect this kind of
behaviour and they really work! We will certainly be using them in
this course. To keep things simple both for you and for us, resist
such temptations should they arise.
Finally, 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 there is a point beyond which
such help is in breach of the academic honesty policy and can invoke
all the described sanctions. More personally, note that 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. The TAs amd the instructor 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 we 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.
Grade Determination
Different components of the required work will contribute as follows
to the final grade.
Note that the translation to a letter grade will be based on a
curve. Don't read this as putting you in competition with each
other. The reason why I prefer to use this method is that it makes
it possible to give you interesting problems in the homeworks and
exams. If these turn out to be too difficult, they will be so for
your classmates too, and there will be an automatic correction.
Policy on Lateness
I reiterate below the points made earlier about missed exams and
lateness:
Academic Honesty
At the outset, you are strongly encouraged to discuss material in the
course with others in the class. Using the Piazza discussion forums is
a great way to do this. Discussions of this sort benefit everyone:
they can clear up bottlenecks in understanding and explaining things
to others also sharpens your own understanding. It is also possible
that homeworks contain errors or ambiguities and discussions can help
clear such matters up.
The Disability Resource Center
The University of Minnesota is committed to providing all students
equal access to learning
opportunities. The Disability
Resource Center
(DRC) is the campus office that works with students who have
disabilities to provide and/or arrange reasonable accommodations.
If you feel this information is relevant to you please don't hesitate
to follow up; it must be our joint goal to get the best out of every
one and having the right environment to perform is important
towards this end.
Mental Health Resources
As a student you may experience a range of issues that can cause
barriers to learning, such as strained relationships, increased
anxiety, alcohol/drug problems, feeling down, difficulty concentrating
and/or lack of motivation. These mental health concerns or stressful
events may lead to diminished academic performance or reduce your
ability to participate in daily activities. University of Minnesota
services are available to assist you with addressing these and other
concerns you may be experiencing. You can learn more about the broad
range of confidential mental health services available on campus from
the Student Mental
Health website.