Intro to CIT 594 - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

Intro to CIT 594

Description:

a few more algorithms that your instructor especially likes ... Analysis of algorithms is a relatively small part of this course, but it's an important part ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 19
Provided by: DavidMa6
Category:
Tags: cit | algorithms | intro

less

Transcript and Presenter's Notes

Title: Intro to CIT 594


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

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
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
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
Secondary required textbook
  • The Pragmatic Programmer From Journeyman to
    Master,by Andrew Hunt and David Thomas

6
Recommended reading
  • The next two books are not required for this
    course, so the campus bookstore probably wont
    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
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
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
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
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 wont hurt you to learn another IDE
  • I do not consider J to be a good IDE

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
Getting Lisp
  • If you plan to run Lisp on your own computer, I
    recommend XLisp
  • http//burks.brighton.ac.uk/burks/language/lisp/i
    ndex.htm
  • Click on CLisp (its a version of XLisp)
  • Download the file xlisp21h.zip
  • Unzip into an empty directory to install

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 dont 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
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
  • Its generally better to find an existing
    algorithm than to re-invent it yourself

15
Analysis of algorithms
  • Analysis of algorithms is a relatively small part
    of this course, but its 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
Grading
  • Like last semester, we will have
  • Approximately one assignment per week
  • A quiz 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
Extra help
  • Unfortunately, I cant spend as much time on
    individual help as I did last semester
  • I will be less available outside scheduled office
    hours
  • Please try to keep visits short during office
    hours
  • You can make appointments for longer visits
  • The TAs will also have office hours
  • I will schedule a weekly help session in a
    classroom
  • This will be strictly optional
  • It will not cover new material

18
The End
Write a Comment
User Comments (0)
About PowerShow.com