44
CIS 2420 Data Structures

CIS 2420 Data Structures

  • Upload
    tamas

  • View
    41

  • Download
    1

Embed Size (px)

DESCRIPTION

CIS 2420 Data Structures. Course Objectives and Methods:. Students will acquire the skill of designing and implementing abstract data structures in a high-level programming language. - PowerPoint PPT Presentation

Citation preview

Page 1: CIS 2420 Data Structures

CIS 2420 Data Structures

Page 2: CIS 2420 Data Structures

Introduction 2

Page 3: CIS 2420 Data Structures

Introduction 3

Course Objectives and Methods:

Students will acquire the skill of designing and implementing abstract data structures in a high-level programming language. CIS*242 will convey the concept of layered software by separating the application from the implementation using abstraction. When building data structures students will review methods of performance and complexity analysis of algorithms used for implementation.

Page 4: CIS 2420 Data Structures

Introduction 4

Data structures will include lists, vectors, queues, stacks, trees, dictionaries, hash-tables, and graphs. Algorithms used include searching, sorting, text processing using the above data structures. On assignments, students are asked to program data structures using a high-level programming language. On exams and quizes, students are asked to solve problems using analytical methods and programming skills acquired from lectures and assignments to demonstrate knowledge and comprehension of course material.

Page 5: CIS 2420 Data Structures

Introduction 5

Prerequisite(s): CIS*2650, (CIS*1900 or MATH*2000). Text Book: M.T.Goodrich and R.Tamassia Data Structures & Algorithms in Java

(2nd Edition),WILEY,1997.

Page 6: CIS 2420 Data Structures

Introduction 6

Course Format and Schedule:

Course webpage can be found at: http://snowhite.cis.uoguelph.ca/~welazmeh/teaching/

cis242/fall02Students will attend lectures presented by the professor and lab-

tutorials presented by a teaching assistant. The lectures schedule is:

S1) X. Li Tuesdays/Thursdays 08:30-09:50MACK 120 Office hour: Email for an appointmentS2) W. Elazmeh Tuesdays/Thursdays 08:30-09:50C&M 160 Office hour: Email for an appointment

Page 7: CIS 2420 Data Structures

Introduction 7

Labs Schedule:

Lab A) Tuesday 13:00-14:50 THRN 1313Lab B) Tuesday 17:30-19:20 THRN 1313Lab C) Wednesday 15:00-16:50 THRN 1313Lab D) Thursday 15:00-16:50 THRN 1313Lab E) Thursday 17:00-18:50 THRN 1313The labs are limited to 30 students per lab section. To register in a lab section, pick a suitable time and write your

ID in the registration list posted outside Reyn 321. The spaces are reserved for the first 30 students registered on

thatlist. (please do not change groups unless approved by yourinstructor).

Page 8: CIS 2420 Data Structures

Introduction 8

Course Evaluation:

4 Assignments: equally weighted 6%24%

3 Quizzes: weighted 6%, 10%, 10% 26%

1 Final Exam: 50% *** in order to pass the course (minimum

passing grade), students MUST obtain at least 50% on the final exam. Total: 100%

Page 9: CIS 2420 Data Structures

Introduction 9

Course Topics:

1. Intro algorithm complexity analysis 2. Stacks,queues,vectors,and lists 3. Trees 4. Priority queues 5. Dictionaries and hashing 6. Search trees 7. Sorting 8. Text Processing 9. Graphs

Page 10: CIS 2420 Data Structures

Introduction 10

Prof. Xining [email protected] 327 Ext: 6548Prof. William [email protected] 321 Ext: 8762

Instructor Information:

Page 11: CIS 2420 Data Structures

Introduction 11

Teaching Assistants Information:

Lab A: Eric Junjiang Chen [email protected] B: Amol Shukla [email protected] C: Stephen Pearce [email protected] D: Lei Song [email protected] E: Yang Yu [email protected]: Ryan VanAcker [email protected]

Page 12: CIS 2420 Data Structures

Introduction 12

Important Dates:

Monday 09/09/2002: Classes beginTuesday 01/10/2002: Assignment #1 DueThursday 03/10/2002: Quiz #1Tuesday 15/10/2002: Assignment #2 DueThe week of 15/10/2002: No LabsThursday 24/10/2002: Quiz #2Monday 04/11/2002: Course Drop DeadlineTuesday 05/11/2002: Assignment #3 DueTuesday 19/11/2002: Assignment #4 DueThursday 21/11/2002: Quiz #3Friday 29/11/2002: Last Day of ClassMonday 02 - Friday 13/12/02: Final Exam Period

Page 13: CIS 2420 Data Structures

Introduction 13

Important Notes:

Late assignments or labs are NOT ACCEPTED. Missed quizes result in a mark of zero, unless (see next

item). Illness and severe circumstances may be

