Intro to CIT 594 http www cis upenn

  • Slides: 12
Download presentation
Intro to CIT 594 http: //www. cis. upenn. edu/~matuszek/cit 594 -2009. html

Intro to CIT 594 http: //www. cis. upenn. edu/~matuszek/cit 594 -2009. html

Prerequisites n n n The formal prerequisite is CIT 591 was primarily a course

Prerequisites n n n The formal prerequisite is CIT 591 was primarily a course in Java If you did not take CIT 591. . . n n You must be a reasonably good Java programmer, including programming applications, applets, and Swing You must be familiar with, or prepared to learn quickly: n n 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 n There are four main, interrelated topics in CIT

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

Textbook n n This book has good coverage of the data structures and algorithms

Textbook n n This book has good coverage of the data structures and algorithms that we will be using It is intended to supplement my lectures

Java in this course n n This is a course in algorithms and data

Java in this course n n This is a course in algorithms and data structures, not a second course in Java But. . . n n n Java 6. 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 Net. Beans 6. 0 or newer n n If you have used Eclipse, you will find Net. Beans to be very similar Net. Beans has an integrated profiler which we will use 5

Java Collections n Java Collections implement many of the most important data structures for

Java Collections n Java Collections implement many of the most important data structures for you n n n 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 6

Algorithms n n There are literally thousands of published algorithms We will cover: n

Algorithms n n There are literally thousands of published algorithms We will cover: n n n 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 7

Analysis of algorithms n n n Analysis of algorithms is a relatively small part

Analysis of algorithms n n n 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 8

Assignments n Except as otherwise noted, all assignments: n n n There may (or

Assignments n Except as otherwise noted, all assignments: n n n There may (or may not) be some team assignments n n n Partners are assigned by the instructor We do not have a laboratory section You will do some assignments by yourself n n Should be done in Eclipse Should include complete JUnit tests for non-GUI, non-I/O classes, 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 n We will have: n n n Grades will be weighted as follows:

Grading n We will have: n n n Grades will be weighted as follows: n n 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 10

Office hours and (no) labs n I avoid making appointments n n I have

Office hours and (no) labs n I avoid making appointments n n 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 TA will also have office hours We will not have extra help sessions or labs this semester 11

The End 12

The End 12