hero image
Philip Dorin - Loyola Marymount University. Los Angeles, CA, US

Philip Dorin Philip Dorin

Professor of Electrical Engineering & Computer Science | Loyola Marymount University


Seaver College of Science and Engineering





loading image loading image loading image




Phone: 310.338.2832
Email: pdorin@lmu.edu
Office: Doolan Hall 102

Dr. Dorin is Professor of Computer Science and Electrical Engineering, having joined the LMU faculty in 1971. He teaches courses in programming and data structures, advanced algorithms, and theoretical computer science. When he’s not busy torturing undergraduate students with combinatorial puzzles, he can often be found playing piano with the Marymount Institute Jazz Trio.

Education (3)

University of California at Los Angeles: Ph.D., Computer Science 1982

Northeastern University: M.S., Electrical Engineering 1971

Massachusetts Institute of Technology: B.Sc., Electrical Engineering 1970

Areas of Expertise (4)

Computer Science Combinatorial Optimization Modern Heuristics Nature-Inspired Algorithms

Industry Expertise (3)

Electrical Engineering Computer Software Education/Learning

Affiliations (2)

  • Association of Computing Machinery (ACM)
  • ACM Special Interest Group on Algorithms and Computation Theory (SIGACT)

Courses (6)

FFYS 1000 (section 61) - Mathematician Meets Music

In this seminar we will discuss (primarily, Western piano-centric) music, with a decided emphasis on modern jazz, as seen through the eyes of a career mathematician and sometime pianist.

view more

CMSI 186 (sections 01, 02, 03) - Programming Laboratory

We will study a new programming language, Java, along with key components of its development environment. Unlike JavaScript, an interpreted language that is handled, typically, within a web browser, Java is a compiled language: programs must first be translated into .class files, which are then executed by a Java Virtual Machine.

view more

CMSI 198 (01) - From Puzzles to Programs

The main objective is to use puzzles as the point of departure for discussions of some of the great ideas from Computation, Information, and Mathematics.

view more

CMSI 281 (01 and 02)- Data Structures and Algorithms I

This is the first in a two-course sequence about some of the fundamental data structures, algorithms, and algorithm paradigms of computing.

view more

CMSI 282 (01) - Data Structures and Algorithms II

This course is the second in a two-course sequence about some of the fundamental data structures, algorithms, problems, and paradigms of computing.

view more

CMSI 385 (01) - Introduction to the Theory of Computation

The goal is to become familiar with some of the main ideas in the theory of computation. We will emphasize classical automata (especially finite automata, pushdown automata, and Turing machines); formal grammars and languages (especially regular sets, context-free languages, recursive and recursively enumerable languages); and computability/decidability.

view more

Articles (4)

An open source software culture in the undergraduate computer science curriculum ACM SIGCSE Bulletin


Open source software has made inroads into mainstream computing where it was once the territory of software altruists, and the open source culture of technological collegiality and accountability may benefit education as well as industry. This paper describes the Recourse project, which seeks to transform the computer science undergraduate curriculum through teaching methods based on open source principles, values, ethics, and tools.

view more

Laboratory redux ACM SIGCSE Bulletin


This article updates our earlier experiences with a Programming Laboratory. It appears between an introductory programming course and a two-semester sophomore sequence in data structures and algorithms. Although it was once organized around the notion of algorithm paradigms (with Ada as the implementation language), it has de-volved into a course that stresses fundamentals of programming (with Java as our programming language).

view more

Practice + paradigms: experience with a first-year programming workshop ACM SIGCSE Bulletin


"The Computer in Action" is a role-playing activity developed by the Computer Science Outreach program at Purdue University, in which students process instructions and data in the same way that a real computer does. Students play the roles of Keyboarder, ...

view more

Software engineering and the game of monopoly Software engineering and the game of monopoly


We claim that a good basis for a course in Software Engineering is to have a group of students make a computer program for the game of Monopoly. We discuss our experiences in organizing and running such a course, and on the computer program that resulted from the most recent version of the course.

view more