.:. Courses

Click on Course # to view course descriptions.

Links to CMU Requirements:

Freshman Year

Fall
Course Course Title Professor
15100 Intro/Interm Programming Roberts
15128 Freshmen Immigration Course Roberts
21115 Differential Calculus Walker
21116 Integral Calculus Walker
21127 Concepts of Mathematics Statman
76101 Interpretation & Argument Eperjesi
99102 Computing skills workshop Alexander
Spring
Course Course Title Professor
09105 Intro mod chemistry I Vandyke
15113 System Skills in C Hoffman
15121 Advanced programming Adamchik
21117 Integration & Dif equations Tolle
21118 Calculus Approximation Tolle
70643 Publishing on the WWW Stanton
73100 Principles of Economics Dalton

Sophomore Year

Fall
Course Course Title Professor
09106 Modern Chemistry II Kaplan
15211 Data Structures and Algo Sleator, Scherlis
21241 Matrix Algebra Frieze
36217 Prob Theory & Ran Processes Schervish
70637 Intact Media Des & Product Dillon
Spring
Course Course Title Professor
15212 Principles of Programming Erdmann
15213 Intro to Computer Systems Maggs, Goldstein
15251 Great Theoretical Ideas in CS Rudich, Blum
76270 Writing in the Professions Lewis
70459 Web Busns Engineering Wilkes

Junior Year

Fall
Course Course Title Professor
09101 Intro to Experimental Chem Vandyke
76382 Multimedia Authoring I Glisic
21301 Combinatorial Analysis Frieze
80291 Issue in Multimedia Authoring Cavalier
85241 Social Psychology Boyd
15494 Web Commerce, Security and Privacy Sadeh-Koniecpol
Spring
Course Course Title Professor
21257 Modl Meth Optimizatn Anthony
15415 Algorithm Design and Analysis Sleator, Miller
15397 Web Application Development Eppinger
70-381 Marketing I Shocker
76-383 Multimedia Authoring II Rasmussen

Senior Year

Fall
Course Course Title Professor
15441 Computer Networks Eckhardt, Zhang
17651 Models of Software Systems Garlan, Place
70311 Organizational Behavior Simons
70371 Production I Kekre
Spring
Course Course Title Professor
15391 Tech Consulting in the Community Mertz
79314 Nationalities & New States of the Former USSR Kats
19601 Information Warfare Morel
39245 Rapid Prototype Design Finger, DO

 

Courses Required for Computer Science Major

15-100 Introductory/Intermediate Programming Fall or Spring: 10 units

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. If you've taken a programming course in a language other than Java and have used functions, loops, and arrays, you should NOT enroll in 15-100 and instead enroll in 15-111. NOTE: students who receive a grade of C or less in 15-100 should discuss whether they are adequately prepared for 15-200 with their academic advisor.
Return To Top

15-113 System Skills in C Fall or Spring: 10 units

This course assumes a significant amount of prior programming experience in C++ and deals with using and implementing software components in the construction of programs. Topics to be covered include classes and advanced object-based programming techniques, dynamically allocated data structures (including linked lists, stacks, queues, trees, heaps, and graphs), simple analysis of the algorithms that operate on those data structures, and templates (the STL). Prerequisite: 15-112 or equivalent experience in C++.
Return To Top

15-128 Freshman Immigration Course Spring: 1 unit

The Freshman Immigration Course is taken by first-semester Computer Science majors. The course is designed to acquaint incoming majors with computer science at CMU. Talks range from historical perspectives in the field to descriptions of the cutting edge research being conducted. 15-128 is a one unit course and is graded pass/fail. Enrollment is limited to SCS Freshmen ONLY.
Return To Top

15-211 Fundamental data Structures and Algorithms Fall and Spring: 12 units

Fundamental programming concepts are presented together with supporting theoretical bases 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. Prerequisites: 15-113 and either 15-151 or 21-127.
Return To Top

15-212 Principles of Programming Fall and Spring: 12 units

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. Prerequisite: 15-211.
Return To Top

15-213 Introduction to Computer Systems Fall and Spring: 12 units

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation. Prerequisite: 15-211.
Return To Top

15-251 Great Theoretical Ideas in Computer Science Spring: 12 units

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. Prerequisites: 15-113 and 15-151, or permission of the instructor.
Return To Top

15-391 Technology Consulting in the Community Spring: 12 units

In this course, the student learns process consulting while collaborating on site with a community leader of a non-profit organization. This service-learning course de-emphasizes coding, asking the student instead to analyze a complex organization, then design and implement a work plan that will expand the organization's capacity to use information technology. Throughout the semester, students develop a consulting report. They learn how to use this working document to collaborate with others and to think through and communicate a strategic technology plan. Students also experience how urban community organizations function, seeing the valuable benefits these organizations provide to society. Prerequisites: 15-211.
Return To Top

