DOC PREVIEW
Penn CIT 594 - CIT 594 lecture notes

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Intro to CIT 594PrerequisitesWhat the course is aboutRequired textbook #1Required textbook #2Recommended readingSuggested reading ISuggested reading IIJust good readingJava in this courseEclipseJava CollectionsAlgorithmsAnalysis of algorithmsAssignmentsGradingOffice hours and (no) labsThe End17-Dec-03Intro to CIT 594http://www.cis.upenn.edu/~matuszek/cit594.html2PrerequisitesThe formal prerequisite is CIT 591CIT 591 was primarily a course in JavaIf you did not take CIT 591...You must be a reasonably good Java programmer, including programming applications, applets, and the AWTYou are expected to have good Java programming styleOther programming languages can not be used as a substitute for Java3What the course is aboutThere are four main, interrelated topics in CIT594:RecursionData structuresAlgorithmsAnalysis of algorithmsIn addition, we will continue to explore good programming practicesGood programming styleGood habits, such as creating test casesUse of tools, such as Eclipse and JUnit4Required textbook #1Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms, by David A. Watt and Deryck F. BrownThere is another textbook entitled Java Collections, by a different author (John Zukowski). Be sure to get the correct book!5Required textbook #2Data Structures & Algorithms in Java, Second Edition, by Robert LaforeThis 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!)6Recommended readingThe next three books are not required for this course, so the campus bookstore probably won’t have themIf you want them, you will probably have to special order themThe campus bookstore may have some copies of the style book left over from last semester7Suggested reading IEssential Java 2 Fast, by John CowellThis is not a tutorial, but rather an extremely useful and concise referenceThis is my favorite Java book8Suggested reading IIThe Elements of Java Style, by Alan Vermeulen (ed.)This book describes the style that will be expected of youIt contains material you should know from CIT 591If you did not take CIT 591, you need this book9Just good readingThe Pragmatic Programmer: From Journeyman to Master,by Andrew Hunt and David ThomasFull of excellent advice for practicing programmersWe will not be using this book this semester10Java in this courseThis is a course in algorithms and data structures, not a second course in JavaBut...Java will be the primary programming languageWe will study Java Collections in detail, as they are extremely relevant to the courseYou will be expected to learn the Eclipse IDE11EclipseEclipse is an IDE, similar to BlueJ but much more powerful (and more complex)The major IDEs are all pretty similar; once you learn Eclipse, you will be able to pick up another IDE pretty quicklyAdvantages of Eclipse:Full-featuredFree, open sourceVery well implementedSupport for various refactoringsDisadvantage:No special support for GUI buildingUses SWT rather than Swing12Java CollectionsJava Collections implement many of the most important data structures for youA traditional data structures course would have you implement these yourselfI don’t believe in re-inventing the wheelHowever, you need to know how these data structures are implemented, for the times when you need something more than Java gives youThe Java Collections textbook is a good compromise between using what Java provides, and doing it yourself13AlgorithmsThere are literally thousands of published algorithmsWe will cover: a few algorithms that are related to the data structures we are studyinga few more algorithms that your instructor especially likesIt’s usually better to find an existing algorithm than to re-invent it yourselfThe Data Structures & Algorithms in Java textbook is an excellent textbook for beginning data structures and algorithms, but it completely ignores Java’s collections14Analysis of algorithmsAnalysis of algorithms is a relatively small part of this course, but it’s an important partAnalysis can tell you how fast an algorithm will run, and how much space it will requireA good algorithm, even if badly coded, can run circles around a poor algorithm that is carefully tuned and highly optimizedAssignmentsExcept as otherwise noted, all assignments:Are to be done solo (by yourself). As before,You may discuss the assignments with other studentsYou may help (and get help with) debuggingYou may not give your source code to anyoneShould be done in EclipseShould include complete JUnit tests, andShould include complete javadoc documentationLate assignments will lose 5 points per day, and may not be accepted if more than a week late16GradingWe will have:Approximately one assignment per weekThree to five quizzesA final examGrades will be curvedWe will use Blackboard to turn in assignmentsGrades will be weighted as follows:50% assignments30% quizzes20% final examIf you feel a grading error has been made, you have one week after grades have been posted to bring it to our attention17Office hours and (no) labsI will be more available than last semesterI will post office hours; these are the times that I will try hard to be in my office and availableWhen my door is open, I’m probably availablePlease try to keep visits shortThe TA will also have office hoursWe will not have extra help sessions or labs this semesterWe will be doing all or almost all individual (solo) projects, but there may be some exceptions18The


View Full Document

Penn CIT 594 - CIT 594 lecture notes

Documents in this Course
Trees

Trees

17 pages

Searching

Searching

24 pages

Pruning

Pruning

11 pages

Arrays

Arrays

17 pages

Stacks

Stacks

30 pages

Recursion

Recursion

25 pages

Hashing

Hashing

24 pages

Recursion

Recursion

24 pages

Graphs

Graphs

25 pages

Storage

Storage

37 pages

Trees

Trees

21 pages

Arrays

Arrays

24 pages

Hashing

Hashing

24 pages

Recursion

Recursion

25 pages

Graphs

Graphs

23 pages

Graphs

Graphs

25 pages

Stacks

Stacks

25 pages

Recursion

Recursion

25 pages

Quicksort

Quicksort

21 pages

Quicksort

Quicksort

21 pages

Graphs

Graphs

25 pages

Recursion

Recursion

25 pages

Searching

Searching

24 pages

Counting

Counting

20 pages

HTML

HTML

18 pages

Recursion

Recursion

24 pages

Pruning

Pruning

11 pages

Graphs

Graphs

25 pages

Load more
Download CIT 594 lecture notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view CIT 594 lecture notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view CIT 594 lecture notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?