Teaching is one of the most vital components of a scholar’s career. It is rewarding and encouraging, especially when we see students succeeded partly because of the knowledge we taught and the advice we shared, both academic and non-academic.

At NEIU, I have taught CS 207 Programming II, CS 304 Data Structures, CS 324 Introduction to the Design of Algorithms, CS 404 Analysis of Algorithms, CS 419 Informatics, and CS 422 Introduction to Data Mining.

CS 207 Programming II

This course provides an in-depth study of the principles of object oriented programming, including Classes, Objects, Methods, Arrays, Inheritance, and Polymorphism. Within this framework, the course will cover Sorting and Searching Arrays, Two-Dimensional Arrays, Exception Handling, and File Input/Output. Emphasis is given to the design of algorithms and program development, involving both numeric computations and string manipulation techniques.

CS 304 Data Structures

This course provides experience implementing and manipulating basic data structures, as well as analyzing their applications in Computer Science. Topics covered will include: Time Complexity Analysis, Stacks, Queues, Linked Lists, Binary Tree Structures, Heaps, Graphs, Recursion, Searching and Sorting Algorithms.

CS 324 Introduction to the Design of Algorithms

Methods for analyzing algorithms are discussed including an introduction to asymptotic notation. Several approaches to designing algorithms are covered using theory, examples and problems. Those approaches include divide-and-conquer, dynamic programming, the greedy approach, backtracking and branch-and-bound. Different approaches are applied to the same problem to illuminate the relative advantages.

CS 404 Analysis of Algorithms

This course provides various methodologies to design and analyze algorithms. Topics include asymptotic time complexity analysis, divide-and-conquer, dynamic programming, greedy approach, backtracking, and branch-and-bound methodologies. Additional topics include sorting and searching algorithms, Monte Carlo and genetic algorithms, as well as computational complexity and intractability.

CS 419 Informatics

Information is the discipline that applies the methodologies of science and engineering to information. It concerns organizing data into information, learning knowledge from information, learning new information from knowledge and making decisions based on the knowledge and information learned. This course concerns computational methods for analyzing data and processing information in applications to business decisions.

CS 422 Data Mining

Data mining is a powerful technology that extracts useful knowledge hidden in large datasets. This knowledge can be utilized to help people make decisions and predict future events. Data mining has its wide application in many areas, including science and engineering, finance and marketing research, medicine and healthcare, etc. This course introduces several fundamental data mining techniques and algorithms, such as data preparation, classification, and clustering. Additional topics include privacy-preserving data mining and recommender systems.