Course Catalog Description: 14:332:351 - Programming Methodology II (3)
In-depth analysis of algorithms using object oriented techniques. Comparative algorithm analysis, in-depth sorting algorithms, graphs, NP-Completeness, object-oriented design. Emphasis is on programming and practical applications in Electrical and Computer Engineering. Programming languages include C++ and Java.
N = none S = Supportive H = highly related
Outcome |
Level |
Proficiency assessed by |
(a) an ability to apply knowledge of Mathematics, science, and engineering |
H |
Programming assignments, Exams |
(b) an ability to design and conduct experiments and interpret data |
N |
|
(c) an ability to design a system, component or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability |
N |
|
(d) an ability to function as part of a multi-disciplinary team |
N |
|
(e) an ability to identify, formulate, and solve ECE problems |
H |
Programming assignments, Exams |
(f) an understanding of professional and ethical responsibility |
N |
|
(g) an ability to communicate in written and oral form |
S |
Programming assignments, Exams |
(h) the broad education necessary to understand the impact of electrical and computer engineering solutions in a global, economic, environmental, and societal context |
N |
|
(i) a recognition of the need for, and an ability to engage in life-long learning |
S |
Programming assignments |
(j) a knowledge of contemporary issues |
N |
|
(k) an ability to use the techniques, skills, and modern engineering tools necessary for electrical and computer engineering practice |
H |
Programming assignments, Exams |
Basic disciplines in Electrical Engineering |
N |
|
Depth in Electrical Engineering |
N |
|
Basic disciplines in Computer Engineering |
H |
Programming assignments, Exams |
Depth in Computer Engineering |
S |
Programming assignments, final project, Exams |
Laboratory equipment and software tools |
H |
Programming environments |
Variety of instruction formats |
S |
Lecture, in-lab lectures, online discussion, online submission, office hour discussions |
- HW Problems (15 %)
- Two Mid-Term Exams (50 %)
- Final Exam (35 %)
Weeks 1 & 2: Review of Data Structures portion of PM-I, stacks, queues, linked lists, sorting algorithms
Week 2: Basics of object oriented programming (C++)
Week 3: Standard conversion under derivation, virtual functions, virtual base classes, OO design.
Week 4: Algorithm Analysis, Big-Oh notation, Solution of Recurrence Equations
Week 5: Multiway Search Trees, Top Down Trees, Traversal and Insertion in Top Down Trees
Week 6: MIDTERM EXAM; B-Trees, Search Traversal and Insertion
Week 7: Implementation of algorithms for B-Tree
Week 8: Efficiency of B-Tree and Top Down Trees; B+ Trees and algorithms to implement them
Week 9: Graphs, Adjacency Matrix Representation, Transitive Closure; Transitive Closure using Warshall’s Algorithm
Week 10: Shortest Path Algorithm, Adjacency List representation of Graph, Network Flow Problem and the
algorithm to compute the optimal flow
Week 11: Spanning Forests of Graph, Graph Traversal, Depth First Traversal, Breadth First Traversal
Week 12: Minimum spanning Trees; Introduction to Java
Week 13: Basics of Java
Week 14: Basics of Java
Week 15: Basics of Java
Week 16: Final Examination
(b) Engineering Topics (Science and/or Design): 2.75 credit hours
(c) General Education: 0.0 credit hours
Total credits: 3