Data Structures - CS 271 Fall 2008 Credits: 4 hours

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

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

CS 2302 Data Structures Spring 2015

CS 300 Data Structures Syllabus - Fall 2014

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

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

How To Teach C++ Data Structure Programming

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.

DATA STRUCTURES USING C

AP Computer Science AB Syllabus 1

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

Fundamentals of Computer Programming CS 101 (3 Units)

PES Institute of Technology-BSC QUESTION BANK

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

BCS2B02: OOP Concepts and Data Structures Using C++

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

CS 1340 Sec. A Time: 8:00AM, Location: Nevins Instructor: Dr. R. Paul Mihail, 2119 Nevins Hall, rpmihail@valdosta.

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

Data Structure [Question Bank]

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

Computer Science 1015F ~ 2010 ~ Notes to Students

Computer Science 210: Data Structures. Introduction

CS A250 (CRN ) C++ Programming Language 2. Syllabus Fall 2015

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

Java Software Structures

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

CS 1361-D10: Computer Science I

INFORMATION AND REGULATIONS FOR SELF-PACED PROGRAMMING COURSES CS 3S, CS 9ABCDEFGH, CS 47ABC. Spring Semester 2008

BMI 540: Computer Science with Java Programming Oregon Health & Science University

Symbol Tables. Introduction

ITS1100: Train the Trainer

02-201: Programming for Scientists

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

CMSC 152: Introduction to Computer Science II

INFSCI 0017 Fundamentals of Object- Oriented Programming

Introduction to Java Programming ITP 109 (2 Units) Fall 2015

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

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

AUSTIN COMMUNITY COLLEGE DEPARTMENT OF COMPUTER STUDIES AND ADVANCED TECHNOLOGY

SYLLABUS MAC 1105 COLLEGE ALGEBRA Spring 2011 Tuesday & Thursday 12:30 p.m. 1:45 p.m.

CSC122/CYEN122: Intermediate Computer Programming

Dynamic Programming Problem Set Partial Solution CMPSC 465

CMSC Fundamentals of Computer Programming II (C++)

Course MS10975A Introduction to Programming. Length: 5 Days

GET 114 Computer Programming Course Outline. Contact: Office Hours: TBD (or by appointment)

The University of Akron Department of Mathematics. 3450: COLLEGE ALGEBRA 4 credits Spring 2015

MATH 101 E.S. COLLEGE ALGEBRA FALL 2011 SYLLABUS

University of Pune Revised Structure for the B. Sc. (Computer Science) Course (Second Year to be implemented from Academic Year )

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

ISM 3254 Business Systems I

CS 261 C and Assembly Language Programming. Course Syllabus

Application of Stacks: Postfix Expressions Calculator (cont d.)

Gustavus Adolphus College Department of Economics and Management E/M : MARKETING M/T/W/F 11:30AM 12:20AM, BH 301, SPRING 2016

10CS35: Data Structures Using C

MATH 2 Course Syllabus Spring Semester 2007 Instructor: Brian Rodas

Computer Science. Discipline-Specific Admission Requirements. Alternate Admission Criteria

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

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Math 121- Online College Algebra Syllabus Spring 2015

Sample Questions Csci 1112 A. Bellaachia

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

EXPECTED LEARNING OUTCOMES:

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

CHAPTER 4 ESSENTIAL DATA STRUCTRURES

Brazosport College Syllabus for PSYC 2301 General Psychology

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS ITSE 1432 INTRODUCTION TO VISUAL BASIC.NET PROGRAMMING

Data Structures and Algorithms Written Examination

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

Exam study sheet for CS2711. List of topics

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

Computer. Course Description

Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Subject & Course: CS362 Software Engineering II. Credits: 4. Instructor s Name: Arpit Christi. Instructor s christia@onid.oregonstate.

Welcome to Computer Science 2604 Data Structures and File Management

Dr. Angela Guercio. Spring 2011

ECE 297 Design and Communication. Course Syllabus, January 2015

CS1400 Introduction to Computer Science

Please consult the Department of Engineering about the Computer Engineering Emphasis.

Midland College Syllabus ENGL 2311 Technical Writing

RYERSON UNIVERSITY Ted Rogers School of Information Technology Management And G. Raymond Chang School of Continuing Education

Department of Electrical and Computer Engineering. EEL 3160 Embedded C++ and Data Structures. Tuesday & Thursday 3:00 5:00 pm

College Algebra MATH 1111/11

TA contact information, office hours & locations will be posted in the Course Contacts area of Blackboard by end of first week.

CS135 Computer Science I Spring 2015

Course Objectives: This is a survey course to introduce you to the federal income tax system. The objectives of the course are to:

ACCOUNTING 205 INTRODUCTION TO FINANCIAL ACCOUNTING 8-Week Online Course Spring 2015

