Intro to CIT 594 http://www.cis.upenn.edu/~matuszek/cit594-2012.html Prerequisites    The formal prerequisite is CIT 590 or CIT 591 CIT 591 was primarily a course in Java If.

Download Report

Transcript Intro to CIT 594 http://www.cis.upenn.edu/~matuszek/cit594-2012.html Prerequisites    The formal prerequisite is CIT 590 or CIT 591 CIT 591 was primarily a course in Java If.

Intro to CIT 594
http://www.cis.upenn.edu/~matuszek/cit594-2012.html
Prerequisites



The formal prerequisite is CIT 590 or CIT 591
CIT 591 was primarily a course in Java
If you did not take CIT 591...


You must already know Java, including Swing
You must be familiar with, or prepared to learn quickly:




JUnit testing
The Eclipse IDE
You are expected to have good Java programming style
Other programming languages can not be used as a substitute
for Java
2
What the course is about

There are five main, interrelated topics in CIT594:





Recursion
Data structures
Algorithms
Analysis of algorithms
New this year: concurrency

We will continue to explore good programming
techniques and programming style

It will also be necessary to cover more Java
3
Textbook

This book has good
coverage of many of the
data structures and
algorithms that we will be
using
– It does not, however,
get into concurrent data
structures

The book is intended to
supplement my lectures
Java Collections

The Java Collection hierarchy (in java.util)
implements many of the most important data
structures for you


You need to know what these data structures are, when to
use them, and how they are implemented
There are also important data structures that the Java
Collection hierarchy does not provide


You need to be able to implement these data structures
You need to be able to devise and implement data
structures that are specific to your current problem
5
Algorithms


There are literally thousands of published algorithms
We will cover:



a few algorithms that are related to the data structures we
are studying
a few more algorithms that your instructor especially likes
It’s almost always better to find an existing algorithm
than to re-invent it yourself
6
Analysis of algorithms

Analysis of algorithms is a relatively small part of this
course, but it’s an important part




Most of the time, programming efficiency is the wrong goal—
you should be making your programs clearer, not faster
But sometimes your program is too slow, or it is part of an
application where speed is critical
Analysis can tell you how fast an algorithm will run,
and how much space it will require
When speed is important, a proper choice of algorithm
is essential

Coding details matter almost not at all
7
Assignments

Except as otherwise noted, all assignments:





There may (or may not) be some team assignments



Partners are assigned by the instructor
We do not have a laboratory section
You will do some assignments by yourself




Should be done in Eclipse
Should include complete JUnit tests for non-GUI, non-I/O methods, and
Should include complete javadoc documentation for non-private entities
Must be submitted via Blackboard; email will not be accepted
You may discuss the assignments with other students
You may help (and get help with) debugging
You may not give your source code to anyone
Late assignments will lose 5 points per day, and may or may not
be accepted if more than a week late
Grading

We will have:






Grades will be weighted as follows:




Approximately one assignment per week
One midterm
One final exam
Grades will be curved
We will use Blackboard to turn in assignments
50% assignments
20% midterm
30% final exam
If you feel a grading error has been made, you have one week
after grades have been posted to bring it to our attention
9
Office hours and (no) labs

I avoid making appointments




I have an open door policy: If my door is open, I’m
available
Posted office hours are just the times that I try hard to be in
my office, not the only times you can talk to me
The TAs will also have office hours
We will not have extra help sessions or labs this
semester
10
The End
11