Presentation is loading. Please wait.

Presentation is loading. Please wait.

Intro to CIT 594

Similar presentations


Presentation on theme: "Intro to CIT 594"— Presentation transcript:

1 Intro to CIT 594 http://www.cis.upenn.edu/~matuszek/cit594-2005.html

2 2 Prerequisites The formal prerequisite is CIT 591 CIT 591 was primarily a course in Java If you did not take CIT 591... You must be a reasonably good Java programmer, including programming applications, applets, and 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

3 3 What the course is about There are four main, interrelated topics in CIT594: Recursion Data structures Algorithms Analysis of algorithms In addition, we will continue to explore good programming practices Good programming style Good habits, such as creating test cases Use of tools, such as Eclipse and JUnit It will also be necessary to cover more Java

4 4 Required textbook #1 Data Structures & Algorithms in Java, Second Edition, by Robert Lafore This book has the clearest and most understandable explanations of algorithms that I have ever seen (and I’ve seen a lot of Data Structures textbooks!) It does not, however, cover some of the essential math we will need

5 5 Required textbook #2 The Elements of Java Style, by Alan Vermeulen (ed.) This book describes the style that will be expected of you

6 Strongly recommended books You should get some book that describes the new features in Java 5 (especially generics) Here are two that are only about these new features:

7 7 Java in this course This is a course in algorithms and data structures, not a second course in Java But... Java 5.0 will be the primary programming language We will study Java Collections in detail, as they are extremely relevant to the course You will be expected to use Eclipse 3.1M4 or newer Eclipse 3.0 does not support Java 5.0 Macintosh users: Java 5.0 is not yet available for you I feel your pain

8 Java generics C++ programmers: Java generics are similar to C++ templates We will study generics in some detail, but for now, here’s all you need to know about generics: Generics have little or no relevance to the data structure concepts we will be studying in this course Generics completely change the way we code data structures

9 9 Java Collections Java Collections implement many of the most important data structures for you A traditional data structures course would have you implement these yourself I don’t believe in re-inventing the wheel However, you need to know how these data structures are implemented, for the times when you need something more than Java gives you The Java Collections textbook is a good compromise between using what Java provides, and doing it yourself

10 10 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 usually better to find an existing algorithm than to re-invent it yourself The Data Structures & Algorithms in Java textbook is an excellent textbook for beginning data structures and algorithms, but it completely ignores Java’s collections

11 11 Analysis of algorithms Analysis of algorithms is a relatively small part of this course, but it’s an important part Analysis can tell you how fast an algorithm will run, and how much space it will require A good algorithm, even if badly coded, can run circles around a poor algorithm that is carefully tuned and highly optimized

12 Assignments Except as otherwise noted, all assignments: Are to be done solo (by yourself). As before, 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 Should be done in Eclipse Should include complete JUnit tests, and Should include complete javadoc documentation Late assignments will lose 5 points per day, and may not be accepted if more than a week late

13 13 Grading We will have: Approximately one assignment per week One midterm One final exam Grades will be curved We will use Blackboard to turn in assignments Grades will be weighted as follows: 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

14 14 Office hours and (no) labs I will be more available than last semester I will post office hours; these are the times that I will try hard to be in my office and available When my door is open, I’m probably available Please try to keep visits short The TA will also have office hours We will not have extra help sessions or labs this semester We will be doing all or almost all individual (solo) projects, but there may be some exceptions

15 15 The End


Download ppt "Intro to CIT 594"

Similar presentations


Ads by Google