PRINCIPLES OF MICROECONOMICS ECONOMICS 1021A-650 Department of Economics Western University

Online Course Syllabus CS320: C Programming

Syllabus CIS 3630: Management Information Systems Spring 2009

CS 301 Course Information

Department of Accounting ACC Fundamentals of Financial Accounting Syllabus

Syllabus for Computer Science. Proposed scheme for B.Sc Programme under Choice Based Credit System

Computer Science III Advanced Placement G/T [AP Computer Science A] Syllabus

Section IV.1: Recursive Algorithms and Recursion Trees

CS3332 Software Engineering I. Term III/2016

STAT 1403 College Algebra Dr. Myron Rigsby Fall 2013 Section 0V2 crn 457 MWF 9:00 am

Lecture 11 Doubly Linked Lists & Array of Linked Lists. Doubly Linked Lists

Management Science 250: Mathematical Methods for Business Analysis Three Semester Hours

Transcription:

Data Structures - CS 271 Fall 2008 Credits: 4 hours Instructor: David Furcy Office: Halsey 220 Email: furcyd@uwosh.edu Phone: 424-1182 Class Meetings: 11:30AM-12:30PM on Tuesdays, Wednesdays, and Thursdays in HS 208 11:30AM-12:30PM on Fridays in HS 101C Office Hours: Prerequisites: MTuWThF 8:00-9:00AM Feel free to drop in at any other time when my door is open. Alternatively, to ensure that I have enough time to answer your questions, I strongly encourage you to make an appointment. CS 262 with a grade of C or better. Required Textbook: None References: Class handouts. TAKE NOTES on and about them. Handouts that are not liberally saturated with your own notes will likely prove useless when you need them most! Course web page at: http://www.uwosh.edu/faculty_staff/furcyd/cs271/ Online algorithm visualizations using JHAVE. C++ book (not required): ABSOLUTE C++ Third Edition Walter Savitch Addison Wesley, 2008 Data structures book (not required): ADTs, Data Structures, and Problem Solving with C++ Second Edition Larry Nyhoff Prentice Hall, 2005 1/5

Tests: Exam #1: Wednesday, October 8 th, 5:00-7:00PM Exam #2: Wednesday, November 12 th, 5:00-7:00PM Exam #3: Wednesday, December 10 th, 5:00-7:00PM Exams are scheduled at night to circumvent the one-hour time limit imposed by in-class exams. Please block these time slots at the beginning of the semester. The procedure and criteria of eligibility for making up a missed exam are described below. If you have special needs (or ABSOLUTELY cannot make it to one of the above night exams), please come and talk to me RIGHT AWAY so I can accommodate your needs. Course Overview: This course surveys the fundamental methods of representing and structuring data in memory, together with their associated data-processing algorithms. We will discuss classic algorithms for basic tasks such as searching and sorting. We will use and evaluate computational patterns such as recursion and dynamic programming. More generally, we will learn how to analyze, compare, and predict the performance of algorithms. This course also introduces students to C++. But instead of spending the first 1/4 th of the course on C++ and the last 3/4 th on data structures, only selected C++ topics will be discussed in class as needed. From the first day of the semester, students are expected to spend a significant amount of out-of-class time learning C++ and to eventually demonstrate proficiency in this new programming language by completing all programming assignments and labs in C++. In contrast, the written tests will primarily cover data structures concepts, with little programming. Learning Outcomes: Given an algorithmic specification of a process based on decision and iterative control structures, dynamic memory de/allocation, and/or text-based file and console I/O, the student will be able to edit, compile, debug and run in a UNIX/Linux development environment a C++ program that uses pointers, the new and delete operators, the iostream library and/or other predefined classes in the STL to correctly implements the algorithm. Given a problem or task description, the student will be able to apply objectoriented design principles to the development of a C++ solution based on userdefined classes and structs, the reuse of standard library functions and classes, as well as programming language features not available in Java (e.g., selecting byvalue or by-reference parameter passing, taking advantage of operator overloading). Given a non-recursive algorithm, the student will be able to examine its loop structures, infer its asymptotic runtime, and express its efficiency using big-o notation. Given a recursive algorithm, the student will be able to examine its recursive structure, determine and solve the corresponding recurrence relation, and infer the asymptotic runtime of the algorithm using big-o notation. Given the description of a computational problem requiring a mixture of search, insertion, and/or deletion operations on collections of data, the student will be 2/5

