Skip to content

Latest commit

 

History

History
163 lines (128 loc) · 9.77 KB

index.md

File metadata and controls

163 lines (128 loc) · 9.77 KB
layout title active_tab
default
CIS 121—Fall 2016—Data Structures and Algorithms
main-page

{: .dl-horizontal} Course: : CIS 121 - Fall 2016

Instructor: : Chris Callison-Burch

Teaching Assistants: : Course staff

Discussion Forum: : Piazza

Lectures: : Tuesdays and Thursdays at 10:30 AM in Chem 102

Prerequisites: : CIS 120 and CIS 160

Textbook: : Algorithms (4th Edition) by Robert Sedgewick and Kevin Wayne. The lectures and the required reading will draw from the textbook. It is available from the Penn Bookstore, as well as various online retailers.

Materials: : We require everyone in the course to have their own clicker. You can re-use the one that you have from CIS 110 or 120, or you can purchase one from the bookstore if you don't have one.


The final project has been released. Milestone 1 will be due by midnight on Tuesday, November 1.
HW7, Graphs and Shortest Paths, has been released. It is a written assignment and will be due by 10:30 AM on Thursday, October 27th. Submission will be through Gradescope only.

Grading:

: The grading for the course will consist of:

* 55% for homework assignments and the final project
* 10% for midterm 1
* 15% for midterm 2
* 15% for the final
* 5% for attendance of lectures and recitation. 

Late submission policy:

: The following applies to all homeworks, both written and programming, except for the final project, which does not have a late day policy. Each student has five free, no-strings-attached "late days" in case of extenuating circumstances. Homeworks can be submitted at most two days late provided that you have the requisite number of late days.
If you are out of late days, then you will not be able to submit your homework. One "day" is defined as anytime between 1 second and 24 hours after the homework deadline. The final project does not have the same late policy; it has its own late policy, which will be announced with its release.

Attendance requirement:

: You are required to attend lectures and recitations for this course. Your lecture attendance will be tracked by using your response to the clicker quizes, and your recitation attenadnce will be tracked with sign-in sheets. Clicking in or signing in for another student is considered to be cheating, and will result in both students recieving 0 for attendance. You are not required to attend lectures on days you are observing religious holidays or doing acadmic conference travel. You must declare the dates that you will be away on the course policy quiz during the first week of classes.

Cheating policy:

: We take cheating very seriously. Students who are suspected of copying homework assignments or of violating the collaboration policies will be automatically referred to the Office of Student Conduct (OSC). All homework written and programming assignments are run through plagiarism detection software. The software checks for similarity between assignments submitted this term and in previous terms. When the software flags assignments as having suspiciously high overlap, we pass the assignments to the OSC to adjudicate whether the collaboration policy was violated. Students will receive a 0 on the homework for the first violation, and an F in the course if there is a second violation.

Collaboration policy for written homework:

: You are allowed to discuss solutions to problems in pairs, documenting who you collaborated with at the top of your assignment. You are not allowed to write up the solutions together. You must do that by yourself. You are not allowed to show any other students your writeup. You may have at most one partner per assignment. You cannot collaborate with one classmate on the first problem, and another classmate on a different problem. It is permissable to ask anyone for LaTeX help (for instance, "How do I center a stack of equations?"). You are allowed to use the textbook, the Internet, the library or any other resources to research your written homework assignments. However, if you find a solution to the problem you are not allowed to copy it directly or to paraphrase it. You should attempt to understand it yourself and write it up without looking at the source. You should also note in your solution where you found the solution.

Collaboration policy for programming homework:

: Generally, collaboration is not permitted on the programming assignments. You are allowed to discuss low-level issues like the meaning of Java constructs, or how to use the computing environment. You are allowed to discuss high-level questions such as what the instructor/lab TA said, the content of the textbook or other general resources. You not allowed to...

-   Discuss issues directly pertaining to the homework questions or
    their solutions.
-   See another students homework solutions.
-   Show your solutions to another student.
    -   This includes asking a classmate to debug your code and agreeing
        to debug a classmate’s code. If you do this during office hours,
        know that the TAs are *required* to report your names to the
        instructor.
-   Share any code except the code that is being made available by us on
    the course website to be used specifically with your solutions
    -   Occasionally, a *small* snippet of code *from the textbook* may help
        your work. You can use such a snippet *with attribution*, i.e.,
        provided you add a comment in which you make clear you copied it
        from the textbook.
    -   You may NOT use snippets of code from the Internet (e.g.,
        StackOverflow.com and similar).
    -   You may NOT share test cases.
-   Post your code where it may be accessible to others. This is largely a
    clarification of the previous rule. This means that you may NOT seek
    help from online forums, like StackOverflow or similar. You may NOT push
    your code to a public repository like GitHub (private repositories,
    however, are permitted). You may seek help from online forums for
    low-level issues as mentioned above. When in doubt, ask on Piazza.
-   Look at other people’s information.
    -   If you find a terminal on which somebody else has logged in and
        forgot to log out, you *must* log them out.
    -   When somebody else is typing a password in front of you *must*
        look out the window or at your shoes.
-   Use any code downloaded from the Internet or sent to you by email,
    Facebook, text, Twitter, or even scribbled notes passed from hand to
    hand. :)
-   Share the material that we post for this course with anybody who is
    not a registered student in this course or a staff member.
    -   If you find any such material already posted somewhere else you
        *must* inform the course staff immediately. Same if you are
        contacted by people who offer to solve your homework for money,
        or who knows what else. Use your common sense and ask any member
        of the staff if you are not sure about a resource you are
        considering.
    -   You may NOT share course materials without the prior approval of the
        course staff. You may NOT post course materials on sites such as
        CourseHero. 

Regrade policy for programming assignments:

: We allow you to indicate small errors (defined below) that you have made, which, when fixed, will allow your programs to pass autograder tests. You will need to fill out this form by the regrade deadline, which is one week after you receive your scores. In the form, you must identify exactly the error in your code and include a precise description of the fix that needs to be made. A small error is a problem whose fix should not require changing more than 1-2 lines of code. A TA will make the change and rerun the autograder tests. Your new score will be the maximum of your original score and 80% of your regraded score. What are some acceptable/common types of "small" errors?

- Use of `==` instead of `.equals`
- Modification of a method header, causing compilation failure
- Lack or addition of `!` operators

Regrade emails to individual TAs are NOT guaranteed to be processed.

Regrade policy for written homework and exams:

: Each written assignment and each midterm exam will have a regrade request deadline that will be posted typically one week after the assignment or exam has been returned with your score. Beyond that deadline, regrades can only be given by permission of the instructor. Regrade requests are meant for cases such as arithmetic mistakes in tabulating a final score, or for a grader not seeing that you continued your solution on the back of the page (as an example). In the interest of transparency, the course staff makes its best effort to indicate exactly where points are docked with the associated reasons. For the written assignments and for the midterms, solutions will be provided in class. Please consult these carefully before requesting a regrade. Please fill out the regrade request form and bring it to the course administrator, Caitlin Coad, in Levine 308, together with the assignment or exam by the regrade deadline.