accommodated, email your instructor at least 48 hours before the due time and provide certification whenever possible.

An excused absence from quizzes or labs is not provided to accommodate personal inconveniences and other minor problems.

Marks Posting: When ready, you may be able to examine your marks by clicking here (the marks will be posted during the term).

Page 14: CIS 2420 Data Structures

Introduction 14

Important Notes: Your final grade will be based on the grading system

published in the university calendar. To appeal a mark on an assignment, a lab or a quiz, you

must do so within two weeks after they are handed back.

Each assignment will indicate its due time and date. Academic misconduct includes the submission of

program code or assignment answers that appear so similar to another student's work as to be semantically indistinguishable. Misconduct cases will be handles swiftly, discreetly,and summarily by the Department in accordance with University principles.

Page 15: CIS 2420 Data Structures

Introduction 15

Java = C++ --

Java is a general purpose object-orientedprogramming with extensions to supportGUI and network (client/sever) applications. Java is architecturally neutral. It is aninterpreted language. It is supported by avariety of hardware platforms and operatingsystems.

Page 16: CIS 2420 Data Structures

Introduction 16

Source-level and executable-level portability:

Programs written by a high-level programming language aresource-level portable (some special cases). Source-code programs are not directly executable, they mustbe compiled. A compiler could be designed to generate two types ofexecutable code: bytecode or binarycode. Bytecode programs are executable-level portable, they areexecuted by an interpreter (virtual machine, emulator ...). Binarycode programs are not portable, they are executed byhardware.

Page 17: CIS 2420 Data Structures

Introduction 17

Three alternatives for running Java programs:

Java interpreter. It translates Java bytecode on-the-fly. It is usually slow, sometimes at only 3-10 percentthe speed of compiled C code. JIT (Just-In-Time) compiler. It converts Javabytecode into native (binary) code. This can result insignificant performance improvements, but sometimes

aJIT compiler takes an unacceptable amount of time andmemory to do the compilation. Java chip. It is a dedicated Java processor, nativelyunderstand Java bytecode without the overhead of aninterpreter or JIT compiler.

Page 18: CIS 2420 Data Structures

Introduction 18

Types of Java programs:

Standalone application: main()

Applet - code executed by a web browser: no main()

Page 19: CIS 2420 Data Structures

Introduction 19

Object-Oriented Programming:

type: defines value domain

name: symbolic identifierData: value: a specific value

location: memory reference operations: predefined on

basic types.

class: define state domain name: symbolic identifier

Object: state: current state

location: memory reference

methods: pre/user defined

Object-Oriented programming: glues data and their related operations into one piece - object.

Page 20: CIS 2420 Data Structures

Introduction 20

Object-Oriented concepts:

Class: The fundamental structure in Java. Class = Structured_type + Associated_operations. Inheritance: A relation between classes that allows for the

definition and implementation of one class to be based on that of other existing classes. The inheritance relation is often called the “is a" relation.

Encapsulation: A language construct that enables programmers to limit access to parts of an object.

Overloading: The ability to use the same name for multiple methods.

Polymorphism: In general, polymorphism means the ability to take more than one form. In OO, it indicates the ability to deal with multiple types based on a common feature.

Page 21: CIS 2420 Data Structures

Introduction 21

Class Modifiers:

Modifier Meaning

(default)

class is visible in this package

public class is visible in other packages

abstract class must be extended

final class must not be extended

Page 22: CIS 2420 Data Structures

Introduction 22

Method Usage Modifiers:

Usage Modifier

Meaning

final cannot be overridden

static attached to a class not an object

abstract must be overridden

native not written in Java

synchronized entry to the method is mutual-exclusive

Page 23: CIS 2420 Data Structures

Introduction 23

Method Scope Modifiers:

Scope Modifier Meaning

public visible everywhere

protected visible in this package and visible in subclasses in other packages

(default) friendly

visible in this package

private protected

only visible in this class and its subclasses

private only visible in this class so can never be declared abstract

Page 24: CIS 2420 Data Structures

Introduction 24

Variable Modifiers, Their Scopes and Extents:

There are three kinds of variables in Java:

instance variables, class variables and

local variables. Characteristics related

with variables are types, modifiers,scopes, extents, and initial values.

Page 25: CIS 2420 Data Structures

Introduction 25

Variable usage modifiers:

Usage Modifier

Meaning

final the variable's value cannot be changed

static a class variable

transient reserved for future use

volatile the variable can be changed asynchronously

Page 26: CIS 2420 Data Structures

Introduction 26

Variable scope modifiers:Scope Modifier

Meaning

public visible everywhere

protected visible in this package and in subclasses in other packages

default (friendly) visible in this package

private protected in this class and its subclasses

private only visible in this class

Page 27: CIS 2420 Data Structures

Introduction 27

Extent of a variable:

Variable Kind

Extent

instance variable

