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

Similar documents
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

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

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

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

CISC 3130 Data Structures Fall 2018

CS 445: Data Structures Final Examination: Study Guide

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

Algorithms and Data Structures Spring 2008

CSC2100-Data Structures

AP Computer Science 4325

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

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

CS503 Advanced Programming I CS305 Computer Algorithms I

COLLEGE OF THE DESERT

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

CPSC 2380 Data Structures and Algorithms

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

Computer Programming II C++ (830)

Algorithms and programs, basic idea of pseudo-code.algorithm efficiency and analysis, time and space analysis of algorithms order notations.

CISC 3130 Data Structures Spring 2018

ECE Object-Oriented Programming using C++ and Java

Virtual University of Pakistan

COMP Analysis of Algorithms & Data Structures

COMP Data Structures

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

COMP Data Structures

COMP 2150 CS 2: Object-Oriented Programming and Data Structure Fall 2018 Dr. James Yu

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

Course Name: B.Tech. 3 th Sem. No of hours allotted to complete the syllabi: 44 Hours No of hours allotted per week: 3 Hours. Planned.

CS 206 Introduction to Computer Science II

CSC 216 Data Structures Dr. Melissa Wiggins MCC 306 (601)

DATA STRUCTURES THROUGH C++

Department of Information Technology. II B.Tech I Sem. DATA STRUCTURES THROUGH C++ (Subject code# 53023) Dept of IT

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

CSC 210 COMPUTER SCIENCE II

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

Cpt S 223 Fall Cpt S 223. School of EECS, WSU

Big Java Late Objects

CMPE/SE 135 Object-Oriented Analysis and Design

Course Review. Cpt S 223 Fall 2009

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

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

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

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

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 25: Review and Open Problems

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

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

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

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

Course Review for Finals. Cpt S 223 Fall 2008

Computer Programming II Python

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

Home Works and Assignments

INFSCI 1017 Implementation of Information Systems Spring 2017

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

Course Review. Cpt S 223 Fall 2010

COMP 250. Lecture 36 MISC. - beyond COMP final exam comments

CSC 111 Introduction to Computer Science (Section C)

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

CMSC132, Practice Questions

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

OBJECT ORIENTED DATA STRUCTURE & ALGORITHMS

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

CSCE 206: Structured Programming in C

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

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

ITT Technical Institute. SD1420 Introduction to Java Programming Onsite and Online Course SYLLABUS

Cleveland State University

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))

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

We don t have much time, so we don t teach them [students]; we acquaint them with things that they can learn. Charles E. Leiserson

Data Structures and Abstractions with Java

5/23/2015. Core Java Syllabus. VikRam ShaRma

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

Syllabus CSCI 405 Operating Systems Fall 2018

CSCE 321/3201 Analysis and Design of Algorithms. Prof. Amr Goneid. Fall 2016

ECE250: Algorithms and Data Structures Midterm Review

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

CGS 2405 Advanced Programming with C++ Course Justification

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

COURSE SYLLABUS BMIS 662 TELECOMMUNICATIONS AND NETWORK SECURITY

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

Instructor. Course Description. Learning Outcomes

CSCI 201L Syllabus Principles of Software Development Spring 2018

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

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

SYLLABUS Type of evaluation

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

Operating Systems, Spring 2015 Course Syllabus

Introduction to Data Structures

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

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

CS61BL. Lecture 5: Graphs Sorting

ESET 369 Embedded Systems Software, Fall 2017

San Jose State University - Department of Computer Science

I. PREREQUISITE For information regarding prerequisites for this course, please refer to the Academic Course Catalog.

About this exam review

Transcription:

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon Instructor Course name Credits Contact hours Text book Course Information Course Goals Jungsoo (Sue) Lim, Reem Alqahtani Email: jlim34@calstatela.edu Office hours: 1. Monday, Wednesday 9:00 AM 10:30 AM at E&T B10 2. Monday, Wednesday 4:00 PM 5:00 PM at E&T A310 3. By Appointment Programming with Data Structures 3 units 4 hours/week Required: Introduction to JAVA Programming, by: Daniel Liang, 10th Edition ISBN-13: 978-0-13-376131-3 a) Advanced programming techniques; elementary data structures such as dynamic arrays, linked lists, stacks, queues, and trees, sorting and searching algorithms. Laboratory activities on problem analysis and software development. b) Prerequisites: CS202 c) Recommended Prerequisite: Math 207, Math 248 d) This course is required in the BS program The Student Learning Outcomes that are addressed by the course are: SLO #2: Students will be able to demonstrate fluency in at least one programming language and acquaintance with at least three more. SLO #3: Students will have a strong foundation in the design, analysis, and application of many types of algorithms. SLO #5. Students will have the training to analyze problems and identify and define the computing requirements appropriate to their solutions. SLO #6. Students will have the training to design, implement, and evaluate large software systems working both individually and collaboratively. SLO #7. Students will be able to communicate effectively orally and in writing. Other outcomes of instruction: At the end of the course students are able to: Use recursion as a tool to solve some specific problems. Know the standard Abstract Data Types, and their implementations. Study and use different available JAVA Data Structures. Know the standard searching and sorting algorithms and their efficiency. Page 1 of 5

