Instructor Information

Mark Happel

Work Phone: 443-778-9848

Mark D. Happel is the Supervisor of the Data Science and Machine Learning Section in the Air and Missile Defense Sector (AMDS) of the Johns Hopkins University Applied Physics Laboratory (APL), where he performs machine learning, statistical pattern recognition, and signal processing research and development tasks. His recent projects have focused on pattern classification in time series data, distributed reinforcement learning, and infrared video processing.  

He is currently an instructor in the JHU’s Engineering for Professionals (EP) programs. Prior to this, he was an associate professorial lecturer in computer science at the George Washington University, where he taught both graduate-level and undergraduate-level artificial intelligence and machine learning courses for 10 years.  

Before coming to APL, Happel performed science and technology policy research at the RAND Corporation and both neuroscience and artificial intelligence research at the MITRE Corporation. He also developed real-time, safety-critical jet engine control software at GE Aircraft Engines and performed digital hardware design and test at Northern Telecom, Inc. His first professional experience was as a nuclear-trained submarine officer in the U.S. Navy, serving as the Reactor Controls Officer, Sonar Officer, and Weapons Officer onboard USS PHOENIX (SSN702).

Happel earned a BSEE degree in electrical engineering from the U.S. Naval Academy; an MSE degree in electrical engineering from the University of Central Florida; and a DSc degree in computer science from the George Washington University. 

Course Information

Course Description

EN.605.649 - Introduction to Machine LearningAnalyzing large data sets (“Big Data”), is an increasingly important skill set. One of the disciplines being relied upon for such analysis is machine learning. In this course, we will approach machine learning from a practitioner’s perspective. We will examine the issues that impact our ability to learn good models (e.g., inductive bias, the curse of dimensionality, the bias-variance dilemma, and no free lunch). We will then examine a variety of approaches to learning models, covering the spectrum from unsupervised to supervised learning, as well as parametric versus non-parametric methods. Students will explore and implement several learning algorithms, including logistic regression, nearest neighbor, decision trees, and feed-forward neural networks, and will incorporate strategies for addressing the issues impacting performance (e.g., regularization, clustering, and dimensionality reduction). In addition, students will engage in online discussions, focusing on the key questions in developing learning systems. At the end of this course, students will be able to implement and apply a variety of machine learning methods to real-world problems, as well as be able to assess the performance of these algorithms on different types of data sets. Prerequisite(s): EN.605.202 – Data Structures or equivalent.


EN.605.621 OR EN.685.621 Foundations of Algorithms

Course Goal

To develop broad understanding of the issues in developing and implementing machine learning algorithms and systems, especially as they related to modern, data-intensive problems.

Course Objectives

  • By the end of the course, students should be able to:
    Determine the inductive bias of learning methods and how that bias potentially affects learning performance.
  • Differentiate between classification and function approximation (regression) in learning.
  • Assess the empirical performance of machine learning algorithms on different types of data sets.
  • Implement and apply a variety of machine learning methods to real-world problems.

When This Course is Typically Offered


  • Introduction to machine learning
  • Bayesian decision-making and parametric models
  • Dimensionality reduction
  • Unsupervised learning and clustering
  • Nonparametric learning
  • Basis functions and mixture models
  • Decision tree induction
  • Rule induction
  • Linear models
  • Linear networks
  • Multi-layer artificial neural networks
  • Alternative artificial neural network models
  • Markov decision processes and reinforcement learning
  • Temporal difference methods in reinforcement learning

Student Assessment Criteria

Class Projects 60%
Midterm examination 15%
Final examination 15%
Class preparation & participation 10%

I will strive to grade and return to you, as quickly as possible, all material that you submit.

Projects will normally be graded and returned before the next project is due.  Failure to meet the assigned due date will result in a reduced grade.  Extensions for due dates can be requested for special circumstances. 

A grade of A indicates achievement of consistent excellence and distinction throughout the course—that is, conspicuous excellence in all aspects of assignments and discussion in every week.  A grade of B indicates work that meets all course requirements on a level appropriate for graduate academic work. 

100-90 = A
89-80 = B
79-70 = C
<70 = F

Computer and Technical Requirements

It is expected that each student is proficient in at least one higher-level language. For machine learning, popular languages include Python, Java, and C/C++/C#. For the programming assignments, only basic libraries are permitted to be used. Libraries such as scikit-learn, weka, RapidMiner, MLPack, Keras, Theano, TensorFlow, PyTorch, or similar are not permitted under any circumstances. No programming language is specified; however, it is recommended that all assignments be completed in Python, Java, or C/C++. Languages such as MATLAB and R are not permitted, except to support analysis of results of the experiments run.

Participation Expectations

Preparation and participation are critical parts of this course.  To gain the maximum benefit from the course, it is important to complete the assigned reading prior to attending the corresponding lecture; I will sample your class preparation with an occasional brief quiz.  Participation through thoughtful questions and requests for clarification will improve the understanding of all students present (not just yours), as well as providing me valuable feedback as to the clarity, understandability, and effectiveness of my lectures.


Textbook information for this course is available online through the MBS Direct Virtual Bookstore.

Course Notes

There are no notes for this course.

Final Words from the Instructor

This courses has a high workload; however, each student will receive extensive hands-on experience implementing and analyzing the behavior of several machine learning algorithms. They will also gain experience dealing with real-world data sets and their associated real-world issues (missing data, noisy data, conflicting information, etc.).

The class also assumes a fair amount of mathematical background of students. It is strongly recommended that students have a solid foundation in calculus (through multi-variate), linear algebra, discrete mathematics, probability, and statistics.

Term Specific Course Website

(Last Modified: 07/21/2021 05:19:11 PM)