Course Outline - Pui Chor Wong

advertisement
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
Download