CPSC 2380 Data Structures and Algorithms

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

CS 241 Data Organization using C

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

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

CS503 Advanced Programming I CS305 Computer Algorithms I

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

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

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

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

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

COLLEGE OF THE DESERT

CISC 3130 Data Structures Spring 2018

CISC 3130 Data Structures Fall 2018

Compilers. Computer Science 431

Computer Programming II C++ (830)

CMPE 180A Data Structures and Algorithms in C++

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

Data Structures and Algorithms

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

Advanced Programming CMPS 109

CS 375 UNIX System Programming Spring 2014 Syllabus

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

COMP Data Structures

Course Administration

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

COMP Data Structures

CS 4317: Human-Computer Interaction

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

Computer Science Technology Department

CS 241 Data Organization. August 21, 2018

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

COMP Analysis of Algorithms & Data Structures

CPSC 4600 Biometrics and Cryptography Fall 2013, Section 0

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

CSCI 201L Syllabus Principles of Software Development Spring 2018

San Jose State University - Department of Computer Science

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department

IT-2670: C/C++ PROGRAMMING LANGUAGE

Computer Science Technology Department

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

Course Syllabus. Course Information

CRIJ 1301 Introduction to Criminal Justice (8-Week On-line Version) Fall 2017 Aug. 28 through Oct. 22

Cleveland State University

Division of Engineering, Computer Programming, and Technology

Outline. Computer Science 331. Course Information. Assessment. Contact Information Assessment. Introduction to CPSC 331

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

INFS 2150 (Section A) Fall 2018

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

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

Computer Science 1321 Course Syllabus

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

Computer Programming II Python

ITT Technical Institute. ET4560T C++ Programming Onsite Course SYLLABUS

DATA STRUCTURES THROUGH C++

St. MARTIN s ENGINERING COLLEGE Dhulapally,Secunderabad

Compulsory course in Computer Science

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

