Prof Aida Sharif Rohani
Part-Time Lecturer
Khoury College of Computer Sciences
Northeastern University, Silicon Valley

Aida Sharif Rohani is a Part-Time Lecturer at Northeastern University’s Khoury College of Computer Sciences in Silicon Valley. As a proud alumna of Khoury College, she finds it deeply meaningful to provide the kind of transformative learning experience that resonated so strongly with her as a student.
Since earning her master’s degree from Khoury College in 2021, Sharif Rohani has been a Research Scientist at NASA Ames. In this role, she applies her expertise in artificial intelligence, machine learning, and natural language processing to enhance efficiency and safety in aviation. Her work in this field has led to a number of publications on topics including AI, machine learning, bias, and aviation.
As an instructor of object-oriented programming, she loves watching her students evolve — building their problem-solving skills, boosting their confidence, and preparing them to become thoughtful engineers and researchers. Aida’s teaching is rooted in her own academic journey, and she is passionate about creating an environment of support and challenge.
Outside of her professional life, she is an avid runner who enjoys participating in races and a compassionate gardener known for rescuing roly-poly bugs from her vegetable garden.
Research Interests
Data science
Information Retrieval
Machine learning
Courses Offered
Algorithms
Presents the mathematical techniques used for the design and analysis of computer algorithms. Focuses on algorithmic design paradigms and techniques for analyzing the correctness, time, and space complexity of algorithms. Topics may include asymptotic notation, recurrences, loop invariants, Hoare triples, sorting and searching, advanced data structures, lower bounds, hashing, greedy algorithms, dynamic programming, graph algorithms, and NP-completeness.
Object-Oriented Design
Presents a comparative approach to object-oriented programming and design. Discusses the concepts of object, class, metaclass, message, method, inheritance, and genericity. Reviews forms of polymorphism in object-oriented languages. Contrasts the use of inheritance and composition as dual techniques for software reuse—forwarding vs. delegation and subclassing vs. subtyping. Offers students an opportunity to obtain a deeper understanding of the principles of object-oriented programming and design, including software components, object-oriented design patterns, and the use of graphical design notations such as UML (unified modeling language). Illustrates basic concepts in object-oriented design with case studies in application frameworks and by writing programs in Java.