15-397 Web Application Development Spring: 12 units

This course will introduce concepts in programming web application servers. We will study of the fundamental architectural elements of programming web sites that produce content dynamically. The primary technology introduced will be Java Servlets and Java Server Pages (JSPs), but we will also cover the related topics as necessary so that students may build significant applications. Such topics include: HTTP, HTML, XML, JavaBeans, Relational Databases (SQL/JDBC/SQLJ), Security (SSL), Web Services (SOAP/WSDL/UDDI), and Active Server Pages (ASP/ASP.NET). Several tools and software packages will be demonstrated. Students will be required to create and demonstrate their own web applications. They may use the software demonstrated in class or similar software packages with permission of the professor. Grading will be based on these student projects. Notes: Students are required to provide their own computer hardware for this course. Student hardware must run one of the following operating systems: Windows 2000, Windows XP, MAC OS X, Red Hat Linux (Intel). Student hardware must have at least 256 MB of memory. Student hardware must have at least 1 GB of *free* disk to devote to this course. Prerequisites: 15-212
Return To Top

15-441 Computer Networks Fall and Spring: 12 units

This is an introductory course about computer networks. The emphasis will be on the basic performance and engineering tradeoffs in the design and implementation of computer networks. Students will learn not only what computer networks are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. We will draw examples primarily from the Internet. Topics to be covered include: LAN, congestion/flow/error control, routing, addressing, naming, multicasting, switching, internetworking, quality of service, and network security. There will be both written and programming assignments, and a substantial project involving the design and implementation of a complete protocol stack. Prerequisites: 15-213 or 18-347.
Return To Top

15-451 Algorithm Design and Analysis Fall and Spring: 9 units

This course is about the design and analysis of algorithms. We study specific algorithms for a variety of problems, as well as general design and analysis techniques. Specific topics include searching, sorting, algorithms for graph problems, efficient data structures, lower bounds and NP-completeness. A variety of other topics may be covered at the discretion of the instructor. These include parallel algorithms, randomized algorithms, geometric algorithms, low level techniques for efficient programming, cryptography, and cryptographic protocols. Prerequisites: 15-212 and 15-251 (or 21-228).
Return To Top

15-462 Computer Graphics 1 Fall and Spring: 12 units

This course provides a comprehensive introduction to computer graphics modeling, animation, and rendering. Topics covered include basic image processing, geometric transformations, geometric modeling of curves and surfaces, animation, 3-D viewing, visibility algorithms, and shading. Students gain experience producing simple animations. Prerequisites: 15-213, 21-241 and 21-259 (or equivalent).
Return To Top

15-494Special Topic: Web Commerce, Security and Privacy Fall: 9 units

Over the past ten years, the Web has become an integral part of our daily life, whether at home or at work. This course provides students with an overview of the technologies and practices associated with Internet Commerce, including issues of security and privacy. We will start by trying to understand what eCommerce is, looking at both business-to-consumer and business-to-business usage scenarios. We will examine the different stages of electronic commerce, from the identification of buyers and sellers, to the selection of goods, negotiation, sale, payment, delivery and post-sale activities and examine how new Internet technologies and practices can help add value at each step. This will be followed by an overview of Web and eCommerce architectures. The remainder of the course will cover Web security issues, including an overview of PKI, electronic payments, Internet search engines, personalization and data mining, privacy, including P3P, electronic marketplaces, exchanges, auctions, and mobile/wireless commerce.
Return To Top

17-651Special Topic: Web Commerce, Security and Privacy Fall: 12 units

Scientific foundations for software engineering depend on the use of precise, abstract models for characterizing and reasoning about properties of software systems. This course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras, and traces. It shows how different logics can be used to specify properties of software systems, such as functional correctness, deadlock freedom, and internal consistency. Concepts such as composition mechanisms, abstraction relations, invariants, non-determinism, inductive definitions and denotational descriptions are recurrent themes throughout the course. This course provides the formal foundations for the other core courses. Notations are not emphasized, although some are introduced for concreteness. Examples are drawn from software applications. After completing this course, students will: understand the strengths and weaknesses of certain models and logics including state machines, algebraic and process models, and temporal logic be able to select and describe appropriate abstract formal models for certain classes of systems, describe abstraction relations between different levels of description, and reason about the correctness of refinements be able to prove elementary properties about systems described by the models introduced in the course. Prerequisite: Undergraduate discrete math including first-order logic, sets, functions, relations, proof techniques (such as induction).
Return To Top

