14:332:351  Programming Methodology II
14:332:351  Programming Methodology II (3)
Indepth analysis of algorithms using object oriented techniques. Comparative algorithm analysis, indepth sorting algorithms, graphs, NPCompleteness, objectoriented design. Emphasis is on programming and practical applications in Electrical and Computer Engineering. Programming languages include C++ and Java.
14:332:252 or the equivalent
1. Knowledge of C++ language.
2. Stacks, queues, linked lists.
3. Sorting algorithms.
F. Carrano, Data Abstraction & Problem Solving with C++, 5th Ed, Prentice Hall, 2006.
To develop in depth skills in efficient design of algorithms.
A student who successfully fulfills the course requirements will have demonstrated:
1. advanced programming skills
2. advanced knowledge of algorithms
 HW Problems (15 %)
 Two MidTerm Exams (50 %)
 Final Exam (35 %)
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 multidisciplinary 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 lifelong 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, inlab lectures, online discussion, online submission, office hour discussions 
Weeks 1 & 2:Review of Data Structures portion of PMI, 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, BigOh notation, Solution of Recurrence Equations
Week 5: Multiway Search Trees, Top Down Trees, Traversal and Insertion in Top Down Trees
Week 6: MIDTERM EXAM; BTrees, Search Traversal and Insertion
Week 7: Implementation of algorithms for BTree
Week 8: Efficiency of BTree 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
Use of C++ and Java to implement advanced algorithms.
Implementation of algorithms in C++ and Java.
Moderate design experience in constructing C++ programs, simple design experience construction Java programs.
Programming assignments (homework), final lab project
(a) Collegelevel Mathematics and Basic Sciences: 0.25 credit hours
(b) Engineering Topics (Science and/or Design): 2.75 credit hours
(c) General Education: 0.0 credit hours
Total credits: 3