Dr. Maryam Farahmand Asil
Assistant Teaching Professor
Khoury College of Computer Sciences
Northeastern University, Silicon Valley

Dr. Maryam Farahmand Asil is an Assistant Teaching Professor at Northeastern University’s Khoury College of Computer Sciences, based in Silicon Valley and Oakland. She is passionate about instilling a deep appreciation for the foundational principles of computer science and mathematics in her students. Her teaching expertise spans core courses like discrete and data structures, algorithms, and programming for data science.
A dedicated researcher in computer science education, Dr. Farahmand Asil was honored with the 2023 Khoury Teaching Innovation Award for her ongoing project aimed at enhancing student engagement in computing courses.
Prior to joining Khoury College in 2022, she held significant academic positions, including Assistant Professor of Mathematics at Mills College and Visiting Assistant Professor of Mathematics at the University of California, Berkeley. Her commitment to effective instruction was recognized with the Outstanding Graduate Student Instructor Award at UC Berkeley in 2016.
Research Interests
Data Science
Mathematical Modeling
Machine Learning
Algebraic Combinatorics
Computer Science Education
Discrete & Polyhedral Geometry
Courses Offered
Data Structures, Algorithms, and Their Applications within Computer Systems
Presents an integrated approach to the study of data structures, algorithms, and their application within systems topics. Introduces a variety of fundamental algorithmic techniques (divide-and-conquer, dynamic programming, graph algorithms) and systems topics (models of computation, computer architecture, compilation, system software, networking). Demonstrates the integration of topics through programming assignments in the C language that implement fundamental data structures (lists, queues, trees, maps, graphs) and algorithms as they are applied in computer systems. Additional breadth topics include programming applications that expose students to primitives of different subsystems using threads and sockets.
Introduction to Programming for Data Science
Offers an introductory course on fundamentals of programming and data structures. Covers lists, arrays, trees, hash tables, etc.; program design, programming practices, testing, debugging, maintainability, data collection techniques, and data cleaning and preprocessing. Includes a class project, where students use the concepts covered to collect data from the web, clean and preprocess the data, and make it ready for analysis.
Discrete Structures
Introduces the mathematical structures and methods that form the foundation of computer science. Studies structures such as sets, tuples, sequences, lists, trees, and graphs. Discusses functions, relations, ordering, and equivalence relations. Examines inductive and recursive definitions of structures and functions. Covers principles of proof such as truth tables, inductive proof, and basic logic and the counting techniques and arguments needed to estimate the size of sets, the growth of functions, and the space-time complexity of algorithms. Also, discusses data structures such as arrays, stacks, queues, lists, and the algorithms that manipulate them.