cpac i professor evan korth fall 2011 road map for today welcome to cpac i! course description –...

30
CPAC I Professor Evan Korth Fall 2011

Upload: haley-shaw

Post on 30-Mar-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

CPAC I

Professor Evan KorthFall 2011

Page 2: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Road Map for Today• Welcome to CPAC I!• Course Description

– What material will we cover?– What am I getting myself into?

• Administrative Issues– Course Web Page, Text Book, Exams, Office Hours,

Homework, Grading, Cheating Policy, etc.• Syllabus• Survey• Start covering material

Page 3: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Course PrerequisitesCourse Prerequisites• Prerequisite:

– Programming experience in any language– Moderate math sophistication is expected

• Who should be taking this course:– Applicants to the master’s programs who have

insufficient background in computer science, but are otherwise admissible are referred to PAC.

– Other graduate students who want a solid foundation in CS

• Who should NOT be taking this course– Students that know Java and data structures

3

Page 4: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

PAC DescriptionPAC DescriptionPREPARATORY ACCELERATED COURSE (PAC)Applicants to the master’s programs who have

insufficient background in computer science, but are otherwise admissible are referred to PAC. These two courses (part one, which is offered in the fall, and part two, offered in the spring) are designed to fulfill the minimum prerequisites for beginning a master’s program in computer science or information systems. Those admitted to the M.S. program with the requirement to complete PAC are considered M.S. degree students while they are enrolled in PAC courses, although the credits for the courses do not count toward the M.S. degree.

4

Page 5: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Course Description• An accelerated introduction to the fundamental concepts

of computer science for students who lack a formal background in the field. Topics include algorithm design and program development; data types; control structures; subprograms and parameter passing; recursion; data structures; searching and sorting; dynamic storage allocation and pointers; abstract data types, such as stacks, queues, lists, and tree structures; generic packages; and an introduction to the principles of object-oriented programming. Packages are emphasized as a means to develop skills in effective software design and development. Students should expect an average of 12-16 hours of programming and related course work per week.

Page 6: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

What the class is really aboutWhat the class is really aboutThe main goals of this course:I. Foundations of Java

a) We will focus on Java’s object orientated concepts.

II. Foundations of Algorithm DevelopmentIII. Foundations of Software DevelopmentIV. Foundations of Abstract Data Types (ADT)

a) What is a data structure?b) Examples of data structures and their real world uses.

V. Foundations of Asymptotic Analysis a) How do we rate the efficiency of an algorithm?b) How does choosing the right ADT effect an algorithm's

efficiency? 6

Page 7: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

1. Foundations of Java Programming1. Foundations of Java Programming

• Java is a popular programming language, widely used in industry.• We will learn all the specifics of how to program in Java.• This includes all the rules that are specific to Java.• First we will cover Java’s implementation of the fundamentals: Variables, Arithmetic, If / Else, For Loops, While Loops, Methods, Arrays, etc.• Then will then cover Java’s object orientated concepts.

7

Page 8: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

8

2. Algorithm development2. Algorithm development

• We will look at problem solving methods that involve analyzing the problem and designing an algorithm before we start to write code.

Page 9: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

3 Learn the Principles of Software Development3 Learn the Principles of Software Development

• Building high quality software is very difficult.• The course presents the syntax and concepts of

programming, and also presents strategies for building real software that address real problems.

• I will also try to bring my real-world industry experience to class.

9

Page 10: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

4 Foundations of Abstract Data Types4 Foundations of Abstract Data Types

• An abstract data type (ADT) is a set of objects together with a set of operations. For example:

– Stack– Queue– Dictionary– Tree– Priority queue

10

Page 11: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

11

5 Introduction to Algorithm analysis5 Introduction to Algorithm analysis• Basically, we want to solve any given problem

using the fewest possible computer instructions.– Two algorithms may solve the same problem. One may

take a few seconds while the other takes a few years. We will analyze our data structures to see why one works better than the other for a given set of data.

