Computer Science @ PENN

java 1.5 api | java 1.4.2 api | slashdot | webmail | wikipedia
upenn.edu | directories | portal | van pelt library
seas.upenn.edu | engineering library
computer graphics & game dev (SIGGRAPH) | dining philosophers (DP) | science & tech wing (STWING) | women in cs (WICS)
CETS Answers |

CIS121 Spring 2012
Data Structures and Algorithms with Java


Logistics

Lectures for the course take place on Tuesdays and Thursdays, 10:30am-12(noon) in 100 Towne Hall. First lecture is on Thursday, January 12, 2012. Last lecture is on Tuesday, April 24, 2012.

In addition to two weekly lectures, there are also weekly labs. Lab attendance is mandatory. First labs will meet during the week of January 23, 2012. See the labs page for more information.

The required textbook for the course is Algorithms by Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 2011. The book site contains links to code and slides.

Grading

Class grade is computed based on 2 midterms (15% each), a final exam (20%), 6 homeworks (5% each, weakest homework grade will be dropped), a final project (15%), and lab participation (10%).

Late Homework Policy

Two grace days are provided for your benefit. Grace days may be used only for homeworks that are due at 5pm on a Friday. Two of the homeworks will be due on a Tuesday, and grace days may not be used for these. Grace days may also not be used for the course project. Update: Homework schedule was modified on February 23. Each of the two remaining homeworks will be due on a Tuesday. You may use your grace days for homework 5 if you wish. It is still not allowed to use your grace days for homework 6, because we want you to have time to study for midterm 2.

Grace days may only be used in whole. For example, if an assignment is due on Friday at 5pm, and you submit it on Friday at 8pm, you will have used one grace day. You may use both grace days on a single assignment, in which case you need to submit the assignment by 5pm on Sunday. You may also use grace days on two assignments, one day on each. In that case both assignments are due no later than 5pm on Saturday. If you have used up your grace days and submit an assignment late, your assignment will not be accepted and you will receive 0 credit for it.

Honesty Policy for Homeworks and Project

  • You must type in and edit your own code.
    • Copying someone else's file is not allowed.
    • Allowing someone else to copy a file of yours, either explicitly or implicitly by leaving your code unprotected, is not allowed.
    • Editing each other's files is not allowed.
  • Regarding the ethics of what you may or may not discuss with other students:
    • "High level" discussions are fine.
      For example, discussions about the problem statement.
    • "Low level" discussions are fine.
      For example, discussions about Java syntax, understanding compiler error messages, understanding the mechanics of the Java language. Note that:
      • A student who needs help with debugging a program may show another student his/her code.
      • A student who is helping someone else may not show his/her code.
    • "Mid level" discussions are prohibited. Discussions at this level are not allowed.
    • Use your best judgement to protect both yourself and your friends. In Penn Engineering, typically if a professor suspects unwarranted collaboration, all participating parties are penalized (both helpers and helpees).
    • Use your best judgement about asking or answering questions of other students. For example, if you are supposed to implement Algorithm X that is described in the book, and you don't understand Algorithm X, then you can ask another student to explain it to you. However, if you are supposed to come up with your own algorithm to solve a problem, then you can not ask another student to tell you their algorithm.

    When in doubt about whether it is ethical to ask or answer a question of another student, ask a TA or the instructor.