## Doing researchIf you are interested in pursuing a graduate degree under my supervision, I require the following: ### DISCRETE MATH- You have taken a course on Discrete Mathematics and you are very comfortable with the material: Propositional Logic, Predicate Logic, Ordered/Unordered Structures, Relations, Functions.
- Preferably, you have taken an advanced course on Discrete Mathematics or Formal Methods: If you have not taken such course, I will require you to take the following course with me as a prerequisite (and expect you to perform very well): Formal Methods for Software Engineering.
### PROGRAMMING LANGUAGES- You have taken at least one programming course, including one on Object-Oriented Programming, and you are very comfortable with the fundamental concepts: Class, Objects, Message Passing, Inheritance, Polymorphism, Casting, etc.
- Preferably you have taken a course on the Principles of Programming Languages and you are familiar with fundamental concepts of functional and logic programming.
- I will require you to take the following course with me (and expect you to perform very well): Comparative Study of Programming Languages
### SOFTWARE ENGINEERING- You have taken at least one course on object-oriented architecture/design and you have strong familiarity with UML, design patterns, architectural patterns, processes etc.
- In addition to the above, I will require you to take the following course with me and perform very well: Software Design Methodologies.
If you wish to contact me, please list all courses (and the grades you have received) under each of the areas above, e.g. 1.1: ..., 1.2: ..., etc. |