19-601 Information Warfare Fall and Spring: 12 units Professor Morel

Information security is one major concern raised by the increasing use of computers in networks. In this course we first review, in some technical detail, the nature of the "threats". These include viruses and worms ( their history and how they "evolved"), backdoor exploits, Trojan horses, buffer overflows, and the extent to which they imperil the information in computers. Then we discuss the use and limitations of firewalls in protecting computer networks. We also discuss intrusion detection and the problems associated with it. We review past and present cyberattacks, like Denial of Service attacks, viruses such as Melissa and I love you, and assess their implications. We analyze the origin of computer vulnerabilities which make those attacks possible and discuss the extent to which they could be reduced. Finally, we analyze the response to this situation at the national, security and international level.
Return To Top

21-115 Differential Calculus Fall and Spring, both minis: 5 units
Functions, limits, derivatives, curve sketching, Mean Value Theorem, trigonometric functions, related rates, linear and quadratic approximations, maximum-minimum problems. 3 hours lecture, 2 hours recitation.
Return To Top

21-116 Integral Calculus Fall and Spring, both minis: 5 units
Inverse functions, logarithmic, exponential, and hyperbolic functions; definite and indefinite integrals, applications of integration, integration by substitution and by parts. 3 hours lecture, 2 hours recitation. Prerequisite: 21-115.
Return To Top 21-117 Integration and Differential Equations Fall and Spring, both minis: 5 units

Integration by trigonometric substitution and partial fractions; arclength; improper integrals; Simpson's and Trapezoidal Rules for numerical integration; separable differential equations, first order linear differential equations, homogeneous second order linear differential equations with constant coefficients. 3 hours lecture, 2 hours recitation. Prerequisite: 21-116 or 21-111/112.
Return To Top

21-118 Calculus of Approximation Fall and Spring, both minis: 5 units

Indeterminate forms, Newton's method, Taylor's Theorem including a discussion of the remainder, sequences, series, power series. 3 hours lecture, 2 hours recitation. Prerequisite: 21-117.
Return To Top

21-127 Concepts of Mathematics Fall and Spring: 9 units

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. 3 hours lecture, 1 hour recitation. No prerequisite. A prerequisite for 15-211.
Return To Top

21-241 Matrix Algebra Fall or Spring: 9 units

Vectors and matrices, the solution of linear systems of equations, vector spaces and subspaces, orthogonality, determinants, real and complex eigenvalues and eigenvectors, linear transformations. 3 hrs. lec. Prerequisite: 21-127 recommended.
Return To Top

21-301 Combinatorial Analysis Fall: 9 units

A major part of the course concentrates on algebraic methods, which are relevant in the study of error correcting codes, and other areas. Topics covered in depth include permutations and combinations, generating functions, recurrence relations, the principle of inclusion and exclusion, and the Fibonacci sequence and the harmonic series. Additional topics may include existence proofs, partitions, finite calculus, generating combinatorial objects, Polya theory, codes, probabilistic methods. 3 hrs. lec. Prerequisites: 21-118 and 21-127
Return To Top

09-101 Introduction to Experimental Chemistry Fall and Spring: 3 units

This is a seven session chemistry laboratory course that is designed to introduce students to some basic laboratory skills, techniques, and equipment commonly used in experimental scientific investigations. Experiments include: (1) An organic synthesis (the preparation and purification of aspirin), (2) Quantitative determination of aspirin by a Beer's Law analysis and a chromatographic (TLC) analysis of the ingredients in nonprescription medications, (3) Kinetics (determining the order and reaction rate constant for a reaction) , (4) An acid-base titration analysis (including the identification of an unknown organic acid), (5) Transition Metal Complexes (synthesis and color study of a coordination compound and a thermochemical study of a ligand replacement reaction of transition metal complexes using a temperature data acquisition/analysis device (Labworks II or CBL), (6) Polymers (determining the molecular weight of a polymer by an end-group analysis), and (7) Biochemistry (total iron content, iron release properties, and structure of ferritin, the iron storage protein). 1 hr. lec., 3 hrs. lab.
Return To Top

09-105 Introduction to Modern Chemistry Fall or Spring: 10 units

This course begins with a very brief survey of some fundamental principles of chemistry and a presentation of chemically interesting applications and sophisticated problems. These will form the basis for introducing various facets of the course that deal ultimately with the relationship between the structure of molecules and their chemical properties and behavior. The subject matter will include principles of atomic structure, chemical bonding, and molecular structures of organic and inorganic compounds including some transition metal complexes. Relevant examples will be drawn from such areas as environmental, materials, and biological chemistry. 3 hrs. lec., 2 hr. rec.
Return To Top

