Course Descriptions
15-100 Introductory Programming 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. 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.
15-113 Systems Skills in C 5 units
This course is designed to provide a substantial exposure to the C programming language and the Unix programming environment (gcc) for students with prior programming experience but minimal exposure to C. Topics to be covered include arrays, structs and unions, dynamic memory allocation (malloc and free), pointers and pointer arithmetic. This course, along with 15-211, serves as the prerequisite for 15-213.
15-200 Advanced Programming 9 units
This course assumes prior programming experience in Java (at the level of 15-100) and is designed to expand students' knowledge of computer science and sharpen their programming skills through the implementation of a large project. The course extends object-oriented programming techniques begun in 15-100 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 is currently taught in Java and, along with 21-127, serves as a prerequisite for 15-211. NOTE: students who receive a grade of C or less in 15-200 should discuss whether they are adequately prepared for 15-211 with their academic advisor.
15-211 Fundamental Data Structures and Algorithms 12 units
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.
15-212 Principles of Programming 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.
15-213 Introduction to Computer Systems 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.
15-251 Great Ideas in Computer Science 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.
15-451 Algorithm Design & Analysis 12 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.
16-200 Autonomous Robots 10 units
This course teaches students practical skills in robotics and how to apply concepts they learn in computer science courses in a laboratory setting. Geared towards students who have intermediate programming skills and who are concurrently learning about data structures and algorithms in computer science, this course aims to introduce students to the basic concepts and challenges in robotics and provide students with an introduction to engaging in research while applying their computing knowledge to accomplish tasks with a set of robots.
The primary goal of this course is to get students to be comfortable working with robots applying classroom lessons to solve practical problems. This course will require students to attend both in-class lectures and lab sessions. Student performance will be evaluated based on class participation, individual and group assignments, and a final project. There will be no exams in this course. Assignments will be designed to allow students to apply lessons from lectures in 16-200. Students will be encouraged to develop research skills through a combination of written reports, oral presentations, and project assignments. Projects will include a required component, and optional bonus components in the form of challenges.
21-120 Differential & Integral Calculus 10 units
Functions, limits, derivatives, logarithmic, exponential, and trigonometric functions, inverse functions; L'Hospital's Rule, curve sketching, Mean Value Theorem, related rates, linear and quadratic approximations, maximum-minimum problems, inverse functions, definite and indefinite integrals, and hyperbolic functions; applications of integration, integration by substitution and by parts. 3 hrs lec., 2 hrs. rec.
21-127 Concepts of Mathematics 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. A prerequisite for 15-211. 3 hrs. lec., 2 hrs. rec.
21-241 Matrix Algebra 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.
21-256 Multivariate Analysis 9 units
Taylor's Theorem; geometric sequences and series and their applications in compound interest; vectors and matrices, lines, and planes; partial derivatives, directional derivatives, gradient, chain rule, maximum-minimum problems, Lagrange multipliers and the Kuhn-Tucker Theorem. 3 hrs. lec., 2 hrs. rec.
21-257 Models/Methods Optimization 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; the critical path method; the knapsack problem, traveling salesman problem, and an introduction to set covering models. 3 hrs. lec., 1 hr. rec.
21-300 Basic Logic 9 units
Propositional and predicate logic: Syntax, proof theory and semantics up to completeness theorem, Lowenheim Skolem theorems, and applications of the compactness theorem. 3 hrs. lec.
36-207 Probability/Statistics for Business 9 units
This is the first half of a year-long sequence in basic statistical methods that are used in business and management. Topics include exploratory and descriptive techniques, elementary probability theory, statistical inference in simple settings, basic categorical analysis, and statistical methods for quality control.
36-217 Probability Theory 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.
70-100 Introduction to Business 9 units
This course provides an overview of the functional areas of business and how they contribute to the management of a firm. It places business within the broader context of business history, business ethics, and the role of business in various world cultures. For first-year business majors only. Students may not receive credit for both 70-100 and 70-101.
70-122 Introduction to Accounting 9 units
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.
70-311 Organizational Behavior 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.
70-381 Marketing 1 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.
70-391 Finance 1 9 units
The course examines the role of the financial manager in the overall management and control of a firm. Stress is placed on the use of analytical models for improving the decision-making process. Both the short-term management of working capital and the long-term planning of capital structure and investment strategy are covered.
73-100 Principles of Economics 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.
76-099 Academic English 9 units
Course content under review
76-100 Academic English 2 9 units
Course content under review
76-101 Interpretation and Argument 9 units
This course will give students a comprehensive grounding in communication processes. The class focuses on the way in which interpretive arguments in the processes of communication and social and personal development. 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 address.
76-274 The Writer's Craft 9 units
This course is designed to develop students' fluency with major patterns of English prose, patterns that underlie the range of genres of English (e.g., journals profiles, plays, histories, fiction, exposition, scientific writing, technical writing, instructions, computer documentation, business policy, and argument). Students learn how mastery of these patterns creates powerful experiences for readers, and learn to recognize, discuss, and produce these patterns in a supportive and friendly workshop atmosphere. Grammar and word choice are not taught as isolated exercises but in the context of work-shopping students papers. Students learn from this method that language "errors" (in grammar, word choice, sentence arrangement, and paragraph arrangement) are best noticed and treated as "bumps" that hinder the reader's understanding or enjoyment of the text.
The workshop is organized around seven structured writing projects (Self-Portrait, Observer Portrait, Scenic Writing, Narrative History Writing, Information Writing, Instruction, and Argument). Each assignment is introduced as a mini-lesson. Students learn from this lesson the challenge of the assignment and why they are likely to need multiple drafts to complete it. Students then will submit and workshop their drafts in class.
By the end of the class students should feel comfortable with and gain competence in composing English texts across the main varieties of English prose.
79-104 Introduction to World History 9 units
Introduction to World History challenges students to think analytically about the major historical processes that shaped and continue to shape cultures and civilizations. The course is based on a series of case studies that focus on shifting power relations between and within civilizations. Three major themes connect the several topics discussed throughout the semester: issues of authority and inequality within civilizations; encounters and conflicts between civilizations; and patterns of continuity and change across space and time. The course demonstrates how historians explain what has happened in the past and in various civilizations and cultures; presents the kinds of evidence that historians use to reconstruct the past; and examines the interpretations historians make based on this evidence. The semester begins with a consideration of the rich culture of medieval Iberia and then moves on to discuss: the encounters between the "old" world and the "new"; the emergence of a transatlantic society; industrialization in Europe and China; environmental imperialism in India; and tradition and modernity in post-colonial Africa.
79-299 US-Arab Encounters US & the Arab World 9 units
What is the nature of the relationship between the United States and the Arab countries of the Middle East? This is an innovative cross-cultural course that will enable CMU students in Pittsburgh and at the CMU campus in Qatar to interact with one another and with students at other American and Arab universities in exploring the US-Arab relationship, with the goal of improving awareness and understanding.
Students will delve into themes and questions within an interdisciplinary framework that includes history, international relations, conflict resolution and media studies. Topics range from the role of religion in society to an investigation of the part media plays in our understanding of US and Arab perceptions of each other and of events. CMU students in Pittsburgh and Qatar will utilize the newest web-camera and videoconferencing for the traditional in-class part of the course and enjoy a chance to work collaboratively on multimedia projects and other assignments with students elsewhere in the US and the Arab world via an on-line discussion forum.
The most innovative feature of the course will be the Soliya program, which will connect students in the United States and the Middle East for real time discussion sections and on-line project collaboration on issues concerning modern US- Middle East relations. Schools participating in the program will include Tufts, Harvard, Clark, Virginia Commonwealth, Birzeit, Qatar, American University of Cairo, American University of Beirut, and the Philadelphia University (Jordan). Students in the Qatar course can expect to interact with students from many if not all of these schools during the Soliya portion of the course. For more complete information on Soliya, please see http://www.soliya.net.
Students registering for this class should be prepared for a substantial time commitment. There will be two lecture/discussion classes per week, meeting at 3:30-4:50 until October 30th, and then 4:30-5:50 after the 30th, in order to take account for American daylight savings time. All Ramadan classes will be from 3:30-4:50. In addition, students will participate in the Soliya program for 2 hours/week, at times the students themselves determine out of a list of available times (the students may participate in the Soliya program from a home computer if they choose to do so).
80-150 Nature of Reason 9 units
This course offers an intellectual history of philosophical views regarding the nature of human reasoning in mathematics and the sciences, from ancient to modern times. The first part of the course traces the search for deductive methods for obtaining certain knowledge, starting with Aristotle and Euclid, and continuing through the Middle Ages and late Renaissance thought, to the work of Boole and Frege in the nineteenth century. The second part of the course considers the history of skepticism about empirical knowledge, covering Plato, Sextus Empiricus, Descartes, Pascal, and Hume, along with replies to skepticism in the works of Bayes and Kant. The third part of the course discusses theories of the nature of mind, culminating in the computational conception of mind that underlies contemporary cognitive science.