T(creation) - T(no_more_references)

class variable T(loaded) - T(no_more_references)

local variable T(enter_code_block) - T(exit_code_block)

Page 28: CIS 2420 Data Structures

Introduction 28

Declarations:The general form of data declaration:<Modifiers> <type_name><variable_name> [= <initial_value>]; The general form of object declaration: <Modifiers> <type_name><variable_name> [= new

<costructor>]; Object declarations (without an initialization)

do not create objects. For example: Bicycle blackice; // no blackice object yet

Bicycle blackice = new Bicycle(...); // create an object blackice

Page 29: CIS 2420 Data Structures

Introduction 29

Operators and Expressions:

There are factors that influence the final value of an expression:

Precedence: it says that some operations bind more tightly than others.

Associativity: it defines the tie breaker for deciding the binding when we have several operators of equal precedence strung together.

Evaluation_order: it tells the sequence (for each operator) in which the operands are evaluated.

Page 30: CIS 2420 Data Structures

Introduction 30

The Basic Statements:

selection: if and switch statements iteration: for, while, and do statements control transfer: return, throw,

continue, break, and goto statements guarding: synchronized statement method call: object.method(arg_list);

Page 31: CIS 2420 Data Structures

Introduction 31

The Object Class: In Java, nearly everything is an object. Every

class is ultimately inherited from the ultimate superclass Object, i.e., any object obj in a Java program can be converted to an object

of Object by casting (Object) obj.Most Java utility classes require the use of

instances of Object. However, variables of basic types are not instances of Object yet.

Thus Java provides a simple way to promote them when needed.

Page 32: CIS 2420 Data Structures

Introduction 32

The class version of basic types:

Basic Type Corresponding Class

boolean Boolean

char Char

integer Integer

Long Long

float Float

double Double

Page 33: CIS 2420 Data Structures

Introduction 33

An example of moving an int to anInteger object and an Integer to an

int,using methods from the Integer class:

Integer iobj;int i = 42;iobj = new Integer(i); // to Objecti = iobj.intValue(); // to int

Page 34: CIS 2420 Data Structures

Introduction 34

Interfaces: Interfaces are skeletons of classes. They are used to

specify the form that something must have, but not actually provided the implementation.

An interface only declares methods and defines constants (variables).

An interface can be implemented by any class. A class can implement several interfaces at once.

(different from inheritance, a class can only extend one parent class).

An interface is a static (compile-time) protocol. (An abstract class implies inheritance, which may select a proper method at runtime).

Any methods or variables declared in a public interface are implicitly public.

An interface may extend any number of other interfaces.

Page 35: CIS 2420 Data Structures

Introduction 35

1. A program written in the JavaTM programming language can run on

any platform because...

A. Java programming is derived from C++.B. The Java Virtual Machine(JVM) interprets the program for the native operating system.C. The compiler is identical to a C++ compiler.D. The APIs do all the work.

Page 36: CIS 2420 Data Structures

Introduction 36

2. An applet will run in almost any browser because...

A. The server has a built-in JVM. B. The browser has a built-in JVM. C. The source code is interpreted by the browser. D. Applets don't need a JVM.

Page 37: CIS 2420 Data Structures

Introduction 37

3.What is the purpose of the main method?

A.To build a user interface. B.To hold the APIs of the application. C.To create buttons and scrollbars. D.To act as the entry point for the program.

Page 38: CIS 2420 Data Structures

Introduction 38

4.The Applet class provides...

A. A browser to run the applet. B. Methods to define the applet's behavior and appearance. C. A special HTML page. D. Permission to communicate with the server.

Page 39: CIS 2420 Data Structures

Introduction 39

5.Which method will a web browser call first on a new applet?

A. main method B. start method. C. init method. D. paint method.

Page 40: CIS 2420 Data Structures

Introduction 40

6.What is the advantage of using import statements?

A.To avoid having to declare variables. B.To refer to a class without using prefixes. C.To avoid calling methods. D.To import the images you want to use.

Page 41: CIS 2420 Data Structures

Introduction 41

7.When a program class implements an interface, it must provide behavior for...

A. Two methods defined in that interface. B. Only certain methods in an interface. C. Any methods in a class. D. All methods defined in that interface.

Page 42: CIS 2420 Data Structures

Introduction 42

8.A constructor is used to...

A. Free memory. B. Initialize a newly created object. C. Import packages. D. Create a JVM for applets.

Page 43: CIS 2420 Data Structures

Introduction 43

9.The BorderLayout class provides static fields for...

A. Introducing new methods. B. Adding components to specific areas of a container. C. Starting an applet. D. Specifying font size and color.

Page 44: CIS 2420 Data Structures

Introduction 44

10.Servlets are typically used for...

A. Creating graphics. B. Extending a web server by providing dynamic web content. C. Storing information in applets. D. Loading buttons and menus.