Richard J. Povinelli


Software Methodologies (COEN2610)

The first course in software engineering, covering the software life cycle, proper selection of data structures and algorithms, and the availability and choice of programming paradigms for appropriate design and implementation of well-engineered software. An open laboratory and significant programming experiences form an integral part of this course.




Taught: Fall 2015, Spring 2016, 2017, 2018, 2019, 2020


Algorithms (EECE6810)

Introduction to the analysis of algorithms. topics include: asymptotic complexity notation, recursion analysis, basic and advanced data structures, sorting methodologies, dynamic programming, and graph algorithms, including heuristic search techniques such as best-first and A-star algorithms. Advanced topics include NP-completeness theory and linear programming.


Taught: Fall 2011, 2012, 2013, 2015, 2016, 2017, 2018, 2019

Machine Learning (EECE6822)

Machine Learning is the study of computer algorithms that improve automatically through experience (Mitchell 1997). In this class we will study both the algorithms themselves and the theoretical foundations of this field. Machine learning algorithms to be studied including decision trees, artificial neural networks, Bayesian learners, evolutionary algorithm, and boosting and bagging techniques. We will study a computational learning theory and PAC learnability.


Taught: Spring 2003, 2005, 2007, 2011, 2013, 2015, 2017, 2019

Evolutionary Computation (COEN4870)

Evolutionary computation consists of a set of search methods based on the Darwinian principle of survival of the fittest. The methods include genetic algorithms, evolutionary strategies, and evolutionary and genetic programming. These methods have been successfully applied to many different problem domains including optimization, learning, control, and scheduling. This course will provide students with the background and knowledge to implement various evolutionary computation algorithms, discuss tradeoffs between different evolutionary algorithms and other search methods, and discuss issues related to the application and performance evaluation of evolutionary algorithms.

Taught: Spring 2001, 2002, 2009, Fall 2017, 2019


Taught: Fall 2015, Spring 2016, 2017, 2018, 2019, 2020

Fundamentals of AI (COEN4850/EECE5850)

This course provides a broad exposure to intelligent systems, including related fields such as artificial and computational intelligence. Topics include intelligent agents, search, game playing, propositional logic and first-order predicate calculus, uncertainty, learning, communication and perception, and philosophical foundations of intelligent systems. This course is a COEN design elective in the area of intelligent systems.


Taught: Fall 2006, 2008, 2010, 2016, 2018

Chaos and Nonlinear Signal Processing (EECE6530)

Chaos and Nonlinear Signal Processing is a seminar course that investigates recent research in temporal data mining. We will study methods for finding hidden structures in time series. These hidden structures are found using techniques such as phase space reconstruction, clustering, neural networks, and genetic algorithms. Once discovered these structures are useful for solving system classification problems and for predicting events in time series. Example application areas include motor diagnostics, heart arrhythmia classification, speech recognition, and financial time series prediction. In addition to the topics mentioned above, this course discusses machine learning, time series analysis, adaptive signal processing, wavelets, and nonlinear dynamics.


Taught: Fall 2000, Spring 2002, 2004, 2006, 2010, 2012, 2014, 2016, 2018, 2020

List of Courses



Richard J. Povinelli, Ph.D., P.E.

Office: EN 221 (Haggerty Hall)

Online: Teams
Phone: 414.288.7088

Office Hours:

Tuesdays — 2:00 - 3:45 pm

Thursdays — 3:00 - 3:45 pm


If these times do not work for you, please make an appointment on Outlook 365 and schedule a time that works for both of us.