Algorithms and Data Structures Fall 2007 Weisberg Division of Engineering and Computer Science Marshall University

Similar documents
Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

DATA STRUCTURES USING C

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

Java Software Structures

AP Computer Science AB Syllabus 1

BCS2B02: OOP Concepts and Data Structures Using C++

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Exercises Software Development I. 11 Recursion, Binary (Search) Trees. Towers of Hanoi // Tree Traversal. January 16, 2013

Data Structure [Question Bank]

ECE 250 Data Structures and Algorithms MIDTERM EXAMINATION /5:15-6:45 REC-200, EVI-350, RCH-106, HH-139

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

Binary Search Trees CMPSC 122

Questions 1 through 25 are worth 2 points each. Choose one best answer for each.

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

PES Institute of Technology-BSC QUESTION BANK

10CS35: Data Structures Using C

Lewis, Loftus, and Cocking. Java Software Solutions for AP Computer Science 3rd Edition. Boston, Mass. Addison-Wesley, 2011.

Binary Search Trees. Ric Glassey

Java SE 8 Programming

Data Structures. Level 6 C Module Descriptor

CSE373: Data Structures and Algorithms Lecture 1: Introduction; ADTs; Stacks/Queues. Linda Shapiro Spring 2016

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Introduction Advantages and Disadvantages Algorithm TIME COMPLEXITY. Splay Tree. Cheruku Ravi Teja. November 14, 2011

Android Application Development Course Program

Ordered Lists and Binary Trees

Persistent Binary Search Trees

Binary Search Trees. Data in each node. Larger than the data in its left child Smaller than the data in its right child

CompSci-61B, Data Structures Final Exam

A Comparison of Dictionary Implementations

Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A

DIVISION OF INFORMATION TECHNOLOGY PROGRAMS AND SYSTEMS SUPPORT FALL 2015 / Spring 2016

Sorting revisited. Build the binary search tree: O(n^2) Traverse the binary tree: O(n) Total: O(n^2) + O(n) = O(n^2)

Algorithms Chapter 12 Binary Search Trees

Java EE Web Development Course Program

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

1. The memory address of the first element of an array is called A. floor address B. foundation addressc. first address D.

From Last Time: Remove (Delete) Operation

PLV Goldstein 315, Tuesdays and Thursdays, 6:00PM-7:50PM. Tuesdays and Thursdays, 4:00PM-5:30PM and 7:50PM 9:30PM at PLV G320

Data Structures and Data Manipulation

Basic Programming and PC Skills: Basic Programming and PC Skills:

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

International Journal of Software and Web Sciences (IJSWS)

Binary Heap Algorithms

Data Structure and Algorithm I Midterm Examination 120 points Time: 9:10am-12:10pm (180 minutes), Friday, November 12, 2010

Computing Concepts with Java Essentials

CSE 2123 Collections: Sets and Iterators (Hash functions and Trees) Jeremy Morris

A binary heap is a complete binary tree, where each node has a higher priority than its children. This is called heap-order property

Data Structures and Algorithms

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

2) What is the structure of an organization? Explain how IT support at different organizational levels.

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

LeMoyne-Owen College Division of Natural and Mathematical Sciences COMPUTER ALGORITHMS, COSI 335 Fall Syllabus

Algorithms and Data Structures

Domains and Competencies

1 FCS Project Submission System

Data Structures and Algorithms Written Examination

Lecture Notes on Binary Search Trees

Exam study sheet for CS2711. List of topics

Data Structures in Java. Session 15 Instructor: Bert Huang

Analysis of Algorithms I: Binary Search Trees

INDIVIDUAL MASTERY for: St#: Test: CH 9 Acceleration Test on 29/07/2015 Grade: B Score: % (35.00 of 41.00)

INDIVIDUAL MASTERY for: St#: Test: CH 9 Acceleration Test on 09/06/2015 Grade: A Score: % (38.00 of 41.00)

Curriculum Map. Discipline: Computer Science Course: C++

Symbol Tables. Introduction

CS 2112 Spring Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

How To Create A Tree From A Tree In Runtime (For A Tree)

To My Parents -Laxmi and Modaiah. To My Family Members. To My Friends. To IIT Bombay. To All Hard Workers

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. Course Curriculum. DATA STRUCTURES (Code: )

Heaps & Priority Queues in the C++ STL 2-3 Trees

Data Structures in the Java API

02-201: Programming for Scientists

Computer. Course Description

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

Computer Science 210: Data Structures. Introduction

Why Use Binary Trees?

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

Lecture 6: Binary Search Trees CSCI Algorithms I. Andrew Rosenberg

Introduction to Data Structures

An Introduction to Programming and Computer Science

CS 261 C and Assembly Language Programming. Course Syllabus

CS 2302 Data Structures Spring 2015

Home Page. Data Structures. Title Page. Page 1 of 24. Go Back. Full Screen. Close. Quit

Binary Search Trees 3/20/14

1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders

CSE 326: Data Structures B-Trees and B+ Trees

Big Data and Scripting. Part 4: Memory Hierarchies

IT 106 Introduction to IT Problem Solving Using Computer Programming revised

B+ Tree Properties B+ Tree Searching B+ Tree Insertion B+ Tree Deletion Static Hashing Extendable Hashing Questions in pass papers

FOPR-I1O23 - Fundamentals of Programming

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science

CS 340 Cyber Security Weisberg Division of Computer Science College of Information Technology & Engineering Marshall University

5. A full binary tree with n leaves contains [A] n nodes. [B] log n 2 nodes. [C] 2n 1 nodes. [D] n 2 nodes.

Statistics and Measurements I (3 Credits) FOR College of Agriculture, Food and Environment Department of Forestry

COMPSCI 105 S2 C - Assignment 2 Due date: Friday, 23 rd October 7pm

Lecture 2: Data Structures Steven Skiena. skiena

S. Muthusundari. Research Scholar, Dept of CSE, Sathyabama University Chennai, India Dr. R. M.

Lecture 1: Data Storage & Index

Binary Heaps. CSE 373 Data Structures

Outline BST Operations Worst case Average case Balancing AVL Red-black B-trees. Binary Search Trees. Lecturer: Georgy Gimel farb

Transcription:

Queues Trees Stacks Recursion Efficiency Correctness Hash Tables etc Algorithms and Data Structures Fall 2007 Weisberg Division of Engineering and Computer Science Marshall University Page 1

Instructor: Joe Fuller Office: 205B Gullickson Hall Phone: 696-6204 Email: fullerj@marshall.edu Webpage: http://users.marshall.edu/~fullerj Algorithms and Data Structures Fall 2007 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? Page 2

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 Page 3

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. Page 4

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 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 Page 5

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. Page 6

Material for Midterm Exam Three 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. Page 7

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 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. Midterm Three Midterm two will be given on the topics I, II, III, and IV 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 Page 8

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 70% and the lab-homeworkattendance score by 30%. Page 9