Brief list of topics to be covered Understand the complexity analysis for some simple software. Recursion Generics Java Collections Framework Algorithm Efficiency (brief) Sorting Lists, Stacks, Queues, and Priority Queues Binary Search Trees Graphs and Applications (Optional) Multithreading Laboratory Projects Out of class Assignments Quizzes Each week students will complete a 3-hour lab projects on selected topics, except the exam weeks. At the end of each lab students will turn in lab programming assignment. Each week students will have an assignment due on the following week, except the exam weeks. For these assignments students may required to complete an unfinished implementation, design/implement a system, produce system document (pseudo code, UML, etc), and prepare a user s manual. Each class will have in class quiz. Grading Policy Quizzes: 10% Laboratory assignments: 10 % Out of class assignments: 20% 2 Midterm: 30% Final: 30% A-, A 90 100 B-, B, B+ 80 89 C-,C,C+ 65 79 D,F <65 Academic Integrity ADA Statement Cheating will not be tolerated. Cheating on any assignment or exam will be taken seriously. All parties involved will receive a grade of F for the course and are reported to the proper authorities. Reasonable accommodation will be provided to any student who is registered With the Office of Students with Disabilities and requests needed accommodation. Page 2 of 5

CS203 Course Weekly Schedule Week Lecture topics 1 Review of Polymorphism and Java FX 2 Recursion (Ch 18) 3 Generics (Ch 19) Encapsulation data protection Inheritance super class/sub class, constructor chaining, overriding vs. overloading Polymorphism dynamic binding, declared type, actual type, casting (implicit casting/explicit casting, up casting/down casting) Java FX creating application, inserting components, adding event handlers, and adding UI controls. Review what a recursion method is and its benefits Develop recursive methods Review how recursive methods calls are handled in call stack. Solve problem using recursion Solve the Tower of Hanoi problem using recursion Draw fractals using recursion Review tail-recursive methods Define generic classes and interfaces Define and use generic methods and bounded generic types Develop a generic sort method to sort an array of Comparable objects Design and implement generic matrix classes 4 Java Collection Framework (Ch 20) Overview of Lists Overview of Stacks Overview of Queues Overview of Priority Queues Sets and Maps (Ch 21) Overview of HashSet, LinkedHashSet, and TreeSet Overview of HashMap, LinkedHashMap, and TreeMap 5 Developing efficient algorithms (Ch 22) Estimate algorithm efficiency using the Big O notation Determine the complexity of various types of algorithms Analyze the binary search algorithm Analyze the selection sort algorithm Page 3 of 5

6 Developing efficient algorithms (Ch 22) Continued Analyze the Tower of Hanoi algorithm Design efficient algorithms using dynamic programming Backtracking Midterm 1 7 Sorting (Ch23) Analyze time complexity of various sorting algorithms Design, implement, and analyze insertion sort Design, implement, and analyze bubble sort Design, implement, and analyze merge sort 8 Sorting (Ch23) - Continued Design, implement, and analyze quick sort Design, implement, and analyze heap sort Design, implement, and analyze bucket sort Design, implement, and analyze radix sort 9 Implementing Lists, Stacks, Queues, and Priority Queues (Ch 24) Design common features of lists in an interface and provide skeleton implementation in an abstract class Design and implement an array list using an array Design and implement a linked list using a linked structure Design and implement a stack class using an array list and queue class using a linked list Design and implement a priority queue using a heap 10 Binary Search Trees (Ch 25) Design and implement a binary search tree Search an element in a binary search tree Insert/delete an element into a binary search tree Traverse/display elements in a binary tree (in-order, pre-order, post-order, breath first traversal) Implement Huffman coding for compressing data using a binary tree 11 AVL Trees (Ch 26) Overview of AVL tree Understand how to rebalance a tree using various techniques Design the AVLTree class by extending the BST Implementing tree rebalancing algorithms for AVL trees Insert/delete elements in/from AVL tree Analyze the complexity of search, insertion, and deletion operation in AVL Page 4 of 5

tree. Midterm 2 12 Hashing (Ch 27) Overview of hashing Design hash function Handle collisions Open addressing (linear probing, quadratic probing, and double hashing), separate chaining (Optional) Graphs and Applications (Ch 28) Describe the graph terminologies: vertices, edges, simple graphs, weighted/unweighted graphs, and directed/undirected graphs Model graphs using the Graph interface, the AbstractGraph calss, and the UnweightedGraph class Design and implement depth-first-search Design and implement breadth-first search 13 Multithreading and Parallel Programming (Ch30) Overview of multithreading Develop multithread program Overview of race condition and synchronization Use synchronized methods to synchronize threads to avoid race condition Overview of semaphore Control number of concurrent tasks that access a shared resource using semaphores 14 Multithreading and Parallel Programming (Ch30) Continued Overview of deadlock Avoid deadlock using the resource-ordering technique Overview of the life cycle of a thread Develop parallel programs using Fork/Join Framework 15 Review for final exam Page 5 of 5