Intro to CIT 594 - PowerPoint PPT Presentation

About This Presentation
Title:

Intro to CIT 594

Description:

JUnit testing. The Eclipse IDE. You are expected to have good Java programming style ... a book that describes the new features in Java 5 (especially generics) ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 16
Provided by: cisU
Category:
Tags: cit | intro | testing

less

Transcript and Presenter's Notes

Title: Intro to CIT 594


1
Intro to CIT 594
  • http//www.cis.upenn.edu/matuszek/cit594-2006.htm
    l

2
Prerequisites
  • The formal prerequisite is CIT 591
  • CIT 591 was primarily a course in Java
  • If you did not take CIT 591...
  • You must be a reasonably good Java programmer,
    including programming applications, applets, and
    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
What the course is about
  • There are four main, interrelated topics in
    CIT594
  • Recursion
  • Data structures
  • Algorithms
  • Analysis of algorithms
  • In addition, we will continue to explore good
    programming practices
  • Good programming style
  • Good habits, such as creating test cases
  • Use of tools, such as Eclipse and JUnit
  • It will also be necessary to cover more Java

4
Required textbook 1
  • Data Structures Algorithms in Java, Second
    Edition, by Robert Lafore
  • This book has the clearest and most
    understandable explanations of algorithms that I
    have ever seen (and Ive seen a lot of Data
    Structures textbooks!)
  • It does not, however, cover some of the essential
    math we will need

5
Recommended book 1
  • If you dont have a book that describes the new
    features in Java 5 (especially generics), you
    should get one
  • Heres my favorite

6
Recommended book 2
  • The Elements of Java Style, by Alan Vermeulen
    (ed.)
  • This book describes the style that will be
    expected of you

7
Java in this course
  • This is a course in algorithms and data
    structures, not a second course in Java
  • But...
  • Java 5.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 Eclipse 3.1M4 or
    newer (the current version is 3.1.1)
  • Eclipse 3.0 does not support Java 5.0

8
Java generics
  • C programmers Java generics are similar to C
    templates
  • We will study generics in some detail, but for
    now, heres all you need to know about generics
  • Generics have little or no relevance to the data
    structure concepts we will be studying in this
    course
  • Generics completely change the way we code data
    structures

9
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

10
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
  • Its usually better to find an existing algorithm
    than to re-invent it yourself
  • The Data Structures Algorithms in Java textbook
    is an excellent textbook for beginning data
    structures and algorithms, but it completely
    ignores Javas collections

11
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

12
Assignments
  • Except as otherwise noted, all assignments
  • Are to be done solo (by yourself). As before,
  • 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
  • Should be done in Eclipse
  • Should include complete JUnit tests, and
  • Should include complete javadoc documentation
  • Late assignments will lose 5 points per day, and
    may not be accepted if more than a week late

13
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

14
Office hours and (no) labs
  • I will be more available than 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, Im probably available
  • Please try to keep visits short
  • The TA will also have office hours
  • We will not have extra help sessions or labs this
    semester
  • We will be doing all or almost all individual
    (solo) projects, but there may be some exceptions

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