cs2210 data structures and algorithms lecture 1: course overview

24
© 2004 Goodrich, Tamassia CS2210 Data Structures and Algorithms Lecture 1: Course Overview Instructor: Olga Veksler

Upload: carrington

Post on 07-Jan-2016

103 views

Category:

Documents


0 download

DESCRIPTION

CS2210 Data Structures and Algorithms Lecture 1: Course Overview. Instructor: Olga Veksler. What is this course about?. We will study moderately complex data structures and algorithms that are essential in core areas of computer science Compilers Operating Systems Database Systems - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

© 2004 Goodrich, Tamassia

CS2210Data Structures and Algorithms

Lecture 1: Course Overview

Instructor: Olga Veksler

Page 2: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 2

What is this course about? We will study moderately complex data

structures and algorithms that are essential in core areas of computer science Compilers Operating Systems Database Systems Search Engines etc.

This is one of the most important (and fun) courses you will take Prerequisite for almost all other upper year

courses

Page 3: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 3

Simple data structures you have seen

Data structure = representation and operations associated with a data type

Set/bag Array Tree

Page 4: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 4

Simple algorithms you have seen

Binary search Bubble sort Quick sort

Page 5: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 5

Knowledge Assumed

We assume you know basic data structures

Arrays, bags, lists, stacks, queues, linked lists Functions, logarithms, exponents, sets,

series, derivatives, limits Abstract Data types Basic object oriented design concepts

abstraction, encapsulation, modularity

Page 6: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 6

Skills Assumed We assume you know how to

program in Java can design, implement, test, debug, read,

understand and document relatively simple Java programs

including simple recursive code This is not a course on Java. If you don’t

know Java, start learning it now, before the programming assignments are due! Books, tutorials on the web, etc. Chapter 1 of our text book (Goodrich&Tamassia)

gives a good introduction to Java

Page 7: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 7

What will you learn?

Analysis of moderately complex algorithms How to predict algorithm’s performance

time and space complexity Algorithm correctness

Moderately complex data structures that let us efficiently store, access, manage data

How to solve practical problems efficiently by choosing the appropriate data structures and algorithms

Page 8: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 8

Topics Covered Analysis of algorithms

Time and space complexity Correctness

Data Structures Dictionaries, hash tables Priority queues and heaps Trees, binary search trees, multi-way search trees Graphs

Algorithms Binary Search, sorting, algorithms on trees and

graphs Java Interfaces; Java exceptions

Page 9: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 9

Contact Info

Instructor Information Olga Veksler Lectures: Tu 1:30-3:30, Th 2:30-3:30 Office hours: Wed 10-12

Lecture Notes Available on the course web page

Page 10: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 10

Contact Info

Course Web Page http://www.csd.uwo.ca/courses/CS2210b

You are responsible for checking the course web page frequently

I will post any important announcements on the web page (about homework, exams, etc.)

Page 11: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 11

Discussion board

I have set up a discussion board for the course (link from the course web page)

Use it to ask any questions about the course You can post anonymously You should also feel free to reply to other student’s

questions If you have a question about homework

Post it on the discussion board Come talk to me or the TA Please do not email me about homework, unless it

is to set up a meeting outside the office hours

Page 12: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 12

Course Prerequisites

Computer Science 1027a/b or 1037a/b with grade of at least 60%

One full-course equivalent from Calculus 1050a/b, 1051a/b, 1081a/b, Linear

Algebra 1040a/b, Applied Mathematics 1026, Mathematics 030, the former Mathematics 1027, 1023a/b,1024a/b, the former Mathematics 1027

Knowledge of Java

Page 13: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 13

Textbook

Required: Data Structures and Algorithms in Java, fifth edition, Goodrich and Tamassia, John Wiley & Sons, 2010

Supplementary: Data Structures and Algorithms with Object

Oriented Design Patterns in Java, Bruno R. Preiss, Wiley, 2000

The Java Programming Language, Arnold and Gosling, Addison-Wesley, 1996.

Java, an Object Oriented Approach, Arnow and Weiss, Addison-Wesley, 1999.

Other books listed on the course web site

Page 14: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 14

Student Evaluation Assignments 36%

2 concept assignments, each worth 3% 3 programming assignments, each worth 10%

Tentative Midterm Date 29%, 2 hours Tuesday, February 28, in class Final Exam 35%, 3 hours

If an assignment has to be cancelled, the remaining assignment weights will be readjusted, if the midterm has to be cancelled, final exam will be worth 64%

Page 15: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 15

Student Evaluation To be eligible to pass this course need

45% weighted average on the midterm and final exams and

45% weighted average on assignments To be eligible for an overall grade of 60%

or higher, need 55% weighted average on the midterm and

final exams and 55% weighted average on assignments

Page 16: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 16

Tentative Assignments Schedule

Assignment 1 (concept) due January 24 Assignment 2 (programming) due

February 9 Assignment 3 (concept) due February 14 Assignment 4 (programming) due March

15 Assignment 5 (programming) due April 5

Page 17: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 17

Tentative Assignments Schedule

Paper copy of assignments are due in class on the due date or electronically on webct

Programming assignments are to be submitted electronically on webct

Page 18: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 18

Exam Policies

There is no makeup for the Midterm, except for students requesting a special midterm exam for religious reasons. These students must have notified the course instructor and filed documentation with their Dean’s office at least 2 weeks prior to the Midterm Exam

If you miss Midterm for any other valid reason, present documentation to the Dean’s office; your Final exam score will be re-weighted to include the weight of the Midterm

Page 19: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 19

Class Attendance

Not required, but strongly encouraged Lecture notes is only a summary of

things happening in class, will not contain many examples

Students who attend lectures tend to do better

Attending lecture is most efficient way to learn the required material

Page 20: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 20

Assignments

Will be posted on the web site Concept Assignments

Each concept assignment consists of a set of exercises. It must be typed or neatly written

Programming assignments Due by 11:59 pm on the due date Java programs Must run on the departmental computing

equipment Hand in using electronic submission procedures,

to be described later

Page 21: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 21

Late Policy

Concept Assignments No late concept assignments accepted

Programming assignments 1 day late: 5% 2 days late: 10% 3 days late: 15% 4 days late: 20% 5 days late: not accepted Saturday and Sunday count as one day

Page 22: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 22

Late Policy

Assignment extensions may be granted only by the course instructor

If you have serious medical or compassionate grounds for an extension, take the supporting documentation to the Dean of your faculty

Page 23: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 23

Assignment Marks Appeals

Address appeals to the TA first. If you and the TA cannot agree, then TA will discuss the situation with the instructor

Appeals must occur within 1 week from the first day that the marked assignments were made available to students. After 1 week, no appeals will be considered

Page 24: CS2210 Data Structures and Algorithms Lecture 1:  Course Overview

Analysis of Algorithms 24

Ethical Conduct All assignments are to be done individually Assignments judged to be the result of academic

dishonesty will, First offence = -assignment weight Second offence = failing mark

You are responsible for reading and respecting the Computer science Department’s policy on Scholastic Offences

http://www.csd.uwo.ca/UnderGrad/scholastic_offences.shtml We have sophisticated software which will

examine your code against everyone else in class