Algorithms and Data Structures Spring 2008

Similar documents
CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3

About this exam review

AP Computer Science AB

AP Computer Science 4325

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Table of Contents. Chapter 1: Introduction to Data Structures... 1

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

Introduction to Programming System Design CSCI 455x (4 Units)

CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators)

CISC 3130 Data Structures Fall 2018

Summer Final Exam Review Session August 5, 2009

CSE 332 Spring 2014: Midterm Exam (closed book, closed notes, no calculators)

Quantitative Finance COURSE NUMBER: 22:839:615 COURSE TITLE: Special Topics Oriented Programming 2

ECE250: Algorithms and Data Structures Midterm Review

UNIVERSITY OF WATERLOO DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING E&CE 250 ALGORITHMS AND DATA STRUCTURES

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

Total No. of Questions :09] [Total No. of Pages : 02. II/IV B.Tech. DEGREE EXAMINATIONS, NOV/DEC First Semester CSE/IT DATA STRUCTURES USING C

CSC2100-Data Structures

Introduction p. 1 Pseudocode p. 2 Algorithm Header p. 2 Purpose, Conditions, and Return p. 3 Statement Numbers p. 4 Variables p. 4 Algorithm Analysis

SYLLABUS Type of evaluation

CSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators)

17 February Given an algorithm, compute its running time in terms of O, Ω, and Θ (if any). Usually the big-oh running time is enough.

INSTITUTE OF AERONAUTICAL ENGINEERING

CS251-SE1. Midterm 2. Tuesday 11/1 8:00pm 9:00pm. There are 16 multiple-choice questions and 6 essay questions.

Data Structures and Abstractions with Java

CPSC 2380 Data Structures and Algorithms

CS 206 Introduction to Computer Science II

CS503 Advanced Programming I CS305 Computer Algorithms I

3D Graphics Programming Mira Costa High School - Class Syllabus,

Assume you are given a Simple Linked List (i.e. not a doubly linked list) containing an even number of elements. For example L = [A B C D E F].

CS 61B Summer 2005 (Porter) Midterm 2 July 21, SOLUTIONS. Do not open until told to begin

Computer Programming II C++ (830)

CSE Data Structures and Introduction to Algorithms... In Java! Instructor: Fei Wang. Mid-Term Exam. CSE2100 DS & Algorithms 1

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

CSE373: Data Structures & Algorithms Lecture 28: Final review and class wrap-up. Nicki Dell Spring 2014

CPSC 211, Sections : Data Structures and Implementations, Honors Final Exam May 4, 2001

Samples of Evidence to Satisfy the AP Computer Science AB Curricular Requirements

A6-R3: DATA STRUCTURE THROUGH C LANGUAGE

COMP Data Structures

Bachelor Level/ First Year/ Second Semester/ Science Full Marks: 60 Computer Science and Information Technology (CSc. 154) Pass Marks: 24

COMP Data Structures

COMP Analysis of Algorithms & Data Structures

DATA ABSTRACTION AND PROBLEM SOLVING WITH JAVA

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D

CISC 3130 Data Structures Spring 2018

Final Examination CSE 100 UCSD (Practice)

CS302 Data Structures using C++

CSE 373 APRIL 17 TH TREE BALANCE AND AVL

CS 2150 Final Exam, Spring 2018 Page 1 of 10 UVa userid:

CSc 2310 Principles of Programming (Java) Jyoti Islam

Implementing Hash and AVL

Introduction to Data Structures

Spring 2003 Instructor: Dr. Shahadat Hossain. Administrative Matters Course Information Introduction to Programming Techniques

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CS301 - Data Structures Glossary By

CS 445: Data Structures Final Examination: Study Guide

COLLEGE OF THE DESERT

BINARY HEAP cs2420 Introduction to Algorithms and Data Structures Spring 2015

COSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)

Data_Structures - Hackveda

Computer Programming II Python

Course goals. exposure to another language. knowledge of specific data structures. impact of DS design & implementation on program performance

St. MARTIN s ENGINERING COLLEGE Dhulapally,Secunderabad

