Download CMSC 341 - WordPress.com

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Data Structures and
Algorithms in Java
AlaaEddin 2012
Road Map for Today


Welcome to Introduction to Data
Structures
Course Description



Administrative Issues


What material will we cover?
What am I getting myself into?
Course Web Page, Text Book, Office Hours,
Homework, Grading, etc.
Syllabus
2
Prerequisites

Java Programming




Class design
Operator overloading
Pointers and dynamic memory management
Discrete Mathematics and Basic Calculus
1/2/2012
Intro
3
Course Description

Official Description: The use and design of data
structures, which organize information in computer
memory. Stacks, queues, linked lists, binary trees: how
to implement them in a high level language, how to
analyze their effect on algorithm efficiency, and how to
modify them. Programming assignments.
4
Course Goals

At the end of the course, students are able to



1/2/2012
Analyze the correctness and computational
complexity of computer algorithms.
Design (specify and implement) efficient
advanced Data Structures.
Know advanced design techniques and their
nontrivial application to classic problems of
searching, sorting, graph optimization, and
combinatorial optimization.
Intro
5
What the class is really about
There are two main goals of this course:
I.
Foundations of Abstract Data Types (ADT)
a)
b)
II.
What is a data structure?
Examples of data structures and their real world
uses.
Foundations of Asymptotic Analysis
a)
b)
How do we rate the efficiency of an algorithm?
How does choosing the right ADT effect an
algorithm's efficiency?
6
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
7
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/
8
Administrative Matters
9
Course Web Site
Course web site is available at:
http://amabhouh.wordpress.com/category/cours
es/data-structures-in-java/
Web site contains the following information:








Administrative information
Course Syllabus
Assignments
Lecture slides
Projects
Lab Exercises
Announcements
10
Course Text Book

Data Structures and Algorithms in Java, 2/E

by Robert Lafore

ISBN: 0672324539

Publisher: Sams Publishing
Copyright: 2003



Lecture notes will loosely follow the book.
Please keep up with the reading!
11
Software

For the course you can use an IDE of your
choice. In class I will may use any of the
following IDE’s:




JCreator
Eclipse
Netbeans
All three products can be downloaded from
the web for free.
12
Grading



There will be a series of homework
assignments.
There will be midterm and a final exams.
Your grade will be determined as follows:




Group assignment (20%)
Midterm exam (20%)
Final exam (60%)
Class participation will help your grade!
13
Assignment




If you do not do the assignment, you cannot pass the
course.
If assignment is late, 25 points are deducted.
After one week of lateness, assignment will not be
accepted.
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.
14
A Word About Cheating

Discussing assignment concepts is fine, but
you must submit your own work.

If you are caught cheating, you will receive
an immediate FAILURE for the course.
15
Student 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 cell-phones off!
16
Getting Help




Help is always available!
Option 1: Come to my Office Hours
 Saturday and Monday 12:00 - 2:00 (I may
change the time of my office hours – the
course site will always be up to date)
 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 my email
 [email protected]
Option 3: Our Lab session.
17
Syllabus

Here is a list of the topics we will cover:












Overview of Data Structure
Arrays
Simple Sorting
Stacks and Queues
Linked Lists
Recursion
Advanced Sorting
Binary Trees
Red-Black Trees
Hash Tables
Heaps
Graphs
18
Question and Answer Session
Q&A
Slide 19 of 15
Recitation



This class has a mandatory recitation. If you
are not registered for the recitation, you must
do so.
Recitation will be led by our TA. We have not
been assigned a TA yet. Until a TA is
assigned, I will lead the sessions.
Recitation for this week is cancelled.
20