.:. Courses
Click on Course # to view course descriptions.
Links to CMU Requirements:
Freshman Year | |||||||||||||||||||||||||||||||||||||||||||||||||
Fall
|
Spring
|
||||||||||||||||||||||||||||||||||||||||||||||||
Sophomore Year | |||||||||||||||||||||||||||||||||||||||||||||||||
Fall
|
Spring
|
||||||||||||||||||||||||||||||||||||||||||||||||
Junior Year | |||||||||||||||||||||||||||||||||||||||||||||||||
Fall
|
Spring
|
||||||||||||||||||||||||||||||||||||||||||||||||
Senior Year | |||||||||||||||||||||||||||||||||||||||||||||||||
Fall
|
Spring
|
||||||||||||||||||||||||||||||||||||||||||||||||
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.
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++.
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.
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.
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.
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.
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.
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.
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
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.
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).
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).
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.
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). 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. 21-115 Differential Calculus Fall and Spring, both minis: 5 units 21-116 Integral Calculus
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
Professor Nam Kats - 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.
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.
|
|
|
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.
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.
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.
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). 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. 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). 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.
|
|
|
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.
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.
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.
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.
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.
|