Selection, Bubble, Insertion, Merge, Heap, Quick Bucket, Radix

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

PROGRAMMING IN C++ (Regulation 2008) Answer ALL questions PART A (10 2 = 20 Marks) PART B (5 16 = 80 Marks) function? (8)

(the bubble footer is automatically inserted in this space)

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

(the bubble footer is automatically inserted in this space)

Hash table basics mod 83 ate. ate. hashcode()

AP COMPUTER SCIENCE AB

Tribhuvan University Institute of Science and Technology Computer Science and Information Technology (CSC. 154) Section A Attempt any Two questions:

CS 251, LE 2 Fall MIDTERM 2 Tuesday, November 1, 2016 Version 00 - KEY

A6-R3: DATA STRUCTURE THROUGH C LANGUAGE

CSCE 2014 Final Exam Spring Version A

Introduction hashing: a technique used for storing and retrieving information as quickly as possible.

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Announcements. 1. Forms to return today after class:

The questions will be short answer, similar to the problems you have done on the homework

MIDTERM EXAM THURSDAY MARCH

BRONX COMMUNITY COLLEGE of the City University of New York DEPARTMENT OF MATHEMATICS AND COMPUTER SCIENCE. Sample Final Exam

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

AP Computer Science Course Syllabus

Announcements. Last modified: Thu Nov 29 16:15: CS61B: Lecture #40 1

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Topics for CSCI 151 Final Exam Wednesday, May 10

CSE 332 Winter 2015: Midterm Exam (closed book, closed notes, no calculators)

CSE 373 Spring Midterm. Friday April 21st

CS 112 Final May 8, 2008 (Lightly edited for 2012 Practice) Name: BU ID: Instructions

CSC 1052 Algorithms & Data Structures II: Introduction

ASSIGNMENTS. Progra m Outcom e. Chapter Q. No. Outcom e (CO) I 1 If f(n) = Θ(g(n)) and g(n)= Θ(h(n)), then proof that h(n) = Θ(f(n))

CLASSIC DATA STRUCTURES IN JAVA

Beginning Programming (Two Semesters) Semester One. Module One: Intro to Beginning Programming. Module Two: Computer Careers

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

Transcription:

Algorithms and Data Structures Spring 2008 Instructors: Professor Joe Fuller Dr. Sarita Bassil Office: 205B Gullickson Hall 207 Gullickson Hall Phone: 696-6204 696-5444 Email: fullerj@marshall.edu bassil@marshall.edu Class Webpage: http://users.marshall.edu/~fullerj Approximate Schedule Spring 2008 Topic Class meetings Lecturer Software Engineering 3 4 sessions J. Fuller Program Correctness 3 4 sessions S. Bassil Efficiency of Algorithms 3 sessions S. Bassil Inheritance 3 4 sessions J. Fuller Exam I Lists and Collections 5 6 sessions S. Bassil Stacks and Queues 1 2 sessions J. Fuller Recursion 1 2 sessions J. Fuller Exam II Trees 6 sessions S. Bassil Hash Tables 1 2 sessions J. Fuller Sorting 2 3 sessions S. Bassil Self Balancing 6 sessions J. Fuller Final Exam Material for Midterm Exam 1 I. Software Engineering Reading: The student should read the following sections of the text: 1.1, 1.2, 1.3, 1.4 Objectives: In this section, the student will learn to answer the following questions: a. What is software engineering? b. Why is software engineering needed? c. What is a software lifecycle? d. What are the steps in some software lifecycle models? e. What is procedural abstraction? f. What is data abstraction? g. What is a Java Interface? h. How are interfaces useful in Software engineering? i. What is the implements clause?