• For example, we will learn several sort algorithms and analyze the efficiency of each.– Insertion sort– Merge sort– Quick Sort– Heap sort– See: http://math.hws.edu/TMCM/java/xSortLab/

Page 12: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Administrative MattersAdministrative Matters

12

Page 13: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Course Web SiteCourse Web Site• Course web site is available at: http://cs.nyu.edu/courses/fall11/CSCI-GA.1133-001Web site contains the following information:

– Administrative information– Course Syllabus– Homework assignments– Class notes– Class programs– Link to the class mailing list

13

Page 14: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Class mailing listClass mailing list

• First assignment is to join it. Do it today!• Go to:http://cs.nyu.edu/mailman/listinfo/

CSCI_GA_1133_001_fa11 and follow the instructions• All assignments and news will be sent to the class list• Homework questions should be sent to the list and

answered by students when possible.

14

Page 15: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Course Text BookCourse Text Book• Introduction to Java

Programming (8th Edition) Brief Version

• Available at the NYU Bookstore

• Book includes a CD-ROM with Java programs and other supplemental materials.

• Lecture notes will follow the book.

• Please keep up with the reading!

15

Page 16: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Course Text BookCourse Text Book• Data Structures and

Algorithm Analysis in Java (Second edition)– by Mark Allen Weiss

• ISBN: 0321370139• Should be available at the

NYU Bookstore• Lecture notes will loosely

follow the book.• Please keep up with the

reading!

16

Page 17: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

SoftwareSoftware• For the course, you may use any IDE you are

comfortable using. I will use one or more of the following in the classroom:– Eclipse– JCreator (Note: this IDE has no debugger)– Netbeans – I will also use the command line

• All these products can be downloaded from the web for free.

• The class website has links to the downloading sites for these programs. Please download the compiler as soon as possible.

• If you do not have your own computer, the computer labs on campus have the software.

17

Page 18: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

GradingGrading

• Your grade will be determined as follows:– Programming assignments(25%)– Midterm (and quizzes) (40%)– Final Exam (35%)

• Class participation will help your grade!

18

Page 19: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

homeworkhomeworkIf you do not do the homework programs, you cannot pass the course.

If home work is late, 25% is deducted.

After one week of lateness, home work will not be accepted.

Style counts.

Submit the program via email to the IA (more on this later)

Back-up your files: For you own good you must save all programs in several places (make back-up copies!!). Computer crashes or lost programs are not valid excuses for not handing in an assignment.

19

Page 20: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

A Word About CheatingA Word About Cheating

• For the purposes of this class, cheating is defined as by the CS Department’s academic integrity policy– Discussing homework concepts is fine, but you

must submit your own work.• If you are caught cheating, you will receive

an immediate FAILURE for the course.

20

Page 21: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Student CivilityStudent Civility

• In an effort to make this class enjoyable for everybody…– Please be on time to class!– Please do not talk to your friends and neighbors in

class! It disturbs everyone, and makes it hard to concentrate. If you have a question, just ask me!

– Please turn your pagers and cell-phones off!

21

Page 22: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Getting HelpGetting Help• Help is always available!• Option 1: Come to my Office Hours

– Monday and Wednesday 5:00-6:00 (I may change the time of my office hours)

– Location: Room 319 Warren Weaver Hall– I get bored when nobody visits!– If you cannot make my office hours, I will be

happy to make an appointment with you. Please try to give me advance warning when you need an appointment.

• Option 2: Write to the class mailing list. Please do not send homework code to the list.

• Option 3: Our TA.

22

Page 23: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

23

Java syllabusJava syllabus• Chapter 1, Introduction to Java • Chapter 2, Primitive Data Types • Chapter 3, Selection Statements • Chapter 4, Loops • Chapter 5, Methods • Chapter 6, Arrays• Chapter 7, Objects and Classes • Chapter 8, Strings• Chapter 9, Inheritance and Polymorphism • Chapter 10, Abstract Classes and Interfaces • Chapter 11 Object Orientated Design • Chapter 19, Recursion

