Courses

Courses taken during Spring 2002:
CS 17-910: Business Models for Software Development Methods
    by Prof. Mary Shaw & Prof. Richard Florida

Software development methods prescribe human activities, tools, and intermediate products for developing software systems. They claim to improve characteristics of the software (e.g., reliability) or its production (e.g., total cost or schedule predictability). These claims have not, for the most part, been rigorously demonstrated. Further, the match between specific methods and types of software development organizations is poorly understood.

This course will examine the processes and claims of several software development methods. We will characterize the methods and their claims and identify the requirements and expectations that the methods place on organizations. We will determine what validating the claims would entail, including techniques suitable for validating the claims and the ways demonstrable claims could be incorporated in business models for software development.

Interdisciplinary groups of students will each develop expertise in one of the software development methods of current industry interest. Each group will report its findings in class presentations and a final report. We hope that the results will be suitable as the basis of a joint comparative study..


Courses taken during Fall 2001:
CS 17-939A: What Makes Good Research in Software Engineering?
    by Prof. Mary Shaw

Survey of influential classical papers in software engineering; analysis of the research process from problem identification, to methodology, to validation of result; and attempt to compile a set of case studies into the maturation of each sub-branch of software engineering.

CS 15-712: Advanced Operating Systems & Distributed Systems
    by Prof. Greg Ganger

Survey of papers on various aspects of system building. First topic under study are storage systems, starting with single computer, up to distributed versions.

Courses taken during Spring 2001 at CMU:
CS 17-755: Architectures of Software Systems
    by Prof. David Garlan

Introduction to various types of software architectures and related issues.

CS 18-849: Distributed Embedded Systems
    by Prof. Phil Koopman

In a word: Elevators.

Courses taken during Fall 2000 at CMU:
CS 17-751: Models of Software Systems
    by Prof. David Garlan

We learned first-order logics, Z-specification, state machines, state charts, algrebras, petri nets, CSP, and temporal logics.
I formally specified some of the major aspects of Sun's Jini specification for my Ph.D. project.

CS 15-886: Cognitive Processes and Problem Solving
    by Prof. Herbert Simon

The course surveys human cognitive processes from an information-processing point of view, emphasizing problem solving and other complex tasks, and the organization of the cognitive system, viewed at the symbolic level. The course covers 1) contemporary theory of human cognition and its empirical base, 2) task environments for studying cognition, and 3) methods for modeling behavior and securing empirical data. Topics such as short- and long-term memory, access time, chunking, and systems such as EPAM and GPS are discussed.

My term project explored human problem solving skills in software design.