Spring CISM 3330 Section 01D (crn: # 10300) Monday & Wednesday Classroom Miller 2329 Syllabus revision: #

Introduction to UNIX

CSC 111 Introduction to Computer Science (Section C)

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

COURSE SYLLABUS AND INSTRUCTOR PLAN

Algorithms and Data Structures Spring 2008

Gerlinde Brady Phone: Office Hours: see Web at:

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

CSci 4211: Introduction to Computer Networks. Time: Monday and Wednesday 2:30 to 3:45 pm Location: Smith Hall 231 Fall 2018, 3 Credits

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

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

CPSC 5157G Computer Networks

ESET 369 Embedded Systems Software, Spring 2018

CMPE/SE 135 Object-Oriented Analysis and Design

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

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

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

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

CMPE 152 Compiler Design

Welcome to CSL 201 Data Structures

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

Object-Oriented Programming for Managers

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

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

ISM 324: Information Systems Security Spring 2014

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

CS120 Computer Science I. Instructor: Jia Song

ECE Object-Oriented Programming using C++ and Java

ECE 3574: Applied Software Design

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

CSCI 4250/6250 Fall 2013 Computer and Network Security. Instructor: Prof. Roberto Perdisci

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

Part A: Course Outline

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

Course Title: Computer Networking 2. Course Section: CNS (Winter 2018) FORMAT: Face to Face

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

CS 470G Introduction to Operating Systems

EECE.2160: ECE Application Programming Spring 2017

CS/SE 153 Concepts of Compiler Design

South Portland, Maine Computer Information Technology. Web Site: blackboard.smccme.edu. Course Syllabus

SAMPLE. COS 161 Algorithms in Programming. Prof. Briggs Fall 2017

Transcription:

CPSC 2380 Data Structures and Algorithms Spring 2014 Department of Computer Science University of Arkansas at Little Rock 2801 South University Avenue Little Rock, Arkansas 72204-1099 Class Hours: Tuesday and Thursday, 4:30 PM 5:45 PM Classroom: EIT 325 Instructor: Dr. Chia-Chu Chiang Office: EIT 570 Office Hours: Tuesday 2:00 3:00 PM, Wednesday 11:00 AM 12:00 PM, Thursday 2:00 3:00 PM, Other hours by appointment Telephone: (501) 569-8142 Fax: (501) 569-8144 E-mail: cxchiang@ualr.edu Course Descriptions A systematic study of the main data structures of computer science: arrays, stacks, queues, linked lists, trees, graphs, hash tables. Implementation and analysis of the algorithms and programming techniques for searching, sorting, inserting into, and deleting from these structures; efficiency considerations. Successful completion of this course requires a grade of C or greater. Three hours lecture per week. Three credit hours. Course Objectives Upon successful completion of this course, students should be able to design a logical solution to a variety of problems in which data structures (lists, stacks, queues, hash tables, trees, and graphs) and algorithms play a central role implement the data structures and algorithms in C++ apply both static and dynamic implementations of lists, stacks, queues, hash tables, trees, and graphs evaluate the benefits and drawbacks of data structures and algorithms in terms of memory and run time efficiency. evaluate the performance tradeoffs of various data structures and algorithms apply applications of data structures and algorithms to large industrial programming projects master the theoretical underpinnings of data structures and algorithms at graduation convey technical material in writing Prerequisites CPSC 2376 (Programming II) or CPSC 2377 (Introduction to Game Programming) - 1 -

Text Data Structures & Algorithms in C++, 2 nd Ed., 2011 By Michael T. Goodrich, Roberto Tamassia, and David M. Mount John Wiley & Sons, Inc. References Problem Solving with C++, 2008, 7 th Edition By Walter Savitch Addison-Wesley OR other Texts for CPSC 1375: Programming I and CPSC 2376: Programming II Course Outline Chapter 1 A++ Primer 1.1 Basic C++ Programming Elements 1.2 Expressions 1.3 Control Flow 1.4 Functions 1.5 Classes 1.6 C++ Program and File Organization 1.7 Writing a C++ Program Chapter 2 Object-Oriented Design 2.1 Goals, Principles. and Patterns 2.2 Inheritance and Polymorphism 2.3 Templates 2.4 Exceptions Chapter 3 Arrays, Linked Lists, and Recursion 3.1 Using Arrays 3.2 Singly Linked Lists 3.3 Doubly Linked Lists 3.4 Circularly Linked Lists and List Reversal 3.5 Recursion - 2 -

Chapter 4 Analysis Tools 4.1 The Seven Functions Used in This Book 4.2 Analysis of Algorithms 4.3 Simple Justification Techniques Chapter 5 Stacks, Queues, and Dequeues 5.1 Stacks 5.2 Queues 5.3 Double-Ended Queues Chapter 6 List and Iterator ADTS 6.1 Vectors 6.2 Lists Chapter 7 Trees 7.1 General Trees 7.2 Tree Traversal Algorithms 7.3 Binary Trees Chapter 9 Hash Tables, Maps, and Skip Lists 9.2 Hash Tables Chapter 10 Search Trees 10.1 Binary Search Trees Chapter 11 Sorting, Sets, and Selection 11.1 Merge-Sort 11.2 Quick-Sort 11.3 Studying Sorting through an Algorithmic Lens Chapter 13 Graph Algorithms 13.1 Graphs 13.2 Data Structures for Graphs 13.3 Graph Traversals 13.4 Directed Graphs Grading Projects in C++ 30% Assignments 10% Midterm Exam 30% Final (Comprehensive) 30% 90-100% A 80-89% B 70-79% C 60-69% D < 60% F Exams All of the exams will be closed book and note exams. No make-up exams will be given except for documented illness or personal emergency. To be eligible for make-up, you must notify the instructor prior to the time of the exam and provide documentation for the situation when arranging the make-up. - 3 -

Tentative Schedule Week Tuesday Lecture Thursday Lecture 1 1/14/2014 Chapter 1 1/16/2014 Chapter 1 2 1/21/2014 Chapter 2 1/23/2014 Chapter 2 3 1/28/2014 Chapter 3 1/30/2014 Chapter 3 4 2/4/2014 Chapter 3 2/6/2014 Chapter 4 5 2/11/2014 Chapter 4 2/13/2014 Chapter 5 6 2/18/2014 Chapter 5 2/20/2014 Chapter 5 7 2/25/2014 Chapter 6 2/27/2014 Chapter 6 8 3/4/2014 Chapter 6 3/6/2014 MIDTERM 9 3/11/2014 Chapter 7 3/13/2014 Chapter 7 10 3/18/2014 Chapter 7 3/20/2014 Chapter 9 11 3/25/2014 Spring Break 3/27/2014 Spring Break 12 4/1/2014 Chapter 9 4/3/2014 Chapter 10 13 4/8/2014 Chapter 10 4/10/2014 Chapter 10 14 4/15/2014 Chapter 11 4/17/2014 Chapter 11 15 4/22/2014 Chapter 11 4/24/2014 Chapter 13 16 4/29/2014 Chapter 13 5/1/2014 Chapter 13 17 5/6/2014 Consultation Day Last Day to Drop an individual Class 3/11/2014 by 5 P.M. Last Day to Withdraw from All Classes 5/5/2014 by 5 P.M. Last Day of Classes 5/5/2014 Consultation Day 5/6/2014 Final on 5/8/2014 4:00 PM 6:00 PM Policy The Department of Computer Science expects all students to adhere to UALR s policy on Academic Honesty. In particular, a solution to an assignment or exam must be your own work. You are encouraged to discuss the assignment with your instructor, and even your classmates. However, anything you turn in for grading must be your own work. Students with Disabilities Your success in this class is important to me, and it is the policy and practice of the University of Arkansas at Little Rock to create inclusive learning environments consistent with federal and state law. If you have a documented disability (or need to have a disability documented), and need an accommodation, please contact me privately as soon as possible, so that we can discuss with the Disability Resource Center (DRC) how to meet your specific needs and the requirements of the course. The DRC offers resources and coordinates reasonable accommodations for students with disabilities. Reasonable accommodations are established through an interactive process among you, your instructor(s) and the DRC. Thus, if you have a disability, please contact me and/or the DRC, at 501-569-3143 (V/TTY) or 501-683-7629 (VP). For more information, please visit the DRC website at www.ualr.edu/disability. Class Blackboard Site http://blackboard.ualr.edu Program Outcome, Course Outcome, and Performance Criteria - 4 -

O5: Be capable of problem solving. (CO5) Students will be able to formulate a logical solution to a variety of problems in which data and data structures play a central role. - Understand the requirements of the problems - Choose appropriate strategy to analyze the problems such as problem decomposition and abstractions - Be able to make intelligent design choices as to how best to represent data for various purposes - Use appropriate logic and computer syntax for solution development code should be correct, concise, and clear O6: Be capable of formulating algorithmic solutions to a wide variety of problems normally encountered in real-world computing and also in academe. (CO6) Students will be able to think clearly and logically in formulating programmed solutions to a variety of problems in which data and data structures play a central role. - Identify inputs and outputs - Identify variables, types, and data structures - Identify the process, decision, and loops - Develop a high-level algorithm with appropriate data structures including arrays, stacks, queues, linked lists, trees, graphs, hash tables - Understand and Be able to analyze competing implementation ideas for data structures such as procedural vs. object-orientation, self-design vs. library structures, static vs. dynamic memory allocation, etc. - Understand and Be able to analyze competing implementation ideas for algorithms such as iteration vs. recursion, memory efficiency vs. time efficiency, etc. O7: Be capable of expressing their algorithms in at least one of several of the most important computer languages currently in use in academic and local computing environments. (CO7) Students will be able to apply object-oriented programming concepts to problem solutions in C/C++. - Use C/C++ language constructs for expressing an algorithmic solution - Be able to read, write, and modify programs in C/C++ O8: Have a sufficient overview of the main subject areas of computer science, so that they can make intelligent decisions as to their future consideration of graduate education. (CO8) Students will understand program correctness, applications of programs to various subject areas, and intelligent-making and problem-solving. - Develop understanding of general concepts of data structures - Recognize the trade-offs of using various data structures - Be able to choose an appropriate data structure such as stack, queue, binary tree, or graph required to solve a problem - Be able to understand and analyze the advantages and disadvantages of various competing ideas for how to represent data - Be able to develop algorithms with data structures for problem solving - State in big-o notation memory usage and running times associated with the algorithms discussed - Promote correctness at all levels of program development - Develop practical programming skills O9: Have mastery of the theoretical underpinnings of computer science at graduation. (CO9) Students will be able to write well-disciplined code. - Be able to choose appropriate data structures including stack, queue, binary tree, or graph required to solve a problem - Be able to develop programs sufficiently well in the areas of computer architecture, software engineering, networking, compiler writing, databases, and operating systems O11: Be capable of conveying technical material in writing and through interacting with an audience in an oral presentation. (CO11) Students will be able to write well-organized, clear, correct, concise code for manipulating data and data structures. - Write reasonably helpful comments in programs - Write readable code (There are no oral presentations in this course.) - 5 -

- 6 -