deRandomized.org
:
Teaching
Home
Research
Teaching
Interests

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.
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.

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)
Articles
Coming soon(?)
 
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.)
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.
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.