CIS 510 Curves & Surfaces: Theory & Applications
Prerequisite: Basic knowledge of linear algebra, calculus, and elementary geometry (CIS 560 not required.) The course is about mathematical and algorithmic techniques used for geometric modeling and geometric design, using curves and surfaces. There are many applications in computer graphics as well as in robotics, vision, and computational geometry. Such techniques are used in 2D and 3D drawing and plot, object silhouettes, animating positions, product design (cars, planes, buildings), topographic data, medical imagery, active surfaces of proteins, attribute maps (color, texture, roughness), weather data, art, etc. Three broad classes of problems will be considered: Approximating curved shapes, using smooth curves or surfaces; Interpolating curved shapes, using smooth curves or surfaces; Rendering smooth curves or surfaces.
|
CIS 520 Machine Learning
Prerequisite(s): Elementary probability, calculus, and linear algebra. Basic programming experience. This course covers the foundations of statistical machine learning. The focus is on probabilistic and statistical methods for prediction and clustering in high dimensions. Other topics covered include graphical models, dimensionality reduction, neural networks, and reinforcement learning. Fundamentals of AI. (C) Prerequisite(s): Students are expected to have the following background: Basic algorithms, data structures and complexity (dynamic programming, queues, stacks, graphs, big-O, P/NP; Basic probability and statistics (random variables, standard distributions, simple regression); Basic linear algebra (matrices, vectors, norms, inverses); Reasonable programming skills.Modern AI uses a collection of techniques from a number of fields in the design of intelligent systems:probability, statistics, logic, operations research, optimal control and economics, to name a few. This course covers basic modeling and algorithmic tools from these fields underlying current research and highlights their applications in computer vision, robotics, and natural language processing. |
CIS 560 Computer Graphics
Prerequisite(s): One year programming experience (C, JAVA, C++). A thorough introduction to computer graphics techniques, including 3D modeling, rendering, and animation. Topics cover: geometric transformations, geometric algorithms, software systems (OpenGL), 3D object models (surface and volume), visible surface algorithms, image synthesis, shading and mapping, ray tracing, radiosity, global illumination, photon mapping, anti-aliasing, animation techniques, and virtual environments.
|
CIS 562 Computer Animation
Prerequisite(s): Previous exposure to major concepts in linear algebra (i.e. vector matrix math), curves and surfaces, dynamical systems (e.g. 2nd order mass-spring-damper systems) and 3D computer graphics has also been assumed in the preparation of the course materials. This course covers core subject matter common to the fields of robotics, character animation and embodied intelligent agents. The intent of the course is to provide the student with a solid technical foundation for developing, animating and controlling articulated systems used in interactive computer games, virtual reality simulations and high-end animation applications. The course balances theory with practice by "looking under the hood" of current animation systems and authoring tools and examines the technolgies and techniques used from both a computer science and engineering perspective. Topics covered include: geometric coordinate systems and transformations; quaternions; parametric curves and surfaces; forward and inverse kinematics; dynamic systems and control; computer simulation; keyframe, motion capture and procedural animation; behavior-based animation and control; facial animation; smart characters and intelligent agents. |
CIS 563 Physically Based Animation
Prerequisite(s): CIS 460/560; CIS 462/562 or instructor's permission. Students should have a good knowledge of C++, OpenGL and basic familiarity with linear algebra and physics. This course introduces students to common physically based modeling techniques for animation of virtual characters, fluids and gases, rigid and deformable solids, cloth, explosions and other systems. To gain hands-on experience, students implement basicsimulators for several systems. Topics include - Simulating Deformable Objects: Particle Systems, Mass spring systems, Deformable Solids & Fracture, Cloth, Explosions & Fire, Smoke, Fluids, Deformable active characters, Simulating Rigid bodies , Rigid bodies dynamics, Collision detection and handling, Controlling rigid bodies simulation; Simulating Articulated Bodies: Simulated characters in games, Optimization for character animation, Data driven approaches, Dynamic Response for Games. The course is appropriate for both upper level undergraduate and graduate students. |
CIS 564 Game Design & Development
Basic understanding of 3D graphics and animation principles, priorexposure to scripting and programming languages such as Python, C and C++. The intent of the course is to provide students with a solid theoretical understanding of the core creative principles, concepts, and game play structures/schemas underlying most game designs. The course also will examine game development from an engineering point of view, including: game play mechanics, game engine software and hardware architectures, user interfaces, design documents, playtesting and production methods. |
CIS580 Machine Perception
Prerequisite(s): A solid grasp of the fundamentals of linear algebra. Some knowledge of programming in C and/or Matlab. An introduction to the problems of computer vision and other forms of machine perception that can be solved using geometrical approaches rather than statistical methods. Emphasis will be placed on both analytical and computational techniques. This course is designed to provide students with an exposure to the fundamental mathematical and algorithmic techniques that are used to tackle challenging image based modeling problems. The subject matter of this course finds application in the fields of Computer Vision, Computer Graphics and Robotics. Some of the topics to be covered include: Projective Geometry, Camera Calibration, Image Formation, Projective, Affine and Euclidean Transformations, Computational Stereopsis, and the recovery of 3D structure from multiple 2D images. This course will also explore various approaches to object recognition that make use of geometric techniques, these would include alignment based methods and techniques that exploit geometric invariants. In the assignments for this course, students will be able to apply the techniques to actual computer vision problems. |
CIS 581 Computer Vision & Computational Photography
This is an introductory course to Computer Vision and Computational Photography. This course will explore three topics: 1) image morphing, 2) image matching and stitching, and 3) image recognition. This course is intended to provide a hands-on experience with interesting things to do on images/videos. The world is becoming image-centric. Cameras are now found everywhere, in our cell phones, automobiles, even in medical surgery tools. Computer vision technology has led to latest innovations in areas such as Hollywood movie production, medical diagnosis, biometrics, and digital library. This course is suited for students from all Engineering backgrounds, who have the basic knowledge of linear algebra and programming, and a lot of imagination.
|
CIS 610 Advanced Geometric Methods
Prerequisite(s): CIS 510 or coverage of equivalent material. The purpose of this course is to present some of the advanced geometric methods used in geometric modeling, computer graphics, computeer vision, etc. The topics may vary from year to year, and will be selected among the following subjects (nonexhaustive list): Introduction to projective geometry with applications to rational curves and surfaces, control points for rational curves, retangular and triangular rational patches, drawing closed rational curves and surfaces; Differential geometry of curves (curvature, torsion, osculating planes, the Frenet frame, osculating circles, osculating spheres); Differential geometry of surfaces (first fundamental form, normal curvature, second fundamental form, geodesic curvature, Christoffel symbols, principal curvatures, Gaussian curvature, mean curvature, the Gauss map and its derivative dN, the Dupin indicatrix, the Theorema Egregium equations of Codazzi-Mainadi, Bonnet's theorem, lines of curvatures, geodesic torsion, asymptotic lines, geodesic lines, local Gauss-Bonnet theorem). |
CIS 620 Advanced Topics in AI
Prerequisite(s): CIS 520 or equivalent. Discussion of problems and techniques in Artificial Intelligence (AI): Knowledge Representation, Natural Language Processing, Constraint Systems, Machine Learning; Applications of AI. |
CIS 665 GPU Programming & Architecture
Prerequisite(s): CIS 460 or CIS 560, and familiarity with computer hardware/systems. The hardware/systems requirement may be met by CIS 501; or CIT 593 and 595; or CIS 240 (with CIS 371 recommended); or equivalent coursework. |
CIS 680 Advanced Topics in Machine Perception
Prerequisite: A previous course in machine perception or knowledge of image processing, experience with an operating system and language such as Unix and C, and aptitude for mathematics. Graduate seminar in advanced work on machine perception as it applies to robots as well as to the modeling of human perception. Topics vary with each offering.
|
EAS 545 Engineering Entrepreneurship I
Prerequisite(s): Third or Fourth year or Graduate standing. Engineers and scientists create and lead great companies, hiring managers when and where needed to help execute their vision. Designed expressly for students having a keen interest in technological innovation, this course investigates the roles of inventors and founders in successful technology ventures. Through case studies and guest speakers, we introduce the knowledge and skills needed to recognize and seize a high-tech entrepreneurial opportunity - be it a product or service - and then successfully launch a startup or spin-off company. The course studies key areas of intellectural property, its protection and strategic value; opportunity analysis and concept testing; shaping technology driven inventions into customer-driven products; constructing defensible competitive strategies; acquiring resources in the form of capital, people and strategic partners; and the founder's leadership role in an emerging high-tech company. Throughout the course emphasis is placed on decisions faced by founders, and on the sequential risks and determinants of success in the early growth phase of a technology venture. The course is designed for, but not restricted to, students of engineering and applied science and assumes no prior business education. |
EAS 546 Engineering Entrepreneurship II
Prerequisite(s): EAS 445, 545. This course is the sequel to EAS 545 and focuses on the planning process for a new technology venture. Like its prerequisite, the course is designed expressly for students of engineering and applied science having a keen interest in technological innovation. Whereas EAS 545 investigates the sequential stages of engineering entrepreneurship from the initial idea through the early growth phase of a startup company, EAS 546 provides hands-on experience in developing a business plan for such a venture. Working in teams, students prepare and present a comprehensive business plan for a high-tech opportunity. The course expands on topics from EAS 545 with more in-depth attention to: industry and marketplace analysis; competitive strategies related to high-tech product/service positioning, marketing, development and operations; and preparation of sound financial plans. Effective written and verbal presentation skills are emphasized throughout the course. Ultimately, each team presents its plan to a distinguished panel of recognized enterepreneurs, investors and advisors from the high-tech industry. |
ENM 503 Introduction to Probability & Statistics
Prerequisite(s): MATH 240 or equivalent. Introduction to probability. Expectation. Variance. Covariance. Joint probability. Moment generating functions. Stochastic models and applications. Markov chains. Renewal processes. Queuing models. Statistical inference. Linear regression. Computational probability. Discrete-event simulation. |
ENM 510 Foundations of Engineering Math I
Prerequisite(s): MATH 240, MATH 241 or equivalent. This is the first course of a two semester sequence, but each course is self contained. Over the two semesters topics are drawn from various branches of applied mathematics that are relevant to engineering and applied science. These include: Linear Algebra and Vector Spaces, Hilbert spaces, Higher-Dimensional Calculus, Vector Analysis, Differential Geometry, Tensor Analysis, Optimization and Variational Calculus, Ordinary and Partial Differential Equations, Initial-Value and Boundary-Value Problems, Green's Functions, Special Functions, Fourier Analysis, Integral Transforms and Numerical Analysis. The fall course emphasizes the study of Hilbert spaces, ordinary and partial differential equations, the initial-value, boundary-value problem, and related topics. |
ENM 511Foundations of Engineering Math II
Prerequisite(s): ENM 510 or equivalent. Vector Analysis: space curves, Frenet - Serret formulae, vector theorems, reciprocal systems, co and contra variant components, orthogonal curvilinear systems. Matrix theory: Gauss-Jordan elimination, eigen values and eigen vectors, quadratic and canonical forms, vector spaces, linear independence, Triangle and Schwarz inequalities, n-tuple space.Variational calculus: Euler-Lagrange equation, Finite elements, Weak formulation, Galerkin technique, FEMLAB. Tensors: Einstein summation, tensors of arbitrary order, dyads and polyads, outer and inner products, quotient law, metric tensor, Euclidean and Riemannian spaces, physical components, covariant differentiation, detailed evaluation of Christoffel symbols, Ricci's theorem, intrinsic differentiation, generalized acceleration, Geodesics. |
ESE 504 Introduction to Optimization
Prerequisite(s): Linear Algebra. The course provides a detailed inroduction to linear and nonlinear optimization analysis as well as integer optimization analysis. It discusses methods for the mathematical formulation of linear programming (LP) integer programming (IP) and nonlinear programming (NLP) problems, as well as methods of computational tools used for their solutions. In discussions surrounding the solutions to LP problems, the Simplex method and the Revised Simplex methods are covered in a fairly rigorous fashion along with the LINDO computational computer package. Sensitivity analysis associated with the optimal solutions to LP problems is also discussed in detail using both geometric and algebraic methods. In discussions surrounding the solutions to IP problems, the course covers: (a) branch and bound, (b) enumeration and (c) cutting-plane methods, and these are applied to numerous classic problems in IP. In discussions surrounding the solutions to NLP problems, the course covers methods involving: (a) differential Calculus, (b) steepest ascent and decent and (c) Lagrange Multipliers. The Kuhn-Tucker Conditions are also presented and applied to problems in Quadratic Programming. Many examples are selected from a broad range of engineering and business problems. |
ESE 500 Linear Systems
Prerequisite(s): Open to graduates and undergraduates who have taken undergraduate courses in linear algebra and differential equations. This graduate level course focuses on linear system theory in time domain based on linear operators. The course introduces the fundamental mathematics of linear spaces, linear operator theory, and then proceeds with existence and uniqueness of solutions of differential equations, the fundamental matrix solution and state transition matrix for time- varying linear systems. It then focuses on the fundamental concepts of stability, controllability, and observability, feedback, pole placement, observers, output feedback, kalman filtering, linear quadratic regulator. Special topics such as optimal control, robust, geometric linear control will be considered as time permits. |
ESE 505 Control Systems Design
Basic methods for analysis and design of feedback control in systems. Applications to practical systems. Methods presented include time response analysis, frequency response analysis, root locus, Nyquist and Bode plots, and the state-space approach.
|
ESE 519 Real Time & Embeded Systems
Prerequisites: Programming in C/C++, ESE 350 or equivalent, one course on computer networks and senior or graduate standing. The use of distributed wireless sensor networks has surged in popularity in recent years with applications ranging from environmental monitoring, to people- and object-tracking in both cooperative and hostile environments. This course is targeted at understanding and obtaining hands-on experience with the state-of-the-art in such wireless sensor networks which are often composed using relatively inexpensive sensor nodes that have low power consumption, low processing power and bandwidth. The course will span a variety of topics rangingn from radio communications, network stack, systems infrastructure including QoS support and energy management, programming paradigms, distributed algorithms and example applications. Some guest lectures may be given.
|
ESE 530 Elements of Probability Theory & Random Processes
Prerequisite(s): A solid foundation in undergraduate probability at the level of STAT 430 or ESE 301 at Penn. Students are expected to have a sound calculus background as covered in the first two years of a typcial undergraduate engineering curriculum. Undergraduates are warned that the course is very mathematical in nature with an emphasis on rigour; upperclassmen who wish to take the course will need to see the instructor for permission to register. This rapidly moving course provides a formal framework for the development of fundamental ideas in probability theory. This course is a prerequisite for subsequent courses in communication theory and telecommunications such as ESE 576 and TCOM 501. The course is also suitable for students seeking a rigourous and broad graduate-level exposure to probabalistic ideas and principles with applications in diverse settings. |
ESE 601 Hybrid Systems
Hybrid systems combine discrete state-machines and continuous differential equations, and have been used as models of a large number of applications in areas such as real-time software, embedded systems, robotics, mechatronics, aeronautics, process control, and biological systems. The course will cover state-of-the-art modeling, design, and analysis of hybrid systems. The course is interdisciplinary, and is aimed at bringing together concepts in control theory and computer science. Specific topics include modeling, simulation, stability, reachability, and controller design for hybrid systems. Computational tools for the simulation and verification of hybrid systems will be emphasized with applications to robotics, avionics, air traffic management systems, and biological systems. The course consists of lectures, homeworks, and a final project. |
ESE 605 Convex Optimization
Prerequisite(s): Knowledge of linear algebra and willingness to do programming. Exposure to numerical computing, optimization, and application fields is helpful but not required. This course concentrates on recognizing and solving convex optimization problems that arise in engineeering. Topics include: convex sets, functions, and optimization problems. Basis of convex analysis. Linear, quadratic, geometric, and semidefinite programming. Optimality conditions, duality theory, theorems of alternative, and applications. Interior-point methods, ellipsoid algorithm and barrier methods, self-concordance. Applications to signal processing, control, digital and analog circuit design, computation geometry, statistics, and mechanical engineering. |
ESE 617 Nonlinear Systems
Prerequisite(s): Undergraduate Control course. This courses focuses on nonlinear systems, planar dynamical systems, Poincare Bendixson Theory, index theory, bifurcations, Lyapunov stability, small-gain theorems, passivity, the Poincar map, the center manifold theorem, geomentric control theory, and feedback linearization.
|
ESE 650 Learning in Robotics
Prerequisite(s): Students will need permission from the instructor. They will be expected to have a good mathematical background with knowledge of machine learning techniques at the level of CIS 520, signal processing techniques at the level of ESE 531, as weill as have some robotics experience. |
MEAM 510 Design of Mechatronic Systems
Prerequisite(s): Graduate standing in engineering or permission of the instructor. In many modern systems, mechanical elements are tightly coupled with electronic components and embedded computers. Mechatronics is the study of how these domains are interconnected, and this hands-on, project-based course provides an integrated introduction to the fundamental components within each of the three domains, including: mechanical elements (prototyping, materials, actuators and sensors, transmissions, and fundamental kinematics), electronics(basic circuits, filters, op amps, discrete logic, and interfacing with mechanielements), and computing (interfacing with the analog world, microprocessor technology, basic control theory, and programming). |
MEAM 515 Product Design
This course provides tools and methods for creating new products. The course is intended for students with a strong career interest in new product development, entrepreneurship, and/or technology development. The course follows an overall product methodology, including the identification of customer needs, generation of product concepts, prototyping, and design-for-manufacturing. Weekly student assignments are focused on the design of a new product and culminate in the creation of a prototype.
|
MEAM 520 Robotics & Automation
Prerequisite(s): Graduate standing in engineering or permission of instructor. The rapidly evolving field of robotics includes systems designed to replace, assist, or even entertain humans in a wide variety of tasks. Recent examples include planetary rovers, robotic pets, medical surgical-assistive devices, and semiautonomous search-and-rescue vehicles. This introductory-level course presents the fundamental kinematic, dynamic, and computational principles underlying most modern robotic systems. The main topics of the course include: coordinate transformations, manipulator kinematics, mobile-robot kinematics, actuation and sensing, feedback control, vision, motion planning, and learning. The material is reinforced with hands-on lab exercises including basic robot- arm control and the programming of vision-guided mobile robots. |
MEAM 535 Advanced Dynamics
Rigid body kinematics; Newtonian formulations of laws of motion; concepts of momentum, energy and inertia properties; generalized coordinates, holonomic and nonholonomic constraints. Generalized forces, principle of virtual work, D'Alembert's principle. Lagrange's equations of motion and Hamilton's equations. Conservation laws and integrals of motion. Friction, impulsive forces and impact. Applications to systems of rigid bodies.
|
MEAM 610 Advanced Mechatronics
Prerequisites: MEAM 410/510 or equivalent, (understanding of DC motors, basic prototyping skills, familiarity with programming microcontrollers, basic digital electronics, ideal op-amps).
This course provides an in-depth exploration into electro-mechanical systems. Topics covered will expand on actuation mechanisms (including shape memory alloy and brushless motors); sensing mechanisms (including range sensors and proximity detectors), signal conditioning (with particular emphasis on dealing with noise and the non-idealities of typical components); programming modalities (including real-time operating systems and filters); and communication mechanisms (such as wireless RF, CANbus, SPI/I2C and others). The project-based course will focus on the integration of systems at the OEM-component level and will include significant mechanical interface design. |
MEAM 620 Robotics
Prerequisite(s): Graduate standing in engineering and MEAM 535 or ESE 500 or CIS 580 or equivalent. Geometry of rigid body displacements, coordinate systems and transformations; Kinematics of spatial mechanisms, direct and inverse kinematics for serial chain linkages, velocity and acceleration analysis; Dynamics, trajectory generation and control of manipulators; Motion planning and control of robotic systems. |
MEAM 625 Haptic Interfaces for Virtual Environments & Teleoperation
Prerequisite(s): Graduate standing in engineering and MEAM 535 (Advanced Dynamics) or ESE 500 (Linear Systems Theory) or CIS 580 (Machine Perception) or equivalent. Undergraduates require permission.
This class provides a graduate-level introduction to the field of haptics, which involves human interaction with real, remote, and virtual objects through the sense of touch. Haptic interfaces employ specialized robotic hardware and unique computer algorithms to enable users to explore and manipulate simulated and distant environments. Primary class topics include human haptic sensing and control, haptic interface design, virtual environment rendering methods, teleoperation control algorithms, and system evaluation; current applications for these technologies will be highlighted, and important techniques will be demonstrated in a laboratory setting. Coursework includes problem sets, programming assignments, reading and discussion of research papers, and a final project. Appropriate for students in any engineering discipline with interest in robotics, dynamic systems, controls, or human-computer interaction. |
|