Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Intro to CIT 594 ~matuszek/cit594.html.

Similar presentations


Presentation on theme: "1 Intro to CIT 594 ~matuszek/cit594.html."— Presentation transcript:

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

2 2 Prerequisites The formal prerequisite is CIT 591 CIT 591 was primarily a course in Java You are expected to be a reasonably good Java programmer, including programming applications, applets, and the AWT You are expected to have good Java programming style, as well as knowledge of the language

3 3 What the course is about There are three main, interrelated topics in CIT594: –Data structures –Algorithms –Analysis of algorithms In addition, we will continue to explore what it means to be a “good” programmer

4 4 Main required textbook Java Collections: An Introduction to Abstract Data Types, Data Structures and Algorithms, by David A. Watt, Deryck F. Brown, Dave Watt There is another textbook entitled Java Collections, by a different author (John Zukowski). Be sure to get the correct book!

5 5 Secondary required textbook The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas

6 6 Recommended reading The next two books are not required for this course, so the campus bookstore probably won’t have them If you want them, you will probably have to special order them The campus bookstore may have some copies of the style book left over from last semester

7 7 Suggested reading I Essential Java 2 Fast, by John Cowell Not for beginners, but an extremely useful and concise reference This is my favorite Java book

8 8 Suggested reading II The Elements of Java Style, by Alan Vermeulen (ed.) This book describes the style that will be expected of you The Java style book contains material you should know from CIT591; if you did not take CIT91, you need this book

9 9 Java in this course This is a course in algorithms and data structures, not a second course in Java But... –Java 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 learn the Forté IDE

10 10 Forté Forté is an IDE, similar to BlueJ but much more powerful (and more complex) If you already know a good IDE, such as Visual Age or JBuilder, you may use it after using Forté for the first couple of assignments –It won’t hurt you to learn another IDE –I do not consider J++ to be a good IDE

11 11 Lisp We begin by studying the Lisp programming language Why? –Lisp is simply the best way to learn what linked lists (an important data structure) are all about –Programming in Lisp is the best way to learn to write recursive programs (recursion is an important technique for working with data structures)

12 12 Getting Lisp If you plan to run Lisp on your own computer, I recommend XLisp –http://burks.brighton.ac.uk/burks/ language/lisp/index.htm –Click on CLisp (it’s a version of XLisp) –Download the file xlisp21h.zip –Unzip into an empty directory to install

13 13 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 textbook is a good compromise between using what Java provides, and doing it yourself

14 14 Algorithms There are thousands of 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 generally better to find an existing algorithm than to re-invent it yourself

15 15 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

16 16 Grading We will have: –Approximately one assignment per week –A quiz approximately every other week –No final exam –Grades will be curved –We will use Blackboard, at least initially But the first assignment is to be turned in on paper Weighting will be 50% quizzes, 50% assignments

17 17 Extra help I expect to have somewhat more time available than I did 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 I may schedule a lab session—if so, it will be optional

18 18 The End


Download ppt "1 Intro to CIT 594 ~matuszek/cit594.html."

Similar presentations


Ads by Google