Page 24: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

24

data structures syllabusdata structures syllabus• Here is a tentative list of the topics we will

cover (note: most chapters will NOT be covered in their entirety):– (Ch. 1.3) Recursion– (Ch. 2) Asymptotic Analysis of Algorithms

• We will just scratch the surface as we look at the efficiency of some of our structures and algorithms

– (Ch. 3) Lists, Stacks and Queues– (Ch. 4) Trees– (Ch. 6) Heaps– (Ch. 7) Sorting– (Ch. 5) Hashing– (Ch. 10.1.2) Huffman Codes

Page 25: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

25

recitationrecitation• This class has a mandatory recitation. If you

are not registered for the recitation, you must do so.

• Recitation will be led by our IA. His name is Randolph Chiu Tan.

• Quizzes will be held in recitation approximately every other week.

• HW will be discussed in recitation.• Recitation starts this week!

Page 26: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

Object Orientated ProgrammingObject Orientated Programming• Objects

– Reusable software components that model items in the real world

– Meaningful software units• Date objects, time objects, paycheck objects, invoice objects,

audio objects, video objects, file objects, record objects, etc.• Any noun can be represented as an object

– Very reusable– More understandable, better organized, and easier to

maintain than procedural programming– Favor modularity

2000 Prentice Hall, Inc. All rights reserved.

26

Page 27: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

History of JavaHistory of Java• A group of 13 Sun employees including

James Gosling started the “Green Project” in 1991 with the intention of planning for the next wave in computing.

• They designed the *7 which was “an interactive, handheld home-entertainment device controller with an animated touchscreen user interface”

• Gosling’s contribution to the project was an entirely new processor independent language call “Oak”.

27

Page 28: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

28

History of Java (continued)History of Java (continued)• To make a long story short, people at Sun decided

to use this new language for the web.• At the Sun World conference in May 1995, Marc

Andreessen of Netscape announced an agreement to integrate Java into its browser – in a nutshell - webpages were no longer going to be static.

• Over the next few years, java became very popular for writing applets (small programs included on webpages)

• Today in addition to writing applets, Java is used for writing large applications as well as applications for mobile devices

• For more on the history of Java, check out: http://java.sun.com/features/1998/05/birthday.html

Page 29: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

29

Basics of a Typical Java EnvironmentBasics of a Typical Java Environment

• Java programs normally undergo five phases– Edit

• Programmer writes program (and stores program on disk)– Compile

• Compiler creates bytecodes from program– Load

• Class loader stores bytecodes in memory– Verify

• Verifier ensures bytecodes do not violate security requirements

– Execute• Interpreter translates bytecodes into machine language

2003 Prentice Hall, Inc. All rights reserved.

Page 30: CPAC I Professor Evan Korth Fall 2011 Road Map for Today Welcome to CPAC I! Course Description – What material will we cover? – What am I getting myself

30

Typical Java Typical Java environmentenvironment

PrimaryMemory

.

.

.

.

.

.

Disk

Disk

Disk

Editor

Compiler

Class Loader

Program is created in an editor and stored on disk in a file ending with .java.

Compiler creates bytecodes and stores them on disk in a file ending with .class.

Class loader reads .class files containing bytecodes from disk and puts those bytecodes in memory.

Phase 1

Phase 2

Phase 3

PrimaryMemory

.

.

.

.

.

.

Bytecode Verifier Bytecode verifier

confirms that all bytecodes are valid and do not violate Java’s security restrictions.

Phase 4

PrimaryMemory

.

.

.

.

.

.

InterpreterInterpreter reads bytecodes and translates them into a language that the computer can understand, possibly storing data values as the program executes.

Phase 5

2003 Prentice Hall, Inc. All rights reserved.