The student will be able to talk fluently about the field of software with potential employers or other software professionals. Evaluations: In order to evaluate the student s success in mastering the concepts of software engineering 1. Any or all of the following will be part of the first midterm exam: a. The student will be asked to write a complete definition of software engineering. b. The student will be asked to write a description of one or more software lifecycles c. The student will be asked to define procedural and data abstraction d. The student will be asked to explain the importance of data and procedural abstraction 2. The student will write Java program(s) that show they have mastered the use of an interface. 3. The students will write their own Java interface(s) II. Program Correctness and Efficiency Reading: The student should read the following sections of the text: 2.1 2.7 Objectives: In this section, the student will learn to answer the following questions: a. What are bugs and defects? b. What is the difference between a run time error and a syntax error? c. Describe the Java Exception class d. What is meant by throw, catch, try, and finally? e. Why is testing a program so important? f. What are some of the commonly used methods of testing a program? g. What are stubs? What are drivers? h. Who should test a program? When should a program be tested? How should a program be tested? Evaluations: In order to evaluate the student s success in mastering the topics listed above: 1. Any or all of the following will be part of the first midterm exam a. Define bugs and defects. b. Define run time errors and syntax errors and explain the difference. c. Describe the use of try-catch-finally blocks. d. Describe stubs and drivers. Describe how a software system should be tested. The student will write Java programs that use try-catch-finally blocks. The student will be asked to demonstrate that he/she can use debuggers in his/her Java IDE III. Efficiency of Algorithms Reading: The student should read section 2.8 of the text Objectives: In this section, the student will learn to: a. Define Big O notation. b. The student will be able to define O(1), O(n), O(n 2 ), O(logn), O(nlogn), and O(n!) c. The student will be able to determine the big O for selected algorithms d. The student will be able to explain why Big-O notation is important

Evaluations: In order to evaluate the student s success in mastering the material listed above: 1 The student will demonstrate his/her mastery of the terms listed above on the first midterm exam 2 The student will do lab exercises that demonstrate his/her understanding of the importance of Big O to software engineering IV. Inheritance Reading: The student should read sections 3.1 3.4, 3.6-3.8 Objectives: In this section the student will review the concepts of inheritance, derived classes, abstract classes, the cosmic class Object, and packages. Evaluations: In order to evaluate the student s success in mastering the material in the above list 1. On midterm one, the student will provide definitions and discussion of the following terms: a. The is a relationship b. The has a relationship c. The Object class d. Overriding and overloading methods e. Casting and cloning 2. The student will write Java program(s) that demonstrate proficiency in using inheritance, overriding, overloading, casting and cloning. Midterm One Midterm one will be given on the topics I, II, III, and IV. It will be scaled to be worth 100 points. It will count 1/3 of the final test average. Programming and Lab assignments in this section will count toward the final programming average.

Material for Midterm Exam 2 I. Lists and Collections Reading: The student should read sections 4.1, 4.3-4.8 Objectives: Students will learn a. The abstract list and abstract collection b. The List and Collection interfaces c. How to define and implement a linked list d. How to define and implement a doubly linked list e. The ArrayList class f. How to use the Java LinkedList class Evaluation: In order to evaluate the student s success in mastering the material in the above list 1. On midterm two, students will be asked questions that demonstrate their knowledge of a. Lists (ordered and unordered) b. Collections c. List and Collection interfaces d. Linked and doubly linked lists 2. Students will write a Java program that implements generic data structure 3. Students will be asked to demonstrate their proficiency with the Java LinkedList class II. Stacks and Queues Reading: The student should read sections 5.1, 5.2, 6.1, and 6.2 Objectives: Students will learn a. The specifications for a queue and for a stack b. The students will learn how to use Java Library classes for queue and stack applications c. How to implement stacks and queues with a linked list class 1. On midterm two, students will be asked to demonstrate their knowledge of a. Queues definition and specification b. Stacks definition and specification c. Applications appropriate for queues d. Applications appropriate for stacks 2. Students will write at least one Java program to implement a stack or a queue 3. Students will be asked to demonstrate proficiency with the Java Library classes that implement stacks and queues III. Recursion Reading: The student should read sections 7.1-7.3 carefully. Students should scan sections 7.4-7.6

