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

Similar documents
Algorithms and Data Structures Spring 2008

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

CISC 3130 Data Structures 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

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

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

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

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

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

AP Computer Science 4325

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

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

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

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

CSC 111 Introduction to Computer Science (Section C)

AP Computer Science AB

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

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

COLLEGE OF THE DESERT

CSc 2310 Principles of Programming (Java) Jyoti Islam

ECE250: Algorithms and Data Structures Midterm Review

About this exam review

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

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

CPSC 2380 Data Structures and Algorithms

CSC2100-Data Structures

CISC 3130 Data Structures Spring 2018

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

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

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

CS 206 Introduction to Computer Science II

Summer Final Exam Review Session August 5, 2009

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

INSTITUTE OF AERONAUTICAL ENGINEERING

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

INF 315E Introduction to Databases School of Information Fall 2015

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

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

Introduction to Data Structures

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

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

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

CS 110H COMPUTER SCIENCE I HONORS Weisberg Division of Computer Science College of Information Technology & Engineering Marshall University

SYLLABUS Type of evaluation

FOUNDATIONS OF INFORMATION SYSTEMS MIS 2749 COURSE SYLLABUS Fall, Course Title and Description

CENTRAL TEXAS COLLEGE COSC 1337 PROGRAMMING FUNDAMENTALS II. Semester Hours Credit: 3

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

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

INFS 2150 (Section A) Fall 2018

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

CS503 Advanced Programming I CS305 Computer Algorithms I

CS 241 Data Organization using C

COMP Data Structures

San Jose State University - Department of Computer Science

You must pass the final exam to pass the course.

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

(the bubble footer is automatically inserted in this space)

COMP Data Structures

CS Computer Science I

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

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

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

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

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

CS302 Data Structures using C++

St. MARTIN s ENGINERING COLLEGE Dhulapally,Secunderabad

APJ ABDUL KALAM TECHNOLOGICAL UNIVERSITY THIRD SEMESTER B.TECH DEGREE EXAMINATION, JULY 2017 CS205: DATA STRUCTURES (CS, IT)

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

CSC 210 COMPUTER SCIENCE II

Java 2. Course Outcome Summary. Western Technical College. Course Information. Course History. Course Competencies

COMP Analysis of Algorithms & Data Structures

DATA STRUCTURES THROUGH C++

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

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1 and 2, Spring 2016

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

San José State University Department of Computer Science CS166, Information Security, Section 1, Fall, 2018

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

Data Structures and Abstractions with Java

Basics of Java Programming CS129 LTPC:

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

DATA ABSTRACTION AND PROBLEM SOLVING WITH JAVA

Computer Programming II C++ (830)

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].

During the first 2 weeks of class, all students in the course will take an in-lab programming exam. This is the Exam in Programming Proficiency.

University of Waterloo Department of Electrical and Computer Engineering ECE250 Algorithms and Data Structures Fall 2014

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

MIDTERM EXAM THURSDAY MARCH

CSC 1052 Algorithms & Data Structures II: Introduction

CS302 Data Structures using C++

CS 4349 Lecture October 18th, 2017

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

CS 445: Data Structures Final Examination: Study Guide

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

Updated: 2/14/2017 Page 1 of 6

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

Course Syllabus for CS3358 (Data Structures and Algorithms) by Lee S. Koh

A6-R3: DATA STRUCTURE THROUGH C LANGUAGE

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Transcription:

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science Semester and Year: Fall 2008 Classroom Section, Meeting Times, and Location: Section: 101 Days: MW Time: 2:00-3:15 Location: GH211 Instructors: Professor Joe Fuller Dr. Sarita Bassil Office: 205B Gullickson Hall Office: 207N Gullickson Hall Phone: 304-696-6204 Phone: 304-696-5444 Email: fullerj@marshall.edu Email: bassil@marshall.edu Class Webpage: http://users.marshall.edu/~bassil Textbook: Koffman and Wolfgang, Objects, Abstraction, Data Structures, and Design Using Java, Version 5.0, John Wiley & Sons, Inc., 2005 ISBN 0-471-69264-5 Approximate Schedule: Topic Class meetings Program Correctness 2-3 sessions Efficiency of Algorithms 2 sessions Inheritance 2-3 sessions Exam I ~ Week of September 22 Lists and Collections 3-4 sessions Stacks and Queues 1-2 sessions Recursion 1-2 sessions Exam II ~ Week of October 27 Trees Hash Tables Sorting Self-Balancing Trees Final Exam 4 sessions 1-2 sessions 2 sessions 4 sessions ~ Mid-December 1/8

Material for Midterm Exam 1 I. 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? Evaluation: 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. II. 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(log n), O(n log n), 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. Evaluation: 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. 2/8

III. 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. Evaluation: 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, and III. 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. 3/8

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 4/8

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. 5/8

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 the final exam, students will be asked to demonstrate their knowledge of a. Trees and associated definitions such as root, node, height, path, sub-tree, 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 the final exam, 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. 6/8

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 the final exam, 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. What is a 2-3 tree and how to specify it h. What is a B-Tree and how to specify it 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. 7/8

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. Final Grades 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 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. 8/8