EE367 – Computer Data Structure and Algorithms
Designation: Required
Catalog Description: EE367 – Computer Data Structure and Algorithms (3) Introduction to
computer programming algorithms with emphasis on advanced data structures, input-output
routines, files and interpreters.
Pre- and Co-requisites:
Pre-requisite = EE150, EE 160 (Programming for Engineers) or consent of instructor.
Co-requisite = EE 367L (Lab for Computer Data Structure and Algorithms).
Class/Lab Schedule: 3 hours of lecture per week
Topics Covered: [referenced sections or chapters of the textbook] (45 hours total)
 Introduction: the game of Life, programming style/discipline [Ch.1&2] (2 hours)
 Principles of instruction sets, memory access, parsing, high level program implementation,
and impact to machine execution of programs (2 hours)
 Lists: stacks, queues and applications [Sec.3.1 & 4.1-4] (3 hours)
 Recursion: principles and calling tree [Sec. 3.2-4, Appendix B] (2 hours)
 Linked Lists: linked stacks and queues and applications [Sec.4.5-8, Ch.5] (2 hours)
 Searching: sequential and binary search, comparison trees [Ch.6] (4 hours)
 Big-Oh concepts, performance estimation, and algorithm analysis (2 hour).
 Tables (triangular, jagged, inverted, and access tables) and Functions (1 hour)
 Sorting: insertion, selection, shell, merge, and quick sort [Ch.7] (5 hours)
 Heap and heap sort, priority queue, radix sort, tree sort, [Sec.7.9] (2 hours)
 Hashing: tables, hash function, collision resolution and analysis [Ch.8] (3 hours)
 Review + Midterm + Solutions (3 hours)
 Binary Trees: tree search and traversal, tree sort, binary search tree [Ch. 9] (6 hours)
 General trees, tries, B-trees, graphs, traversal, shortest path [Ch.10+11] (7 hours)
 Review, Project and Discussions (1 hour)
Textbook and Other Required Materials:
"Data Structures and Program Design in C", Second Edition, R.L. Kruse, C. L. Tondo, B. P.
Leung, Prentice Hall, 1997
Course Objectives and Relationship to Program Objectives:
The objective of EE367 is to solidify and develop students’ skills in writing good programs that
are easier to design and debug, through a understanding of common underlying data structures
and an appreciation of well designed, hence sharable, C programs. At the end of the course, the
students should possess not only a collection of working usable (and sharable) programs and data
structures that would make their future programming tasks/projects/jobs easier but also the
analytic skills and insights into the running time and storage efficiencies for any future programs
that they will design and implement.
[Program Objectives this course addresses: A, B, C, D and E.]
Course Outcomes and Their Relationship to Program Outcomes
 Design, implement and test high-level language programs for and based on fundamental data
structures. [1,2,3,5,7,11]
 Understand the relationship between programs and the computer hardware (processors,
memory, I/O, etc.) they run on. [1,2,3,5,7,11]
 Understand how data is represented in computers. [1,2,3,5,6,7,11]
 Understand how algorithms and the implemented programs can be applied in a broader
context. [1,2,3,5,6,7,8,11]
 Develop an understanding of the value and appreciate the skills of algorithm and program
performance analysis. [1,2,3,5,6,7,8,11]
 Execute program testing to verify the actual performances and measurements against
theoretical predictions and analyses. [1,2,3,5,6,7,8,11]
 Reach an appreciation of how to use computers and the software (skills) to solve engineering
problems that have a broader impact in the information-age society. [1,2,3,4,5,6,7,8,9,10,11]
Contribution of Course to Meeting the Professional Component
Engineering topics: 100%
Computer Usage:
With the focus of developing programming skills, about 50 percent of assignments use
computers, software tools, the Internet, etc.
Design Credits and Features:
EE 367 has 1.5 design credits. At least half of EE 367 lectures and exercises involve design.
The focus of the entire course is the design and implementation of programs, each of which is an
engagement in design. In fact, even the analysis, measurements, and testing components of the
course are aimed at reaching a full understanding of the designs for data structures and
algorithms. 50% of the homework assignments involve designing and implementing programs
or fragments of programs the high-level language C. The final project (15% of the course grade)
is strictly targeted to prove students’ skills in data structure and algorithm design.
Instructor(s): D. Yun and T. Dobry
Person(s) Preparing Syllabus and Date: D. Yun, Feb. 21, 2003.