Coursework
Here is a listing of courses I have completed or am currently completing at Carnegie Mellon, along with a description.
- 15-212 Principles of Programming
This course presents principles and techniques of programming, focusing on sophisticated methods for specifying, constructing, and reasoning about computer programs. Via features of a high-level functional programming language (currently ML), this course concretely illustrates mechanisms for building user-defined data types, including recursive and polymorphic types, and infinite data structures such as streams; for building higher-order control constructs such as first-class functions and continuations; and for building large programs using advanced module composition. It also introduces the use of formal methods for specifying and verifying programs.
- 36-402 Advanced Data Analysis
The material in this course concentrates on methods for the analysis of data, building on the theory and application of the linear model from 36-401. Topics include repeated measures ANOVA, linear mixed models, analysis of categorical data, power calculation, and if time permits, other topics such as non-linear regression, classification, survival analysis and multivariate methods. Real-world examples will be drawn from a variety of fields. Students will analyze data and write reports.
- 36-462 Special Topic: Statistical Learning
In this special topics course, we will explore different unsupervised learning techniques (i.e. "learning without labels") focusing more heavily on clustering and classification methodology. Emphasis will be on using these tools in practice and in particular for finding reduced group structure in multivariate high-dimensional data. We will also focus on diagnostics and validation of our methods (i.e. how do we know if we succeeded? Are there subgroups that need more analysis? Which observations are problematic?). Applications will include, among others, astrostatistics, text mining, and genetics.
- 36-490 Undergraduate Research in Statistics
This course is designed to give undergraduate students experience using statistics in real research problems. Small groups of students will be matched with clients and do supervised research for a semester. Students will gain skills in approaching a research problem, critical thinking, statistical analysis, scientific writing, and conveying and defending their results to an audience. Eligible students will receive information about the application processes for this course early in the fall.
- 70-460 Mathematical Models for Consulting
This course introduces students to a wide variety of models and techniques used by consultants and decision-support software. It covers applications of linear and integer programming, fuzzy logic and fuzzy control, neural networks, constraint programming, Bayesian networks, influence diagrams, analytical hierarchy process, and data envelopment analysis. Such heuristic methods as tabu search, simulated annealing, genetic algorithms, learning based methods, asynchronous teams, and ant colonies are briefly discussed.
Spring 2010
- 15-381 Artificial Intelligence
This course is about the theory and practice of Artificial Intelligence. We will study modern techniques for computers to represent task-relevant information and make intelligent (i.e. satisfying or optimal) decisions towards the achievement of goals. The search and problem solving methods are applicable throughout a large range of industrial, civil, medical, financial, robotic, and information systems. We will investigate questions about AI systems such as: how to represent knowledge, how to effectively generate appropriate sequences of actions and how to search among alternatives to find optimal or near-optimal solutions. We will also explore how to deal with uncertainty in the world, how to learn from experience, and how to learn decision rules from data. We expect that by the end of the course students will have a thorough understanding of the algorithmic foundations of AI, how probability and AI are closely interrelated, and how automated agents learn. We also expect students to acquire a strong appreciation of the big-picture aspects of developing fully autonomous intelligent agents. Other lectures will introduce additional aspects of AI, including natural language processing, web-based search engines, industrial applications, autonomous robotics, and economic/game-theoretic decision making.
- 36-350 Data Mining
Data mining is the art of extracting useful patterns from large bodies of data; finding seams of actionable knowledge in the raw ore of information. The rapid growth of computerized data, and the computer power available to analyze it, creates great opportunities for data mining in business, medicine, science, government, etc. The aim of this course is to help you take advantage of these opportunities in a responsible way. After taking the class, when you're faced with a new problem, you should be able to (1) select appropriate methods, and justify their choice, (2) use and program statistical software to implement them, and (3) critically evaluate the results and communicate them to colleagues in business, science, etc.
- 36-401 Modern Regression
The material in this course concentrates on methods for the analysis of data. The emphasis is on description, validation, and interpretation. Topics include exploratory data analysis, statistical computing, and regression analysis. Real-world examples will be drawn from engineering and the various physical and social sciences. Students will do projects and write reports.
- 70-122 Introduction to Accounting
This course provides the knowledge and skills necessary for the student to understand financial statements and financial records and make use of the information for management and investment decisions. Topics include an overview of financial statements and business decisions; the balance sheet, the income statement, and the cash flow statement; sales revenue, receivables, and cash; cost of goods sold and inventory; long-lived assets and depreciation, and amortization; current and long-term liabilities; owners? equity; investments in other corporations; an introduction to financial statement analysis; and international issues dealing with financial statements.
- 73-200 Macroeconomics
Through macroeconomic models built upon microeconomic foundations, insights are developed into economic growth processes and business cycles. Topics include aggregation and measurement, national income, business cycle measurement, economic welfare theorems and social inefficiencies, the effect of the government fiscal policy upon employment and productivity, and the relationship between investment, interest rates and economic growth.
Fall 2009
- GEOG10072 Culture of Cities
"The course links western urbanisation to the broader cultural, social and political experience of modernity. It provides a critical introduction to the historical geographical and cultural process of urbanisation in the western world during the 19th and 20th century, and treats Urbanisme (urban planning) and urban utopias as modernity.s efforts to impose control and clarity, and to counteract the negative effects of the rapid industrialization. The main argument running through the course is that we cannot understand the production of urban space without putting it in its historical, geographical and cultural context. Concrete examples from western cities will be used to demonstrate this process.
Each lecture focuses on the understanding of a distinct historical period, and consists of two components:
1. the social, political and economic conditions under which urbanisation took place, and
2. the general cultural background and the specific modernist theories and planning practices for a .better. city (urbanism) during the same period.
The above two processes are put in juxtaposition in order to address the relationships between political, economic, social and cultural processes, as well as the planning & design projects that shaped western cities." - MATH20602 Numerical Analysis
"Numerical analysis is concerned with finding numerical solutions to problems for which analytical solutions either do not exist or are not readily or cheaply obtainable. This course provides an introduction to the subject, focusing on the three core topics of iteration, interpolation and quadrature. The module starts with 'interpolation schemes', methods for approximating functions by polynomials, and 'quadrature schemes', numerical methods for approximating integrals, will then be explored in turn. The second half of the module looks at solving systems of linear and nonlinear equations via iterative techniques. In the case of linear systems, examples will be drawn from the numerical solution of differential equations. Students will learn about practical and theoretical aspects of all the algorithms. Insight into the algorithms will be given through MATLAB illustrations, but the course does not require any programming."
- MATH20712 Random Models
"The course introduces some simple stochastic processes, that is phenomena which evolve in time in a non-deterministic way. It applies the techniques developed in Probability and Statistics 1 and 2 together with the use of generating functions (or power series) to tackle problems such as the gambler's ruin problem, or calculating the probability of the extinction of certain populations."
- MATH20802 Statistical Methods
"Statistical methodology is concerned with taking the numerical information contained in a sample (the data) and using it to make statements (or inferences) about the population from which the sample is drawn. In that the sample provides incomplete information about the entire population, there is inevitably some uncertainty relating to any inferences made. The methods developed in this course unit not only acknowledge this uncertainty but seek to model it in a meaningful way."
- MATH20912 Introduction to Financial Mathematics
"This course is intended to serve as a basic introduction to financial mathematics. It gives a mathematical perspective on the valuation of financial instruments (futures, options, etc.) and their risk-management. The purpose of the course is to introduce students to the stochastic techniques employed in derivative pricing."
- PSYC10032 Introduction to Brain and Behavior
"This course provides students with:
1. An introduction to neuroanatomy and to how neurons communicate.
2. A basic knowledge of methods used to research brain function.
3. An introduction to cognitive neuropsychology.
4. An introduction to the basic biopsychological mechanisms responsible for how we express and comprehend a wide range of human behaviors and emotions."
Spring 2009 (University of Manchester)
- 15-396 Special Topic: Science of the Web
"How does gossip spread over the blogosphere? How do search engines really work? How do I start a viral marketing campaign? Why has my Facebook App not become popular? How does digg work? This is a course on the mathematics, science, technology, politics and economics of Web information and on-line communities. Topics covered will include: social networks, search algorithms, markets on networks, network dynamics, and Web spam."
- 21-393 Operations Research II
"An important goal of this course is for the student to gain experience with the process of working in a group to solve a problem. Much of the course is devoted to a group project based upon case studies and methods presented. Topics may include combinatorial optimization, game theory, integer programming, heuristic methods."
- 36-225 Introduction to Probability & Statistics I
"This course is the first half of a year long course which provides an introduction to probability and mathematical statistics for students in mathematics and statistics. The use of probability theory is illustrated with examples drawn from engineering, the sciences, and management. Topics include elementary probability theory, conditional probability and independence, random variables, distribution functions, joint and conditional distributions, law of large numbers, and the central limit theorem."
- 70-371 Production & Operations Management
"This course is an introduction to production and operations management that covers both manufacturing and services. It deals with strategic issues (design of flexible supply), planning issues (capacity management), and operational issues (inventory management and information). The linkage between strategy and tactics will be emphasized. The students will learn concepts and tools that will help them to manage from the "boardroom" to the "toolroom.""
- 73-150 Microeconomics
"A calculus-based introduction to microeconomics, first offered in Spring 07. Topics in partial equilibrium analysis include supply and demand, consumer theory, theory of the firm, profit maximizing behavior, monopoly theory, and perfect competition. The course concludes with an introduction to general equilibrium analysis and the welfare laws."
Fall 2008
- 03-121 Modern Biology
"This is an introductory course that provides the basis for further studies in biochemistry, cell biology, genetics and molecular biology. This course emphasizes the chemical principles underlying biological processes and cell structures as well as the analysis of genetics and heredity from a molecular perspective. This is the introductory biology course for all science and non-science majors."
- 15-251 Great Theoretical
Ideas in Computer Science
"This course is about how to use theoretical ideas to formulate and solve problems in computer science. It integrates mathematical material with general problem solving techniques and computer science applications. Examples are drawn from Algorithms, Complexity Theory, Game Theory, Probability Theory, Graph Theory, Automata Theory, Algebra, Cryptography, and Combinatorics. Assignments involve both mathematical proofs and programming."
- 21-126 Introduction to
Mathematical Software
"This course provides an introduction to the use of several software packages, which are useful to mathematics students. Among the packages are Maple and Mathematica for symbolic computing, TeX and LaTeX for mathematical documents, and Matlab for numerical computing. The course will also introduce the mathematical facilities built into spreadsheets such as Excel. The aim of the course is to provide the student with some basic skills in the use of this software without attempting complete coverage. A deeper knowledge of the software will be easy to obtain after completing this course. There are no prerequisites for the course, other than basic computer literacy and a knowledge of elementary mathematics. It is suggested that the course should be taken during the first two years of undergraduate studies."
- 21-201 Undergraduate
Mathematics
Colloquium
"All mathematics majors meet for one hour each week to hear discussions on current research by faculty or students, presentations on mathematics from mathematicians outside academia, and expository talks on selected mathematical topics not part of the usual curricula. Also will include topics of special interest to undergraduates such as preparation for graduate school."
- 21-260 Differential
Equations
"Ordinary differential equations: first and second order equations, applications, Laplace transforms; partial differential equations: partial derivatives, separation of variables, Fourier series; systems of ordinary differential equations; applications."
- 21-292 Operations Research
I
"Operations research offers a scientific approach to decision making, most commonly involving the allocation of scarce resources. This course develops some of the fundamental methods used. Linear programming: the simplex method and its linear algebra foundations, duality, post-optimality and sensitivity analysis; the transportation problem; the critical path method; non-linear programming methods."
- 82-132 Elementary Chinese
II
"This course is the continuation of the elementary Chinese course sequence for beginning students of Mandarin Chinese. Its goal is to continue to train students in the basic skills of listening, speaking, reading and writing for everyday communication. Based on the vocabulary and sentence structures taught in the first semester, students will learn more useful expressions and sentence structures necessary for use in everyday life. A large part of the class time will be devoted to conversations related to topics on daily life. While emphasis is laid on the communicative skills of listening and speaking, students will continue to learn to read and write short paragraphs and essays in Chinese characters. To facilitate the study of the language, different aspects of Chinese culture and society will be introduced through poetry reading, group activities, multi-media programs, and research project throughout the course. The elementary level is designed to help students learn to reflect upon and draw upon strategies used by good language learners in their second language study."
Spring 2008
- 15-123 Effective
Programming in C & Unix
"This course is designed to provide a substantial exposure to the C programming language and the Unix programming environment for students with prior programming experience but minimal exposure to C. Features of the C language that are emphasized include arrays, structs and unions, dynamic memory allocation (malloc and free), pointers, pointer arithmetic, and casting. Data structures that are emphasized include lists and hash tables. Students will develop a sense of proper programming style in the C idiom, and will be exposed to cross-platform portability issues. Students will learn to use tools such as emacs/vi, make, and gdb to assist them in the design, testing and debugging of their programs. Students will learn about regular expresions and grep and will be able to use a scripting language such as Perl to solve simple problems."
- 15-211 Fundamental Data Structures and Algorithms
"Fundamental programming concepts are presented together with supporting theoretical foundations and practical applications. This course emphasizes the practical application of techniques for writing and analyzing programs: data abstraction, program verification, and performance analysis. These techniques are applied in the design and analysis of fundamental algorithms and data structures. The course is currently taught in Java."
- 21-259 Calculus in Three Dimensions
"Vectors, lines, planes, quadratic surfaces, polar, cylindrical and spherical coordinates, partial derivatives, directional derivatives, gradient, divergence, curl, chain rule, maximum-minimum problems, multiple integrals, parametric surfaces and curves, line integrals, surface integrals, Green-Gauss theorems."
- 73-100 Principles of Economics
"Literally, an introduction to economic principles, the goal of this course is to give students an understanding as to what constitutes good 'economic thinking'. This thought process is grounded in the construction and use of economics models. Drawing on issues in both microeconomics and macroeconomics, fundamental principles are shown to transcend particular examples and allow the field to be seen as a coherent, unified whole."
- 82-131 Elementary Chinese I
"This is a Chinese language course for beginners. It aims at helping students to develop communicative competence in the four basic skills of listening, speaking, reading and writing the Chinese language. Students will learn basic vocabulary and sentence structures for use in essential daily-life situations through various forms of oral practice. Pinyin (the most-widely used Chinese phonetic system) will be taught as a tool to learn the spoken language. Students will also learn Chinese characters in order to be able to communicate effectively in real Chinese situations. Approximately 200 words and expressions in both Pinyin and character forms will be taught. While linguistic aspects of the Chinese language are the primary focus, introduction to the social and cultural background of the language will also form an important part of the course."
Fall 2007
- 15-111 Intermediate
Advanced Programming
"A continuation of the process of program design and analysis for students with some prior programming experience (functions, loops, and arrays, not necessarily in Java). The course reinforces object-oriented programming techniques in Java and covers data aggregates, data structures (e.g., linked lists, stacks, queues, trees, and graphs), and an introduction to the analysis of algorithms that operate on those data structures. The course, along with 21-127, serves as a prerequisite for 15-211."
- 21-127 Concepts of Mathematics
"This course introduces the basic concepts, ideas and tools involved in doing mathematics. As such, its main focus is on presenting informal logic, and the methods of mathematical proof. These subjects are closely related to the application of mathematics in many areas, particularly computer science. Topics discussed include a basic introduction to elementary number theory, induction, the algebra of sets, relations, equivalence relations, congruences, partitions, and functions, including injections, surjections, and bijections."
- 21-132 Analysis II
"A continuation of Analysis I. L'Hospital's rule; trigonometric, logarithmic, and exponential functions; techniques of integration; approximation by polynomials, Taylor's theorem; sequences, series, power series; introduction to linear differential equations."
- 33-112 Physics II for Science Students
"This is the second semester course that follows 33-111. Electricity and magnetism is developed, including the following topics: Coulomb's law, polarization, electric field, electric potential, DC circuits, magnetic field and force, magnetic induction, and the origins of electromagnetic waves."
- 80-100 What Philosophy Is
"In this introductory course we will explore three major areas of Philosophy: Ethics, Metaphysics, and Epistemology. Accordingly the course is divided into three sections. In each section we will read primary sources and discuss some of the main philosophic problems associated with that area. These will include: moral problems (Ethics), problems rising from the debates about free-will, personal identity or intelligence (Metaphysics), and inquiries about the scope and limits of human knowledge (Epistemology). We will then introduce some theories designed to solve such problems, and try to understand the strengths and weaknesses of these theories. We will apply different techniques and theories to issues that we might encounter in the real world. We will use class discussions, homeworks and papers to learn skills for evaluating arguments. These skills include: how to present a philosophic argument, what are the assumptions that justify it, what are its weaknesses and its strengths, whether such weaknesses can be resolved and, if they cannot be resolved, why."
Spring 2007
- 15-100 Introductory/Intermediate Programming
"An introduction to the process of program design and analysis using the Java programming language for students who have NO prior programming experience. Topics to be covered include basic data types and their operators, I/O, control structures (selection, loops), classes (including methods and fields), arrays, and simple sorting and searching algorithms."
- 21-131 Analysis I
"An enriched first course in calculus which includes a greater concentration on the foundations of the subject. Recommended for students with some prior background in calculus and who seek a deeper calculus course. Functions, limits, continuity; the Intermediate Value Theorem; the Riemann integral; the Fundamental Theorem of Calculus; integrability of continuous functions; the derivative and its significance; product rule, quotient rule, chain rule; Mean Value Theorem; inverse functions."
- 33-111 Physics I for Science Students
"This calculus based course combines the basic principles of mechanics with some quantum physics and relativity to explain nature on both a microscopic and macroscopic scale. The course will build models to describe the universe based on a small number of fundamental physics principles. Some simple computer modeling will be done to develop insight into the solving of problems using Newton's laws. Topics covered will include vectors, momentum, force, gravitation, oscillations, energy, quantum physics, center of mass motion, angular momentum, statistical physics, and the laws of thermodynamics."
- 76-101 Interpretation and Argument
"76-101, a research-based First-Year English course, is structured to introduce students to an inductive process for writing an argument from sources. The course assumes that reading and writing are inseparable practices for responsible, academic authoring. In the course, students are exposed to a variety of different texts, both fiction and nonfiction, so that they can explore and critically evaluate a single issue from multiple perspectives. They are taught to summarize and analyze arguments within that issue so that they may contribute an argument of their own. The course is also geared toward helping students understand the requirements of college-level writing. Students should learn to be reflective and strategic with their composing processes as they plan, write, and revise their own texts. Ultimately, the course provides opportunities for students to develop critical thinking skills and strategic methods for analyzing and producing texts within the context of an academic community."