Download presentation
Presentation is loading. Please wait.
1
Intro to CIT 594 http://www.cis.upenn.edu/~matuszek/cit594-2012.html
2
2 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
3
3 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
4
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
5
5 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
6
6 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
7
7 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
8
Assignments Except as otherwise noted, all assignments: 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 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 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
9
9 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
10
10 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
11
11 The End
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.