In this course I explored the fundamental concepts of 2D and 3D computer graphics. In particular, I studied raster graphics techniques, image processing, interaction techniques, and user interface design. I also studied 3D modeling, viewing and rendering. I implemented a simple ray tracer at the end of the course.

Click here to see some of my images.

In this course I studied how to design and implement algorithms in the most efficient way possible. In doing so, I was exposed to the areas of scientific computing, hashing, searching, dynamic programming, network flow, and Fast Fourier Transform.

In this course I studied the criteria for a good user interface, experimental methods for evaluating user interfaces, user interface management systems, multimedia user interfaces, and groupware.

In this course, I studied a variety of current topics in computer graphics such as spline, wavelet, and subdivision models for geometric representation, interaction techniques and technology, computer vision as applied to computer graphics, physical simulation, and important numerical methods for computer graphics. I also worked on a large final project which explored gesture based interaction for a two-dimensional drawing and constraint application.

This course involved a semester long, team programming project which enabled students to learn and practice techniques of project management, analysis, specification, design, coding, documentation, and testing. I was the project manager for a team of 7 people who developed a personal information manager.

In this course, I studied algorithms and data structures for fundamental geometric problems in two and three dimensions. The topics included point location, range searching, convex hull, intersection, Voronoi diagrams, and graph drawing. Application of these topics to computer graphics, circuit layout, information visualization, and computer-aided design were also discussed. In the course, my final project was The Planar Orthogonal Graph Drawing and Bend Reduction Tester.

In this course, I studied the various aspects of the Unix and NT operating systems. I also learned about multithreaded programming using POSIX threads and implemented a version of the System 5 File System.

In this course, I investigated the use of a number of statistical approaches ,such as hidden Markov Models, to the problem of natural language processing. My final project was on determining noun-phrase coreference.

In this course I explored current and classic research in areas of computer graphics related to scientific visualization, scientific computation, and animation for computer graphics. Topics included volume visualization, volume modeling, visualization of multi-valued or multi-dimensional data, evaluation of visualization techniques, procedural, constraint-based, and traditional animation, simulation and motion control and optimization.

In this course, I explored the theory and applications of lattices for problems in cryptosystems and cryptanalysis. I also worked on solving shortest vector in the lattice problems.

The goal of this course was to carry out a small interdisciplinary research project. I learned about solving scientific problems using computer graphics and visualization, working in small multi-disciplinary groups to identifying scientific problems, proposing solutions involving computational modeling and visualization, designing and implementing the solutions, and evaluating their success. I also learned how to write grant proposals.

In this course, I learned about how the human visual system works and how we perceive motion. Topics included physiology, motion after-effect, temporal and spatial integration, optic flow, and second order motion.

In this course, I examined the statistical principle of experimental design and analysis. Topics included elementary probability, estimation and inference, analysis of variance, regression, and single-factor and higher order experiments.

In this course, I learned a number of different topics in scientific computing which included polynomial approximation, numerical integration, finite differences, and both linear and iterative linear equation solvers. The course stressed parallel computing approaches to these topics.

This course was broken up into two halves. The first half dealt with topics such as probability spaces and distributions and discrete and continuous random variables. The second half dealt with topics such as methods for parameter estimation, confidence intervals, and hypothesis testing.

This course represents a continuation of AM-165. I was exposed to topics which included likelihood-ratio tests, statistical computing, matrix approaches to single and multiple linear regression, analysis of variance, design of experiments, and logistic regression.

In this course, I studied the many facets of computational fluid dynamics. Topics I was exposed to included basic discritization methods (finite differences and finite elements), time-stepping algorithms, solvers for parabolic and hyperbolic partial differential equations, vorticity-based formulations, and Navier-Stokes problems.

Click here to see some visualizations I made.

In this course, I studied a number of different mathematical methods used in engineering and physics including vector calculus, tensors, linear and matrix algrebra, complex variables, and Fourier series.

This course was a continuation of AM-205. I studied, Fourier and Laplace transforms, ordinary and partial differential equations, and variational calculus.

In this course, I studied the theoretical foundations of the calculus using measure theory.

In this course, I studied how orthogonal polynomials can be used to numerically solve a variety of hyperbolic differential equations.

In this course, I studied a number of statistical techniques used when no underlying assumptions are made about the data. Specifically, I examined rank-based and robust statistics as well as the Bootstrap method.

Back to my Home Page