able to compare the relative advantages of using arrays, vectors, and linked lists in solving the problem efficiently. Given a classical computational problem (e.g., infix-to-postfix conversion, postfix-expression evaluation, Huffman data compression, path planning, minimum-spanning tree computation), the student will be able to trace a solution to the problem using appropriate data structures (e.g., stacks, queues, binary trees, binary search trees, red-black trees, graphs) and to predict the asymptotic runtime of the solution based on the selected data structures. Given a collection of unordered data, the student will be able to trace the execution of an advanced sorting algorithm (such as quick sort and heap sort) on this data set. Given a set of data keys, a hash function, a table size, and a collision-handling strategy, the student will be able to trace through a sequence of key insertions and searches, and to discuss how varying the table size, hash function or collisionhandling would affect the execution time of these operations. Given a graph data structure, the student will be able to implement it using either adjacency lists or an adjacency matrix, to traverse it using either a depth-first or breadth-first strategy, to identify its structural properties (whether it is directed, cyclic, connected, complete), and to trace the execution of one or more classical graph algorithms (e,g, Dijkstra's, topological sort or minimum-spanning tree computation). Topic Coverage: We will cover the following topics: Introduction to C++ and UNIX/Linux. Review of arrays, vectors, and linked lists. Introduction to classes, structs, and pointers in C++. Introduction to C++ templates and the STL. Algorithm analysis for non-recursive algorithms. Stacks, queues, infix-to-postfix conversion and evaluation. Recursion, algorithm analysis for recursive algorithms. Dynamic programming. Heap sort and quick sort. Trees, binary search trees, red-black trees, and heaps. Hashing. Graphs and their applications. Course Grading Policy: Your final grade for this course will depend on labs, quizzes, programming assignments, and 3 exams. Each assignment and exam will be graded on a scale from 0 to 100. All assignments (labs, quizzes) will carry the same weight when computing your overall assignment (lab, quiz) grade. Your overall numerical grade for the course will be computed as the weighted sum of the component grades using the following weights: Component Weight Labs 8% Quizzes 8% 3/5

Assignments 40% Exam #1 14% Exam #2 16% Exam #3 14% Finally, your letter grade for the course will be computed using the following mapping: Numerical Score Course Grade Numerical Score Course Grade 92 A 72 C 89 AB 69 CD 82 B 60 D 79 BC < 60 F I will be glad to discuss any questions you may have about grades. However, make sure to bring them up right away, upon return of each graded assignment or exam. Last minute requests after the final exam will not be entertained. Attendance and Participation: You are expected to not only attend every class meeting but also to come prepared for and participate actively in it. Necessary preparation requires you to have studied and assimilated the material covered in previous sessions, to have met with me outside of class to discuss any questions you may have, to have done the assigned reading and lab preparation, and to have completed the programming assignments on time. It is hard to imagine how a student could do well in this course while missing classes, attending them unprepared, or not participating. On the positive side, I have high expectations for my students and will always support and encourage you. I strongly encourage you to ask any question or raise any issue you have with the course either during or at the end of class, or during my office hours. I will also gladly meet with you by appointment. Send me email or give me a call to make an appointment. While I will meet with you as soon as my schedule permits, do not expect me to be widely available before an assignment is due. Late Submissions: I will describe the submission procedure for your assignments when the time comes. However, let me point out right away that each assignment will come with a deadline (day and time) after which any submission is considered late, with no exception. The penalty for late submissions is computed as follows: Turned in Penalty on due date, after deadline 10% one day late 20% two days late 40% three days late 60% four days late 80% 4/5

Note that submissions that are more than 4 days late will receive zero points. Late submissions can easily be avoided by starting to work on the assignment right away and asking me questions early if you get stuck. The penalty for late submissions can be waived in only one scenario, namely if you give me a signed note from the attending physician or a written justification for the extension from the Dean of Students Office. If you miss a scheduled exam, you may be able to take a make-up exam provided you give me a valid justification (see above) ahead of time if possible. Only one make-up exam will be given. It will be a comprehensive exam scheduled at the end of the semester. Bonus points: Since late submissions are penalized, it is only fair to reward early ones as well. Therefore, if you submit an assignment at least one full day early, you will earn 3 bonus points for every full 24-hour interval between your submission time and the deadline time. Furthermore, you can double your lab points each week by successfully demoing your lab exercises before the end of the lab session. Collaboration versus Cheating: All submissions must be the work of either one or two students, namely the one(s) whose name appears on the submission (yes, you may choose pairprogramming for your assignments, but not for the labs). While it is acceptable and encouraged to discuss the assignments with others, you must submit your own work. You may not look at or borrow any piece of code of any length from anyone else, unless you can live with a zero and the other potential academic sanctions of cheating. Check out the UWO Student Discipline Code (UWS 14) at http://www.uwosh.edu/dean/conduct.htm for details. Final Note: I expect every committed and hardworking student to do well in this course. I am looking forward to a fun and rewarding semester together. Given my high standards, I could not be more satisfied than if everyone earned an A in this course. 5/5