09-106 Modern Chemistry II Fall or Spring: 10 units

The course provides an introduction to some basic concepts of chemical equilibria and thermodynamics. Topics include gas phase equilibria, acidbase chemistry, solubilities, oxidation-reduction reactions, enthalpy, entropy, free energy, colligative properties and electrochemistry. Chemical kinetics is introduced to complement the study of thermodynamics. 3 hrs. lec., 2 hr. rec. Prerequisite: 09-105.
Return To Top

36-217 Probability Theory and Random Processes Fall and Spring: 9 units

This course provides an introduction to probability theory. It is designed for students in electrical and computer engineering. Topics include elementary probability theory, conditional probability and independence, random variables, distribution functions, joint and conditional distributions, limit theorems, and an introduction to random processes. Some elementary ideas in spectral analysis and information theory will be given. The use of a computer package will be an integral part of this course. Not open to students who have received credit for 36-221, 36-225, or 36-325. Prerequisite: 21-118 or 21-122 or 21-256.
Return To Top

39-245 Rapid Prototype Design Professor Finger Spring: 9 units

Introduction to rapid design through virtual and physical prototyping. The class will cover the design process, problem solving methods, interdisciplinary team work, current industrial practice, and manufacturing process capabilities. The course emphazises hands on learning.
Return To Top

76-101 Interpretation and Argument Fall and Spring: 9 units

This course gives students a comprehensive grounding in communication processes. The class focuses on the way in which interpretive arguments function. The goal of the course is to develop skills in both written and verbal communication. In the class, students will develop these skills by reading and understanding the important issues and arguments regarding those issues advanced by a variety of texts, both fiction and non-fiction. They will then be asked to respond to these positions by developing positions of their own, in their writing and in their speaking. The course thus serves as an introduction to the discourse and arguments of the academic community, as well as serving as an introduction to some of the broader issues that the academic community addresses.
Return To Top

79-314 Nationalities and the New States of the Former USSR Fall and Spring: 9 units

Professor Nam Kats -
Until its collapse in 1991, the Soviet Union was a world superpower incorporating within its borders the great landmass of Europe and Asia-modern Eurasia. Conditioned to view the Soviet state as a unified great power, many people have found it difficult to comprehend the rapid dissolution of this once mighty empire. Analysis of the nature of "ethnicity" and "nationality", as well as nationalism and policy toward the nationalities in the former Soviet Union, will form the background for analyzing the economic, social, political, environmental, military and foreign policy issues that have arisen within and among the new states today.
Return To Top

99-102 Computing @ Carnegie Mellon Fall and Spring: 3 units

This hands-on course helps students build a framework of basic knowledge of the Carnegie Mellon computing environment. It is designed to help students understand and utilize the computing resources available to them and thus help prepare them for successful computer use in their academic careers.
Return To Top

85-241 Social Psychology Fall and Spring: 9 units

The focus of this course will be on how peoples behavior, feelings and thoughts are influenced or determined by their social environment. The course will begin with lectures and readings on how social psychologists go about studying social behavior. Next, various topics on which social psychologists have done research will be covered. These topics will include: person perception, prejudice and discrimination, the nature of attitudes and how attitudes are formed and changed, interpersonal attraction, conformity, compliance, altruism, aggression, group behavior, and applications of psychology to problems in health care, law, politics, and the environment. Through readings and lectures on these topics, students will also be exposed to social psychological theories.
Return To Top


Courses Required for Business Administration Minor

21-257 Models and Methods for Optimization Fall or Spring: 9 units

Introduces basic methods of operations research and is intended primarily for Business Administration and Economics majors. Review of linear systems; linear programming, including the simplex algorithm, duality, and sensitivity analysis; the transportation problem; other structured optimization problems. 3 hours lecture, 1 hour recitation. Prerequisite: 21-256 or permission of instructor.
Return To Top

70-643 Publishing on the World Wide Web Fall or Spring: 9 units

This course addresses topics related to the rapidly evolving area of WWW publishing, which has moved in the mainstream. Today, virtually every major newspaper, magazine, and book publisher has an active website. In addition, the Internet is used as a publishing medium by millions of other individuals and companies. In this course, the rush to WWW publishing is studied in context of the evolution of the internet; the lure of interactivity; the maturing desktop publishing revolution; and the continued development of tools and standards that lower the barriers to entry. The lecture topics encompass the history, technology, business applications, and the design of materials to be published on the web. The course includes a lab component where the students perform individual and group projects to improve their design and applications skills.
Return To Top

