By the end of this course, you will have
developed the following knowledge and skills:
Above all, the goal of this course is to instill a deep understanding
of how to think
CS41 covers material that is similar to what you saw in CS35 or
CS21. However, the perspective is much different, and what you
will be learning is different too. This course is much more
about learning how to solve computational problems and analyze
your solution(s), and less about implementing algorithms that
we've gone over in class. To succeed in this course, you should
consistently do the following:
Partner Etiquette
The expectation is that you and your partner are working together
on your partnered homework assignments. You should work together
on planning, discussing, and writing up the problems. There may be
short periods where you each go off and independently work on the
problems, but you should frequently come together to talk about
your progress as a team.
This is even more important in a remote learning environment.
Your partner is there to help brainstorm
and talk through ideas. You and your partner are equally
responsible for coordinating times that you can meet on Zoom and/or Slack and work on
the homework. The final submission has everyone's names on it and
should represent work done as a team. You should not submit your
name on work which is not your own.
Partnerships where partners work mostly independently tend to
result in incomplete and buggy submissions, and do not help you
learn the material thoroughly. Partnerships where partners work
together for most of the time are much more productive and helpful
in learning the material and successfully solving the problems.
If you have any issues with your partnership, please contact me as soon as issues arrive.
Academic Integrity
Note: in the following paragraphs, "code" refers to all
homework solutions, including written programs but also proofs,
analysis, written reports, etc.
Academic honesty is required in all your work. Under no
circumstances may you hand in work done with (or by) someone
else under your own name. Your code should never be shared with
anyone; you may not examine or use code belonging to someone
else, nor may you let anyone else look at or make a copy of your
code. This includes, but is not limited to, obtaining solutions
from students who previously took the course or code that can be
found online. You may not share solutions after the due date of
the assignment.
Discussing ideas and approaches to problems with others on a
general level is fine (in fact, we encourage you to discuss
general strategies with each other), but you should never read
anyone else's code or let anyone else read your code. All
code you submit must be your own with the following
permissible exceptions: code distributed in class, code found
in the course text book, and code worked on with an assigned
partner. In these cases, you should always include detailed
comments that indicates on which parts of the assignment you
received help, and what your sources were.
Failure to abide by these rules constitutes academic dishonesty
and will lead to a hearing of the College Judiciary
Committee. According to the Faculty Handbook:
"Because plagiarism is considered to be so serious a
transgression, it is the opinion of the faculty that for the
first offense, failure in the course and, as appropriate,
suspension for a semester or deprivation of the degree in that
year is suitable; for a second offense, the penalty should
normally be expulsion."
Please contact me if you have any questions about what is
permissible in this course.