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 Fall 2009
Syllabus

This course picks up where CIS 120 (Formerly CSE 120) has left.  It teaches primarily programming techniques involved in the use and implementation of data structures as well as the introductory concepts of algorithm analysis .  The course continues to make use of the Java programming language and it continues to emphasize software engineering principles such as modularity, reusability, and robustness under changing requirements, while a new emphasis is put on the eff iciency of programs. Attendance of the lab is required.

Partial list of lecture topics (not necessarily in order):
Algorithm analysis tools.
Using stacks and queues.
Lists and Iterators
Trees, traversals.
Priority queues, binary heaps.
Search trees.
Text processing.
Graphs.

Recommended Textbook

Mark A. Weiss, Data Structures and Problem Solving Using Java (3rd edition), 2006, Pearson-Addison-Wesley.

Grading

The course grade will determined as follows:
Homework 30%
Labs 10%
First midterm 15%
Second midterm 15%
Final exam 30%

In CIS 121, extra credit is directly added to your homework average. So it is possible to get a final score that is higher than 100 by doing extra credit problems.

Honesty Policy for Homework

  • 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.

Late Homework Policy

Homework submitted after it is due but within 24 hours will be accepted and all problems will be graded with a 20% penalty.

Valid HTML 4.01 Transitional