Skip to main content

Autonomous Cognitive Assistant 2020

About This Course

Welcome to the online course for CogWorks. This course is designed to familiarize students with powerful methods of data analysis, including state-of-the-art machine learning techniques. Ultimately, these concepts and tools will allow us to customize our own cognitive assistants!


The online section for this course can be broken down into the following components:

  • Machine Learning
    • Module 1: Perspectives on Machine Learning
    • Module 2: Your First Classifier
    • Module 3: Gradient-Based Learning
    • Module 4: Back-Propagation


It is beneficial for students to have previous experience programming. While a relatively comprehensive introduction to Python is presented here, this course is not designed to serve as an introduction to programming.

Students are expected to have strong skills in mathematics. They will need to work with functions of multiple variables and have a keen ability to think visually about functions and mappings. Experience in trigonometry and pre-calculus is necessary. It is not necessary for students to have taken calculus or linear algebra, but some of these concepts will be used. Past CogWorks students did not have calculus and linear algebra experience, and completed this course with great success; it did require them to put in some extra individual effort to understand these concepts.

Interest, enthusiasm, and an attention for detail are all a must!

Course Staff

Course Staff Image #1

Ryan Soklaski

Ryan Soklaski is a technical staff member of Lincoln Laboratory’s Intelligence & Decision Technologies group. There, he researches machine learning techniques that are performant under data-restricted circumstances, and works as a core developer for a lab-internal machine learning library. Prior to joining the laboratory, Ryan earned his PhD in theoretical condensed matter physics at Washington University in St. Louis. His doctoral thesis involved conducting physics simulations on high-performance computing clusters to study the physical mechanisms that drive the glass formation process in metallic liquids. Ryan’s background in education includes working as a lead-instructor for an undergraduate physics course at Washington University, and as a graduate-level teaching assistant. His interests include methods of numerical analysis, developing software in Python, and quantum mechanics.

David Mascharka

David Mascharka

David Mascharka is a computer vision researcher in Lincoln Laboratory's Intelligence & Decision Technologies group. His work is aimed at enabling machines to reason about the visual world, while ensuring humans can understand the behavior of these models. Prior to joining the lab, David completed a B.S. in computer science and math and a B.A. in philosophy. His academic interests include trust and interpretability in machine systems, vision and language, and the philosophical intersections of technology and everyday life.

Zac Ravichandran

Zachary Ravichandran

Zachary Ravichandran conducts computer vision research at MIT Lincoln Laboratory's Intelligence and Decision Technologies group. His work includes developing algorithms enabling real-time perception on mobile robotic platforms. He has also contributed to simulations designed for prototyping and evaluating complex, multi-disciplinary systems, with a focus on improving computer vision capabilities. Before joining the lab, Zac completed a B.S. in electrical engineering with a minor in computer science from Rensselaer Polytechnic Institute where he focused on machine learning, signal processing, and robotics.