Faculty and Staff

John Najarian

Professor • Department of Computer Science

Professional Interests

Algorithmics, Artificial Intelligence, Theory of Automata, 
Combinatorial Group Theory, Computability and Degrees of Unsolvability,
Computational Complexity, Computer Graphics, Formal Languages,
Theory of Computation

Other Interests

Logic, Mathematics, Other Sciences, Art, Music Appreciation, Game Programming,

Degrees

Specialization

Algorithmics, Artificial Intelligence, Theory of Automata, Combinatorial Group Theory, Computability and Degrees of Unsolvability, Computational Complexity, Computer Graphics, Formal Languages, Theory of Computation

Notable Courses Taught

CS 3600 Parallel and Distributed Computing (in Fall 2022)
An introduction to the concepts, models, architectures, and programming methodologies for parallel and distributedcomputation. Parallel algorithm design strategies (with patterns such as divide-and-conquer, map and reduce, master-workers) for multi-core, multi-processor, and network-based concurrency and parallelism by applying OpenMP. MPI, threads,semaphores, message-passing, and other coordination tools, both in tightly-coupled and networked environments. Issues in shared memory, racing, and deadlock, and other problems will be addressed and resolved.Actual coding projects will be in C++, Java, Hadoop, and other languages in support of these paradigms with appropriate API's(application program interfaces). Performance will be determined both by experimentation and analytic methods with respect to several measures such as time and space complexity. (Optional: If time permits, we will introduce GPU Programming.)

5022 Science East

For Fall 2022: Wednesday and Friday 3:30PM - 4:45PM and also other hours can be arranged by appointment (in office or by Zoom).