73-100 Principles of Economics Fall and Spring: 9 units

An introductory course in the development and use of economic tools for analysis of public policy issues. The course begins with an introduction to the central problem of organizing an economy and allocating resources, emphasizing an overview of the market system in a private enterprise economy. Demand and supply analysis and the elements of long-run competitive equilibrium are developed. This is followed by an analysis of the foundations of consumer behavior which determine market supply and demand. The course concludes with an examination of cases in which the competitive paradigm does not hold (monopoly, oligopoly), and a consideration of the problem of multi-market equilibrium in a private enterprise economy. In addition to serving as an introduction to economic analysis, the course is also intended to provide the necessary methodological basis for students who go on to take courses in intermediate economic analysis. 2 hours lecture, l hour recitation.
Return To Top

70-459 Web Business Engineering Spring: 9 units

In this course students will learn how to set up a business on the Internet (World Wide Web) and how to use the internet and other telecommunications technologies to tie businesses together to form a “virtual business.” Prerequisites:(15-120 and 70-451) or (15-120 and 88-200) or (15-120 and 88-271 and 88-272).
Return To Top

70-311 Organizational Behavior Fall & Spring: 9 units

This course examines the factors, which influence individual, group, and firm behavior in the context of the work place. Topics covered include perception, group behavior, decision-making, motivation, leadership, and organizational design and change.
Return To Top

70-371 Productions and Operations Management I Fall & Spring: 9 units

An introduction to production and operations management that covers both manufacturing and services. The course addresses the history and recent performance of operations management on the one hand and how to solve management problems on the other. It deals with design and planning issues (capacity and location planning, facility layout) as well as operational issues (inventory management, material requirements planning, scheduling, project management). It also discusses such recent developments as computer integrated manufacturing, flexible manufacturing systems, and just-in-time inventory systems. Prerequisites: (21-257 or 21-292), (36-202, 36-220, 36-226, 70-207, 36-247, or 36-310).
Return To Top

70-381 Marketing Fall & Spring: 9 units

An introduction to the nature and fundamentals of marketing. Topics include an analysis of the factors influencing buyer behavior, marketing research, market segmentation, development of marketing strategies (new product, price, advertising and distribution decisions), and international marketing.
Return To Top


Courses Required for Multimedia Productions Minor

70-637 Interactive Media Design & Production 9 units

Students, working in small groups, will learn skills necessary to develop an interactive media product. The course focus will be project development as it applies to interactive media and product development using Macromedia Flash as a development tool.
Return To Top

76-270 Writing in the Professions 9 units

This course, based on the model of 76-271, is designed for junior and senior students in all majors other than English and appropriate for students in all CMU colleges. No writing experience beyond the freshman course is required or expected. Students learn to plan and produce effective, professional-quality examples of the genres common to all professional fields: resumes, proposals, correspondence, consumer/user instructions, oral presentations, and adaptations of specialized information for non-expert audiences.
Return To Top

80-291 Issues in Multimedia Authoring 9 units

Issues in Multimedia Authoring emphasizes the philosophical, cultural, and sociological aspects of multimedia. The course will explore these issues historically and thematically by looking at central figures in the early days of computers and communication theory (e.g., Alan Turing and Marshall McLuhan) and recent work by writers such as Brenda Laurel (Computers as Theatre), George Landow (HyperText 2.0), and Janet Murray (Hamlet on the Holodeck: The Future of Narrative in Cyberspace). This is not a technical course in issues relating to the creation of multimedia software. It is a course concerned with the meaning of multimedia authoring in its contemporary societal context.
Return To Top

76-382 Multimedia Authoring I 9 units

This course will provide an introduction to the technical skills needed for designing and developing interactive multimedia. Current multimedia tools for use in creating CD-ROM and web-based products will be taught alongside ample opportunity for practice. Students learn authoring tools and multimedia techniques while covering topics including non-text-based communication, the integration of visuals, the animation of text and graphics, and digital video editing and deployment. Principles of design will be discussed throughout the course. Group design processes and project management issues will also be addressed. The course makes extensive use of web-oriented applications such as Flash and Dreamweaver. The course is similar to Andrew Thompson's Writing for Multimedia.
Return To Top

76-383 Multimedia Authoring II 9 units

This course will look at advanced design and technology issues utilized in interactive multimedia. Techniques for creating highly interactive multimedia and professional level multimedia programming will mark the advanced nature of this course. Course projects will involve students in client-based activities. General issues in multimedia (like "software agents and personal privacy") will be discussed on the technical as well as societal level. The course makes extensive use of Director. Pre-requisite: 15-111 or higher.
Return To Top