Skip to main content
John Rahme

faculty

John Rahme

Assistant Teaching Professor

Computer & Information Science

Contact

508-910-8353

508-999-9144

ksbinfAvnbtte/fev

Dion 302C

Teaching

Courses

Application of advanced object-oriented principles to practical software development. Topics include inheritance, polymorphism, abstract data types, exception handling, threads, and networking. Emphasis is placed on developing robust, reusable software through component libraries, code reuse strategies, and industry-relevant development practices.

Application of advanced object-oriented principles to practical software development. Topics include inheritance, polymorphism, abstract data types, exception handling, threads, and networking. Emphasis is placed on developing robust, reusable software through component libraries, code reuse strategies, and industry-relevant development practices.

Application of advanced object-oriented principles to practical software development. Topics include inheritance, polymorphism, abstract data types, exception handling, threads, and networking. Emphasis is placed on developing robust, reusable software through component libraries, code reuse strategies, and industry-relevant development practices.

Comprehensive coverage of all major groups of algorithms, including divide-and-conquer, dynamic programming, greedy, backtracking, branch-and-bound, and parallel algorithms. Discussion of the design and implementation of complex, dynamic data structures. The course also covers an introduction to the functional paradigm.

Comprehensive coverage of all major groups of algorithms, including divide-and-conquer, dynamic programming, greedy, backtracking, branch-and-bound, and parallel algorithms. Discussion of the design and implementation of complex, dynamic data structures. The course also covers an introduction to the functional paradigm.

Comprehensive coverage of all major groups of algorithms, including divide-and-conquer, dynamic programming, greedy, backtracking, branch-and-bound, and parallel algorithms. Discussion of the design and implementation of complex, dynamic data structures. The course also covers an introduction to the functional paradigm.

Models of sequential, parallel, and distributed computations. The Chomsky hierarchy of formal languages and their accepting machines are studied in detail. The relationship of these languages and machines to computer programs is presented. Influence of a Turing machine and related formalisms on modern computing are studied. Decidability of decision problems is explained. Several models of parallel and distributed computations are introduced and compared.

Specialized topics of interest and relevance to computer and information science. Course content may change from semester to semester according to instructor's preferences.

Offered as needed to present advanced material to graduate students.

Written presentation of an original research topic in Data Science which demonstrates the knowledge & capability to conduct independent research. The thesis shall be completed under the supervision of a faculty advisor. An oral examination in defense is required.

Back to top of page