CET375 Data Structures and Algorithms with Lab Course Outline for Spring 2007 Term Instructor Pui-Chor Wong Website http://nis/staff/pcwong/webapp http://www.cal.devry.ca/~pcwong/ Office Hours Monday: 12:00 noon to 1:00 pm Tuesday: 12:00 noon to 1:00 pm Friday: 12:00 noon to 1:00 pm Office Phone: 207-3108 Email: pcwong@mail.cal.devry.ca Course No. CET375 (internal access only) ( accessible from home) Course Name Data Structures and Algorithms with Laboratory Contact Hours Credit Hours 6 5 Calendar Course Description Students learn to implement and use classical data structures and algorithms using programming languages such as C++ and Java. Abstract data types, including lists, strings, stacks, queues, and trees, and the use of a data encapsulation mechanism for implementing seamless types are included. Storage as well as use of recursion, sorting, and searching algorithms are also examined. In the lab, students work individually and in groups on C++ or Java programming assignments. Course Prerequisites Course No. Course Name COMP-370 Software Design with Object Oriented Programming Course Co-requisites Course No. Course Name EET-387 Embedded Microprocessor Systems Required Textbooks Weiss, Mark. Data Structures & Algorithm Analysis in C++. Addison-Wesley, 1998 (Net); ISBN: 0201361221 Writing Research Papers 9th/10th Edition. Lester & Lester Jr. Supplemental References Webliography CET375 Outline Flanagan, David. Java in a Nutshell. O'Reilly & Associates, Inc. 1996. Java Tutorial (online at http://java.sun.com/docs/books/tutorial/index.html). Algorithms and Data Structures AW Main-Savitch Supplements Data Structures ... Using C++ Class notes CS251B -- Winter 1997 CMSI 281 Data Structures and Algorithms I CS 161 Design and Analysis of Algorithms CS2402 C Programming Language Data Structures and Algorithms II Data Structures and Algorithms in C++ Data Structures and Algorithms in Java (3rd edition) Data Structures and Algorithms with Object-Oriented Design Patterns in C++ Data Structures and the Standard Template Library??Source Code Data Structures Library in Java Data Structures Via C++ Objects by Evolution - Google Print Eight Queens Puzzle Page 1 of 4 3/6/2016 Handbook of Algorithms and Data Structures Hashing function for strings Heaps Information Retrieval Data Structures & Algorithms I. II. III. IV. V. VI. Major Topics Introduction to Algorithms and Data Structures Stack and Queue Algorithms Introduction to Java Linked Lists Searching Data Structures Tree, Heaps and others Course Evaluation Assignments/Inclass: Quizzes (1 drop): Labs: Final Project: 20% 20% 30% 30% Instructor Notes Assignments are due at the beginning of the class period on the due date. There will be no makeup for assignments, quizzes and project. Make-up for labs will be granted under special circumstances such as sickness. In such case, doctor's note will be required. Furthermore, there is no midterm examination. Late assignments (after the due time on the due date) will not be accepted. Classroom Policy 1 2 Disruption in class will result in being dismissed from the classroom and/or any disciplinary action Any additions as discussed/suggested by the class. Plagiarism is a serious issue and can result in penalties in both course and lab work. On Plagiarism In speaking or writing, plagiarism is the intentional or unintentional act of representing someone else's work as one's own. In addition, plagiarism is defined as using the essential style and manner of expression of a source as if it were one's own. If there is any doubt, the student should consult his or her instructor, or document the source in a footnote or other form of citation. Any statement made without documentation will be interpreted as the student’s own words and may therefore be interpreted as plagiarism. Your work in this course may be submitted to turnitin.com, an online plagiarism-checking service. Turnitin.com operates a secure database and protects your privacy by assigning code numbers, not student names, to all student work stored in its database. The purpose of using this service is to help protect the integrity of a DeVry credential, which in turn helps protects your investment in a DeVry education. We will assume we have your consent to submit gradable work in this course to turnitin.com unless you indicate otherwise. CET375 Outline Page 2 of 4 3/6/2016 Course Terminal Objectives: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Given simple data structures such as a stack and a queue, develop the algorithms and software required for their implementation. Given a simple algorithm, such as stack or queue, design the software for implementation using both the C++ and Java languages. Given a data structure, such as a linked-list or binary search tree, design the algorithms needed to implement the structure. Given the algorithms that implement a hash table data structure, design the software that implements the insert, search, and delete functions. Given the algorithms that implement a binomial heap, design the software that implements the makeheap, insert, and extract operations. Given an algorithm, such as a stack or queue using a linked-list abstract data structure written in the C++ and Java languages, compare and contrast structure and performance. Given an Engineering problem that requires a small database, design an application using appropriate algorithms that searches or sorts the database. Given an embedded application and its circuitry, such as a printer interface or data concentrator, design an algorithm that acts as buffer or FIFO. Given an engineering application, such as buffering devices or en-tabling data for an embedded system, and a choice of algorithms, select the optimal algorithm. Document achievement of at least one Lab or Lecture Class TCO with a formal written report and/or an oral presentation in accordance with prescribed guidelines. Laboratory Course Terminal Objectives: 1. 2. 3. 4. 5. Given an algorithm, such as a stack or queue, design and write a class that implements a given set of member functions and apply the class and its member functions to a simple application. Using linked lists, develop an application that allows data to be stored and removed from the linked list. Given a set of alphanumeric data develop an applications that sorts the data using the quick-sort algorithm and a simple Bubble-Sort algorithm. Given an embedded system, develop software that implements a queue between some input port or device and the embedded system operating system. Given an embedded system, develop software that implements a queue for entering data into a database. CET375 Outline Page 3 of 4 3/6/2016 STANDARD LAB REPORT FORMAT Title Page and abstract Includes: -Title of experiment -Name of course -Name of instructor -Name of author and partner(s) -Date -Adequate motivation Objective/Purpose Tells why the experiment was performed and what results are anticipated. This section often interprets the purpose of the lab experiment as provided by the instructor. Equipment and Parts This is a list of the components and test equipment used to perform the lab experiment. Experimental Data and Observations (Raw Data) Documents (without a detailed analysis) what happened during the performance of the lab. Records and presents the data, tables, charts, calculations and evidence of where this information was derived from (ie. equations, textbooks, class-notes, multimeter, etc). Discussion of Results/ Questions and Answers This is a detailed analysis and discussion of the results of the experiment, plus a comparison of the results with theoretical expectations (ie. Did the data prove or disprove your theory? Why might the lab not have worked?) Any questions posed in the lab handout are answered here. Conclusion Contains a concise description of the conclusions. Includes a statement of whether or not the objectives were met and any recommendations you may have. Note: Your report should be Verdana, size 10 points fonts. Figures and tables should be labeled properly. CET375 Outline Page 4 of 4 3/6/2016