Objectives: Students will learn the following: a. What is a recursive function in mathematics? What is a recursive function in Java (C, C++, etc) b. How to write recursive functions in Java c. When it is it appropriate to use recursion? When is it not appropriate? d. How to compare and contrast recursive methods with iterative methods e. Students will see examples of recursion including calculation of n!, array searching, and the Towers of Hanoi. 1. On midterm 2, students will be asked to demonstrate their knowledge of Recursive functions and recursive function definitions Advantages and disadvantages of recursion 2. Students will be asked to write at least one Java program that uses recursion to solve a problem Midterm Two Midterm two will be given on the topics I, II, and III above. It will be scaled to be worth 100 points. It will count 1/3 of the final test average. Programming and Lab assignments in this section will count toward the final programming average.

Material for Final Exam I. Trees Reading: The student should read sections 8.1-8.4 carefully. Students should scan sections 8.5 and 8.6 Objectives: Students will learn the following: a. Basic definitions of trees and binary trees b. Tree traversal in order, post order, and pre order c. How to specify a binary tree d. How to specify a binary search tree 1. On midterm 3, students will be asked to demonstrate their knowledge of a. Trees and associated definitions such as root, node, height, path, subtree, balanced tree, complete tree, etc b. Methods of tree traversal c. How to insert, delete, and retrieve nodes in a binary (search) tree 2. Students will be asked to write a Java program that implements a binary search tree. The program will be written so that the tree can store data from any class. II. Hash Tables Reading: Students should read sections 9.1-9.3 Objectives: Students will learn the following a. The Java Set Interface and the Java Map Interface b. Definition of a Hash Table c. Issues associated with a hash table including collisions, chaining, probing, and hashing functions d. Students will be able to compare and contrast hash tables with linked lists, arrays, and binary search trees 1. On midterm 3, students will be asked to demonstrate a. Their knowledge of the definitions of Maps, Sets, and Hash tables b. How to implement a hash table c. Their knowledge of the characteristics of a good hash table d. Their knowledge of collisions in a hash table and how to deal with them 2. Students will be given several lab and homework exercises to demonstrate their grasp of the concepts from this section.

III. Sorting Reading: Students should read sections 10.1-10.9. Objectives: Students will learn to a. Describe and implement selection sort, bubble sort, insertion sort, Shell sort, Merge sort, and Quick Sort b. Students will learn the Big Oh() associated with each sort c. Students will use the sort method of the Java Arrays class d. Students will learn to compare and contrast any two of the sorts listed in item a 1. On midterm 3, students will be asked to demonstrate a. Their knowledge of the each of the sorts covered in item a in the objectives. Students may be expected to use a by hand walk through for this purpose b. Their ability to compare and contrast the sorts c. Their knowledge of the efficiency of each sorting method 2. Students will be given several lab and homework exercises to demonstrate their grasp of the concepts from this section.. IV. Self Balancing Trees Reading: The student should read sections 11.1, 11.2, and 11.3 Objectives: In this section the student will learn a. Why a balanced tree is desirable b. What it means to do rotations about a node in a tree c. What an AVL tree is d. How to specify an AVL tree e. What a Red-Black tree is f. How to specify a Red-Black tree g. kd trees h. BSP trees 1. On midterm 3, students will be asked to demonstrate a. Their knowledge of why balanced trees are important b. Their knowledge of an AVL tree c. Their knowledge of algorithms to balance a tree using AVL algorithms 2. Students will be given several lab and homework exercises to demonstrate their grasp of the concepts from this section. Final Exam The final exam will cover topics I-IV above and topics from Exams I and II. Fifty percent of the

exam will be devoted to the material covered since Exam II. The other fifty percent will be cumulative and will cover Exams I and II. It will be scaled to be worth 150 points. It will count 1/3 of the final test average. Programming and Lab assignments in this section will count toward the final programming average. Attendance, participation, and Decorum Students are expected to behave as if the class is a business meeting. This means Attend and participate in every class. Arrive on time to class Do not sleep during class Leave class only when the class has been dismissed by the instructor Turn cell phone and pagers off before class starts Keep laptops turned off during discussions and lectures Refrain from eating during class. Students may bring drinks that have proper lids. Final Grades Final grades will be determined by weighting the test average by 60%. Homework, quizzes, and labs will be weighted by 30%. The final 10 percent is reserved for attendance and decorum.