I teach a wide variety of classes at both the graduate and undergraduate level. I am most interested in courses related to Algorithms, but I also enjoy classes that tie our discipline to larger issues, such as ethics or other sciences.
Spring 2008: I am teaching CSA 361 and CSA 620J.
Classes
- CSA 274: Data Abstraction and Data Structures
- Abstract data types and their implementation as data structures using object-oriented programming. Use of object-oriented principles in the selection and analysis of various ADT implementations. Sequential and linked storage representations: lists, stacks, queues, and tables. Nonlinear data structures: trees and graphs. Recursion, sorting, searching, and algorithm complexity.
- 274 Standard Syllabus
- CSA 361: Societal & Ethical Issues in Computing
- An examination of the ethical, legal, and social responsibilities of the practicing professional computer scientist. Issues addressed include computers and privacy, computer crime, public safety, intellectual property and professional codes of ethics. Key issues will normal be considered through case studies.
- 361 Standard Syllabus
-
Readings on ethics, sociology, and computing.
- Books
- The Little Book of Plagiarism, Richard Posner. (Amazon)
- The Post-Truth Era, Ralph Keyes. (Amazon) Two related videos from the Colbert Report: (Truthiness, Wikiality)
- Player Piano, Kurt Vonnegut. (Amazon)
- Bowling Alone, Robert Putnam. (Amazon)
- CSA 464: Algorithms
- Review of basic data structures and algorithms. Analysis of algorithms. Problem assessment and algorithm design techniques. Algorithm implementation considerations. Concept of NP-completeness. Analysis of algorithms selected from topics relevant to computer science and software engineering (sorting, searching, string processing, graph theory, parallel algorithms, NP-complete problems, etc.)
- 464 Standard Syllabus
- CSA 606: Data Structures and Algorithms
- Abstract data types and their implementation as data structures using object-oriented programming. Lists, stacks, queues, tables, trees, and graphs. Recursion, sorting, searching, and algorithm complexity. Three credit hours lecture, one credit hour lab.
- 606 Standard Syllabus
- CSA 610A: Research Methods in Computer Science
- This course is required for all graduate students during their first semester. This one hour seminar will introduce students to research methods and resources at Miami, and in Computer Science. Topics include plagiarism, literature search, and paper preparation tools. A significant portion of class time will be set aside so that faculty may present their research agendas.
- CSA 620J: Algorithms for Hard Problems
- Review of NP-completeness, with an emphasis on proofs. Other notions of hardness (PSPACE, the poly-time hierarchy and oracles). Techniques for coping with hard problems (e.g. "Easy inputs," approximation algorithms). Randomized algorithms.
- 620C Standard Syllabus