Course Descriptions

Core Courses

14-740 Fundamentals of Telecommunications and Computer Networks
1st Fall or 1st Spring: 12 units. 14-740 is a graduate-level, first-course in computer and telecommunication networks. There is no prerequisite of an undergraduate equivalent, but basic computer, programming and probability theory background is required. The primary objective of this course is for you to learn the fundamental principles underlying computer and telecommunication networks. Using a top-down approach, we will cover topics in the application, transport, network and link layers of the protocol stack. We will also go over advanced topics, including network management, traffic engineering and router internals. Besides learning about the nuts and bolts, you will gain an understanding in engineering tradeoffs made and design principles used in computer and telecommunication networks. Another objective is for you to apply some of this knowledge in the context of systems projects. We will follow an aggressive pace in this course. Prerequisites: Graduate standing.

14-741 Intro to Information Security
1st Fall: 12 units. The growing importance of information systems, and their use to support safety-critical applications, has made information security a central issue for modern systems. The course introduces the technical and policy foundations of information security. The main objective of the course is to enable students to reason about information systems from a security engineering perspective. Topics covered in the course include elementary cryptography; access control; common software vulnerabilities; common network vulnerabilities; digital rights management; policy and export control law; privacy; management and assurance; and special topics in information security. Prerequisites: The course assumes a basic working knowledge of computers, networks, C and UNIX programming, as well as an elementary mathematics background, but does not assume any prior exposure to topics in computer or communications security.

14-774 Managerial Economics
1st Fall or 1st Spring: 6 units. This class presents the basic concepts of microeconomics theory with an emphasis on business applications. The approach of microeconomics is to solve an economic problem by modeling it as an optimization problem; the solution to the optimization problems is then interpreted in terms of the original economic problem. This approach will be used to answer such problems as input selection, pricing and project selection. The format of the class is to present theory common to a general class of applied problems and then to apply the theory by solving actual problems. The goal of the class is for the students to be capable of applying the basic concepts to problems faced in both future classes (e.g. finance, macroeconomics) and future careers. Prerequisites: Graduate standing.

14-775 Business Management
1st Fall or 1st Spring: 6 units. This class includes management functions such as accounting (reading and understanding financial statements, basic cost analysis and budgeting), finance (project evaluation and capital budgeting), human relations (motivation and organization of work), marketing (distribution and consumer behavior) and operations (production planning and control). The importance of information systems is emphasized across all management functions.


14-798 INI MSIT Project Practicum
2nd Fall: 24 units. This course provides the opportunity to consolidate and apply the skills and knowledge developed in previous coursework in a team-based approach to a real problem. A team of students works with a real-world client on a real-world problem of value to the client. Most important, this is an opportunity to apply the team's advanced engineering and management skills, including the specialized knowledge and skills needed to solve a real problem. In particular, team members must learn to work effectively with clients, quickly understand their problem, negotiate deliverables and then select, adapt and apply just the right amount of process and documentation to meet clients' needs and effectively manage the project. Prerequisites: Graduate standing and instructor's permission.

Track Courses - Mobility Program

14-839 The Mobile Ecosystem
Spring: 6 units. The goal of this course is to equip students with the ability to thoughtfully analyze business and technology proposals. It provides an overview of the different players in the mobile space, including device manufacturers, network operators, application developers, users and regulators. Students will understand how these stakeholders operate in the U.S. and other countries, their business drivers and their competitive posture. Different user segments and some aspects of their needs, wants and drivers will be analyzed. There will be guided discussion of how cultural, business climate and national attributes impact decisions. Prerequisites: Graduate standing.

14-840 Mobile Hardware for Software Engineers
Spring: 12 units. This course enables students to analyze the implications of mobile hardware capabilities and restrictions in order to plan and develop mobile applications. Students will be able to devise and interface simple hardware additions to mobile platforms such as cell-phones, Internet tablets and wireless sensors. The course covers the elements of embedded systems development, such as hardware fundamentals, real-time operating systems, interrupts and cross-development, as well mobile topics such as power management, machine-to-machine communication, radio/RF subsystems and wireless protocols. Topics typically include: USB, GPIO, blue-tooth, cellular networks, 802.11, Zigbee, RFID, NFC, cameras, audio, etc. Student teams will undertake small HW/SW interfacing projects to sharpen their experience. Unlike a conventional hardware course, the course instead focuses on the software implications, rather than the CPU and radio. Prerequisites: Some understanding of basic electrical terminology and Java programming required; C programing desired.

14-836 Mobile Game Development
Spring: 12 units. This course teaches iOS development and game development techniques. After learning the fundamentals of Objective-C, the students will build their own game. At the end of the course, the students can participate in a CMU Hackathon showcasing their skills. This course combines online technical instruction to teach students the fundamentals of Objective-C, the open source 2D game engine Cocos2D, and the open-source physics engine Chipmunk. Classes will teach the principles of mobile game and product design. The materials consist of three iOS projects presented through step-by-step tutorials: a simple app where a spaceship follows the user's tap, an implementation of Conway's Game of Life, and finally a one-level clone of Angry Birds. Students are expected to complete these online tutorials as homework during the first three weeks of the course. Students will then spend the remainder of the course working on an original game of their choosing. The game design lectures cover the process of mobile game development, from prototyping all the way to play-testing. Course content that will be significantly useful outside of the iOS ecosystem: -Cocos2D exists across a variety of platforms and powers games on the web, desktop, and Android mobile devices. We will teach the iPhone/iPad compatible version but the framework is significantly similar across versions. -Chipmunk is used in conjunction with a variety of programming languages and game development frameworks on many platforms including desktop, the web, and mobile. -All the product design lessons are applicable to mobile game and app design on other platforms such as Android and Windows Phone. Good design and development process is useful when developing a product on any platform. Prerequisites: Students will need Object Oriented Programming (OOP) experience and access to a Mac running Mac OSX 10.7 or later. Students will need to have their own iPad, iPhone or iPod touch running the latest version of iOS. (The machine will not be provided.) Must understand the following concepts: Objects, Classes (templates for an object), Class inheritance (subclasses, superclasses), Instances of Objects, Class vs. Instance Methods and Variables.

Track Courses - Information Security Program

18-731 Network Security
Spring: 12 units. Some of today's most damaging attacks on computer systems involve the exploitation of network infrastructure, either as the target of attack or as a vehicle to advance attacks on end systems. This course provides an in-depth study of network attack techniques and methods to defend against them. Topics include firewalls and virtual private networks; network intrusion detection; denial of service (DoS) and distributed denial-of-service (DDoS) attacks; DoS and DDoS detection and reaction; worm and virus propagation; tracing the source of attacks; traffic analysis; techniques for hiding the source or destination of network traffic; secure routing protocols; protocol scrubbing; and advanced techniques for reacting to network attacks. Prerequisites: Introduction to Computer Security (18-730) or Introduction to Information Security (14-741) or equivalent.

14-761 Applied Information Assurance
Fall or Spring: 12 units. This course focuses on practical applications of Information Assurance (IA) policies and technologies in enterprise network environments. The course will include lecture and demonstrations, but is designed around a virtual lab environment and scenario that provides for robust and realistic hands-on experiences in dealing with a range of information assurance topic areas. Students will be provided numerous practical opportunities to apply information security practices and technologies to solve real-world IA problems.