|
Course Objectives:
In
nearly every software application, data must be stored and managed to meet the
needs (i.e. time and space efficiency) of the user. This course introduces
basic data structures and their application using the Java programming
language. We will introduce a mathematical framework for evaluating the
efficiency of Java code, and develop implementations of basic data
structures such as lists, stacks and queues. We will then study searching
and sorting algorithms, and introduce recursion as a strategy for improving
the running time of these algorithms. This will lead us to study more advanced
data structures that are defined recursively, such as trees and heaps. We
will then cover several advanced topics, such as hash tables and the
storage and exploration of graphs.
At the
end of this course, students should be able to:
- Use the object-oriented
programming paradigm to write understandable and maintainable Java
programs.
- Given a specification,
design and implement an algorithm in Java that will correctly satisfy
the specification.
- Rigorously analyze the
time and space efficiency of a Java program.
- Compare and contrast
the relative merits (in terms of efficiency) and applicability of
standard data structures.
|
|
|
|
Prerequisites:
Passing grade in ECE122
or permission of ECE Undergraduate Program Director (T. Baird Soules)
|
|
|
|
Course
Outline:
- Java Programming and
Object-Oriented Design
- Algorithm Analysis
- Lists, Stacks and
Queues
- Algorithms for
Searching and Sorting Lists
- Recursive Algorithms
for Searching and Sorting
- Recursive Data
Structures
- Hashing
- Graph Algorithms
|
|
|
|
Assignments:
1. Programming projects (~5
projects)
2. Written homeworks (~5
assignments)
3.
Class
Tests (~3 tests): TBA
Grade Composition:
·
Projects: 35%
·
Homeworks: 10%
·
Exams: 55%
Note:
For more
information about the complete course policy, you can read the policy page.
|
|
|
|
Lecture
Material:
All the class lecture
presentations will be made available online on the syllabus page. Click on a lecture topic to retrieve the
lecture notes.
Test grade will not be
posted on our website due to privacy issue. You can pick up your exam in
lecture class or discussion section when it is ready.
ABET Criteria :
Relationship of ECE 242
course objectives to program outcomes:
|
Program Outcomes
|
Course Objectives
|
|
|
1
|
2
|
3
|
4
|
|
1. Well
grounded in the fundamental concepts of math, physics, chemistry,
computer science, and engineering science
|
Y
|
Y
|
N
|
N
|
|
2. Able to
identify, formulate and solve problems in ECE
|
N
|
Y
|
N
|
Y
|
|
3. Able to
design and conduct experiments, and to analyze and interpret measured
data
|
Y
|
Y
|
Y
|
Y
|
|
4. Capable of
designing analog and digital systems, components and processes to meet
desired needs
|
N
|
N
|
N
|
N
|
|
5. Proficient in
using modern engineering techniques and computing tools for effective
engineering practice
|
Y
|
Y
|
Y
|
N
|
|
6. Experienced
in engineering teamwork and in solving technically diverse problems
|
N
|
N
|
N
|
Y
|
|
7. Able to communicate
effectively orally and in writing , and through symbolic and graphical
expression
|
N
|
N
|
N
|
N
|
|
8. Aware of
professional and ethical responsibilities as engineers
|
N
|
N
|
N
|
N
|
|
9. Aware of the
impact of ECE technology and decisions on society
|
N
|
N
|
N
|
N
|
|
10. Motivated
about the importance of lifelong learning and professional development
|
N
|
N
|
N
|
N
|
|
|
|
|
|
|