Academic Course Catalog

download Academic Course Catalog

of 16

Transcript of Academic Course Catalog

  • 8/2/2019 Academic Course Catalog

    1/16

    AcAdemic coursesiCarnegie offers academic courses at the graduate and undergraduatelevel, which are part of the innovative technical curriculum taught atCarnegie Mellon University. These courses combine hands on applica-tion with enduring principles. They are taught in a format that engagesparticipants and enables the application of classroom learning.

    managng sftwa dvlpntAhtt f sftwa syt

    managng Thnal Ppl

    ssd1: int t infatn syt

    ssd2: int t cpt syt

    ssd3: objt-ont Pga an dgn

    ssd4: u-cnt dgn an Ttng

    ssd5: data stt an Algthssd6: syt-Lvl Pgang

    ssd7: databa syt

    ssd8: Ntwk an dtbt cptng

    ssd9: sftwa spatn, Tt an mantnan

    ssd10: sftwa Pjt oganzatn an mgt.

    cttng g l an tatn pw by

    wl-nwn xpt at cang mlln unvty,

    lv by hgh atn an tanng patn t

    th lal tnt akt.

  • 8/2/2019 Academic Course Catalog

    2/16

    www.ang.

    Large scale software development requires the ability to manage re-sources - both human and computational - through control of the de-velopment process. This course provides the knowledge and skills nec

    -

    essary to lead a project team, understand the relationship of softwaredevelopment to overall product engineering, estimate time and costs,and understand the software process. Topics include life cycle models,requirements elicitation, conguration control, risk management, plan-ning and tracking, environments and quality assurance, all of which areused broadly in software projects.

    Course Topics Include: sftwa Lf yl p an mthlg

    sftwa qnt anagnt sftwa rk anagnt Pjt tatn Pjt plannng an takng managng Ppl managng t an xptatn sftwa qalty aan an ttng tatg

    Course PrerequisitesPpl attnng th hl hav ftwa pjt xp-n n an ntal ttng.

    Course Objectives:Aft pltng th wkhp, patpant wll:

    B abl t wt a ftwa pjt anagnt plan, ang f k analy, hl, t, ta ganzatn, ,an thnal appah

    B abl t n th ky p aa f th capablty mattyml an th thnlgy an pat aat wth ah ana vaty f ftwa vlpnt lf yl l an xplan thtngth, wakn, an applablty f ah

    untan th latnhp btwn ftwa pt an vall

    mANAGiNG soFTWAre deVeLoPmeNT1-semester, graduate-level course

    pt (f b), th l f th pt n th ganza-tnal pt ln

    untan th pp an ltatn f ftwa vlpnttana an b abl t apply nbl talng wh n

    B abl t ftwa vlpnt tana f ntatnan plntatn

    B abl t pply tat, plan an tak a ftwa pjt B abl t pf qnt ltatn B abl t anag ta, t an th xptatn

    stnt flly pltng managng sftwa dvlpnt wllb abl t:

    cat: Pjt Plan an tat Pjt rk managnt plan Qalty aan an ttng plan An fftv nvnnt t anag ppl

    u: Thnq t lt lf yl p ang t pjt t-

    a Thnq t fftvly lt qnt mth t tat pjt z an plxty Thnq t ntfy, analyz an tgat pjt k cnpt n ftwa qalty aan sft kll t anag ppl, xptatn an natn

    Note: This course can be taken independently, or in conjunction with Ar-chitecture of Software Systems and Managing Technical People in orderto earn a certicate.

    2

  • 8/2/2019 Academic Course Catalog

    3/16

    www.ang.

    Successful design of complex software systems requires the ability todescribe, evaluate, and create systems at an architectural level of ab -straction. This course introduces architectural design of complex soft

    -

    ware systems. The course considers commonly-used software systemstructures, techniques for designing and implementing these structures,models and formal notations for characterizing and reasoning aboutarchitectures, tools for generating specic instances of an architecture,and case studies of actual system architectures. It teaches the skills andbackground students need to evaluate the architectures of existing sys-tems and to design new systems in principled ways using well-foundedarchitectural paradigms.

    Course Topics Include: Ahttal npt an pnpal Ahttal tyl an pattn untanng an ahvng qalty attbt Ahtt cnt gn dntng ftwa ahtt evalatng ftwa ahtt

    Course PrerequisitesPpl attnng th hl hav ftwa pjt xp-n n an ntal ttng.

    Course Objectives:Aft pltng th , patpant wll b abl t:

    db an ahtt aatly rgnz aj ahttal tyl n xtng ftwa yt Gnat ahttal altnatv f a pbl an h ang

    th cntt a -z ftwa yt that at an aht-

    tal patn u xtng ntn an vlpnt tl t xpt h tak

    untan th fal ntn f a nb f ahtt an b

    ArcHiTecTure oF soFTWAre sYsTems1-semester, graduate-level course

    3

    abl t an abt th ppt f th ahtt u an knwlg t palz an ahtt f a patla

    faly f applatn

    stnt flly pltng Ahtt f sftwa syt wll babl t:

    ran abt ftwa ahtt intfy va ahttal tyl an ntan hw t th

    t atfy bn v untan ta-ff an th balan btwn tng qalty at-

    tbt an hw t ahtt f t dnt ftwa ahtt ng ltpl vw an pp-

    tv evalat va ftwa ahtt t ntan va ta-

    ff

    Note: This course can be taken independently, or in conjunction withManaging Technical People and Managing Software Development inorder to earn a certicate.

  • 8/2/2019 Academic Course Catalog

    4/16

    www.ang.

    Software engineering involves the engineering of complex softwaresystems through the use of not just process and technology but also thepeople behind the machines. With the growing complexity of softwareprojects and the current state of the practice, the need to manage peopleto achieve project success is even more paramount to meet require -ments, deliver on budget, on schedule and satisfy customer expectations.The following course will provide students with in-depth knowledgeand practice in managing technical people in areas of communications,teamwork and leadership, decision making, conict management, rela-tionship management and negotiations.

    Course topics include:

    Tawk an Lahp cnatn dn akng an pbl lvng efftv Ngtatn cnt managnt managng rlatnhp managng t an xptatn Lahp mntng, slf gwth an etnal intllgn

    Course PrerequisitesPpl attnng th hl hav ftwa pjt xp-n n an ntal ttng.

    Course Objectives:Aft pltng th , patpant wll:

    untan th pat f va fat n f han nta-tn

    untan hw t appah an analyz tatn nvlvngppl-lat pbl

    ipv kll n aa f anagng thnal ppl nt an

    natn, n akng an pbl lvng

    mANAGiNG TecHNicAL PeoPLe1-semester, graduate-level course

    ipv kll n t an anagnt ngtatn, wk -lat nt anagnt, ta blng an lahp, anagngt xptatn an latnhp

    Th flly pltng managng Thnal Ppl wll b abl t:u:

    Thnq t anag han ntatn n a fftv way Thnq t nat wth th n way that pv n-

    tanng mth t ntfy ppl pnalty an n akng

    tyl sft kll t la, tvat an wk wth an thgh ppl

    statg an thnq f fftv ngtatn Thnq f pv pbl lvng an f anagng p-

    nal nt

    Note: This course can be taken independently, or in conjunction withArchitecture of Software Systems and Managing Software Developmentin order to earn a certicate.

    4

  • 8/2/2019 Academic Course Catalog

    5/16

    www.ang.

    This course teaches fundamental knowledge and skills in software devel-opment and problem solving through programming. Students learn aboutsoftwares fundamental building blocks, how software is written and howmultiple pieces of software cooperate to make Web-based applicationswork. The course uses an objects-rst approach to teach programminglanguages and lays the foundation for learning advanced Java. Studentslearn to create Web pages in HTML and Servlets in Java, and build thelogic behind typical web applications such as online music play-lists andsimulation environments. Students completing this course are preparedto hold responsibilities in developing and supporting interactive websites of a small to moderate scale.

    Course topics include: inttn t ftwa vlpnt p an nvnnt clnt, v an ata tanf inttn t nang ; langag, yntax, ntptatn, -

    platn an xtn; Pga ntl tt data pntatn (pl typ, naplat typ) Ba Java an HTmL dntatn svlt

    Course Prerequisites: Th a n p-qt f th wkhp.

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    Apply fnatnal intnt an pgang kll an npt cat ntatv Wb pag. B a a lf-lan an t kp kll p t at aft

    lavng th la untan pl Java yntax an tt untan l pgang pat an tatg.

    untak ft objt-ont pgang

    ssd1: iNTroducTioN To iNFormATioN sYsTems1-semester, undergraduate-level course

    Students successfully completing SSD1 will be able to:Produce:

    Basic HTML pages Servlets that respond to user requests from a browser

    User interfaces with HTML FORM elements Well structured solutions to simple programming problems

    Web site projects applying new programming skills

    Use: TheWorldWideWebtondinformationonkeepingprogrammingskillscur-

    rent Effective Web searching techniques

    A simple text editor to build and modify HTML and Java code JDK tools for compiling and debugging Java classes and Servlets

    UniedModelingLanguage(UML)

    Simple Java data types, objects and arrays

    Knowledgeably Discuss:

    Basic HTML layout and publishing issues The basic concepts of the software design cycle

    The request-response architecture of clients, servers and Servlets in Internetapplications.

    Rudimentary concepts of Object-Oriented Programming

    5

  • 8/2/2019 Academic Course Catalog

    6/16

    www.ang.

    This course introduces software development students to the fundamen-tals of using and maintaining computer systems in an Internet environ-ment. Students gain important knowledge that will help them effectivelycommunicate with the IT personnel they will meet in the workplace,as well as understand more about security issues and the environmentin which their software systems will reside. The basic components andfunctions of the computer and the network are introduced, along withtools and procedures for their operation and maintenance.

    Course topics include: Ba ahn ahtt (p, y, i/o) Ba patng yt npt (p, nny, a

    pa) i/o v f tag an lta Ba f png, tag an natn apaty can p an ptng Fl yt Ba ntwk ahtt intallng nw ftwa an v sty Bakp, pn, an nyptn

    Course Prerequisites:SSD1: Intro to Information Systems a pqt t

    th , th tw ay b takn nntly.

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    Apply th fnantal f ng an antanng pt yt nan intnt nvnnt

    untan th ba pnnt an fntn f a pt an nt-wk

    untan p an ftwa tl f yt patn anantnan

    A an ntan gwng an ft tn, h a ty.

    cnat wth iT ppt pnnl n th wkpla

    ssd2: iNTroducTioN To comPuTer sYsTems1-semester, undergraduate-level course

    Students successfully completing SSD2 will be able to:Produce:

    Appropriatesystemcongurationsbasedontheintendeduse Informed selections of peripheral devices

    Informed selections of software Batchlesandmacros

    Backup schedules for computer systems. Congurationsofoperatingsystems(OS),basicinput/outputsystems(BIOS),

    Web browsers, and networks Successful registrations of domain names

    Use:

    Virus protection software Uniformresourcelocators(URLs)tomaptoInternetprotocoladdresses(IP

    addresses)

    Knowledgeably Discuss: Computerhardware(processors,memory,buses),conceptsformeasuring

    computation(bits,bytes,megahertz,instructionspersecond[IPS],storagecapacity),andperipheraldevices(videocards,keyboards,mousedevices,

    printers) Operatingsystemarchitectureanddevicemanagement(virtualmemory,multi-

    tasking) Software development and engineering

    Applications software, including user interfaces, database systems, and Inter-net applications

    Networkarchitecture,suchaslocalareanetworks(LANs),wideareanetworks(WANs),networktopologies,Ethernetcards,modems,networkprotocols,

    nameresolution,andclient/serverarchitectures The Internet, including services and trends

    Maintenance of system integrity, including disk backups, security, and power Risk management of a computer system, covering viruses, Trojan horses,

    worms, and encryption

    6

  • 8/2/2019 Academic Course Catalog

    7/16www.ang.

    This course introduces students to professional tools and processes fordesigning, documenting, and programming software systems. Studentslearn effective software architecture and problem solving techniques bymeans of object-oriented programming and design. There is an empha-sis on problem analysis and solution design, documentation and codingconventions (using formats widely applied in the workplace), and imple-mentation. Students use commercial software libraries and create robustsoftware applications, such as a point-of-sale cash register kiosk. Start-ing with a specication, students design UML class diagrams, use designpatterns, implement in Java, and test their solutions. This course givesstudents the experience and knowledge to create highly functional, well-designed software systems.

    Course topics include: mlaty an abtatn enaplatn, inhtan, Plyph u an atn f ftwa lba Java unt ttng umL Java pgang ide dgn pattn

    Course Prerequisites:SSD1: Introduction to Information Systems

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    Pga ng bjt-nt thnq dgn bt, xtnbl la exp gn ng umLWt pga by wtng patng la an ntfa untan th p f vlpng ftwa pjt

    ssd3: oBJecT-orieNTed ProGrAmmiNG ANd desiGN1-semester, undergraduate-level course

    Students successfully completing SSD3 will be able to:Produce:

    Java programs exhibiting object-oriented programming features includinginheritance, polymorphism, abstract classes, and interfaces

    RobustJavaclassesthroughtheuseofexceptionsandaccessmodiers Object Oriented Designs using UML

    Javaimplementationfromaspecication Extensions to existing Java programs to improve performance or to add func-

    tionality Professional quality code using code conventions followed in the industry

    Use:

    Commonly used professional tools such as debuggers, Integrated Develop-mentEnvironments(IDEs),andUMLeditors

    UtilityclassesandpackagesinvolvingI/O,andtokenization

    Java Swing classes to implement GUIs On-line resources for keeping up to date on Java developments Design patterns

    Test cases for unit testing Collections and iterators

    Knowledgeably Discuss:

    Advanced Object Oriented concepts

    7

  • 8/2/2019 Academic Course Catalog

    8/16www.ang.

    This course focuses on a different dimension in developing robust,maintainable, and efcient software. Software and Web applications thathave users can be characterized along a dimension of usability. In otherwords, is it straightforward for the user to get the software to do what itis supposed to do? whether the task is to draw a map, pay a bill, nda phone number, order an item, book a ight, or change the format of atext page. In this course, students learn the most important techniques ofHuman-Computer interaction, so that they can conduct user studies toisolate usability problems and ultimately build software that gracefullyassists its users in accomplishing intended tasks. Students receive train-ing in the basic skills of task analysis, interface evaluation, and effectiveUI design. VB.Net is used in various programming assignments.

    Course topics include: Tak analy u ntfa u ntfa tlkt rap pttypng an valatn spl t an ablty apt pt Thnk al th Val Ba pgang

    Course Prerequisites:SSD3: Object-Oriented Programming and Design a

    pqt t th , th tw ay b takn nntly.

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    epally valat ntfa ablty wth tw ablty tl cat ntfa an ntfa pttyp ng a ap-pttypng

    pgang langag ipv ntfa by applyng th lt f ablty t n

    th ftwa vlpnt p.pgang langag.

    ssd4: user-ceNTered desiGN ANd TesTiNG1-semester, undergraduate-level course

    Students successfully completing SSD4 will be able to:Produce:

    Usability studies that isolate UI problems through the application of: Judg-ments about how interface aspects meet the usability criteria expressed in

    tenheuristics;Judgmentsaboutinterfaceusabilitybasedonthendingsofathink-aloud usability study

    Usabilityaspectreports(UARs)thatsummarizeusabilitystudyndings Rapid prototypes of UIs in Visual Basic that are informed by usability studies

    Use: Think-aloud testing methodology and ten usability heuristics as tools for

    evaluating real-world user interfaces Criticalincidentanalysistoanalyzetheobservationsofathink-aloudusability

    study A basic set of Visual Basic controls to create applications and prototypes

    UAR recommendations to implement changes in interface applications

    Knowledgeably Discuss: The human capabilities and limitations that are relevant to interface design, in

    terms of the Information Processing Model of human cognition The basic features of the iterative design process and the basic concepts of

    interactive programming

    8

  • 8/2/2019 Academic Course Catalog

    9/16www.ang.

    This course prepares students for designing data intensive softwareapplications, bolstered by a practical assignment involving the develop -ment of an online auction system with rich functionality. To support suchapplications, students learn how to select algorithms and representationsthey will frequently use as professional programmers and software devel-opers, and how to reason informally about algorithm and data structurecorrectness and complexity. Students also gain a thorough understandingof the dependence of execution time and memory requirements on thedata structures and algorithms chosen. Programming assignments use theC++ programming language and the Standard Template Library.

    Course topics include:

    Abtat ata typ data tt an nvaant spl algth analy stng an ahng T an gaph Aatv ata tt c++ pgang wth th stana Tplat Lbay (sTL)

    Course Prerequisites:SSD3: Object-Oriented Programming and Design

    Course Objectives:

    Aft pltng th wkhp, patpant wll b abl t: untan langag-npnnt, bjt-nt gn that a

    ltn t al-wl pbl, gnzant f th ptant f t an pa that a p by ata tt an algthltn

    Apply ky pnpl f algth an ata tt gn evalat, lt an lba plntng algth an ata

    tt u th sTL f fnt pgang wth fw bg. Pga n c++

    ssd5: dATA sTrucTures ANd ALGoriTHms1-semester, undergraduate-level course

    Students successfully completing SSD5 will be able to:Produce:

    C++ programs that implement those designs, using classes, objects, tem-plates,pointers,referencesandI/O

    Programs using binary trees and associated algorithms, pointer and arrayrepresentations of graphs, and hashing algorithms

    Classicationsofprogramsegmentsintologarithmic,linear,polynomialandexponential algorithms

    Use:

    C++ Standard Template Library facilit ies in writing large programs includingsequential containers, trees, hash tables, stacks, and queues

    Descriptions of the time and space requirements of algorithms and data struc-tures to make appropriate design decisions

    Knowledgeably Discuss: The notion of asymptotic analysis of algorithms in terms of growth rates Theconceptsofsearch,divide-and-conquer,andmemorizationasalgorithm

    design principles The concept of templates in terms of generic programming

    9

  • 8/2/2019 Academic Course Catalog

    10/16www.ang.

    This course prepares programmers to consistently produce software ap-plications that execute rapidly and are efcient in their use of memory.

    This is accomplished by providing students with a programmers viewof processors, memory, and operating systems. Students learn explic-itly about memory organization and hierarchies, context switching andthreads, and the transformations that a high-level program undergoesbefore it is executed on actual hardware. This knowledge enables stu-dents to eliminate obscure bugs and to measure and optimize softwareprogram performance. Programming assignments use Visual C++.Net.

    Course topics include: Pgang n c

    dbggng; y anagnt, y hah, ahy, vtal y; pfan ant an tnng dLL opatng yt Ba nnt

    Course Prerequisites: SSD2: Introduction to Computer Systems anSSD5: Data Structures and Algorithms

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    untan th ptv ata pntatn ppt by np, an patn n th

    untan th ganzatn an pfan f pt y untan th pt nttn t an th xtn f bjt

    pga untan th ant an pvnt f pga pf-

    an untan th ntatn btwn applatn ftwa an th p-

    atng yt, pally p, tha, hlng an n-

    ny ntl

    ssd6: sYsTem-LeVeL ProGrAmmiNG1-semester, undergraduate-level course

    Students successfully completing SSD6 will be able to:Produce:

    Isolationandidenticationofperformancebottlenecksinlargerprograms Diagnosis and improvement of performance bugs due to unfavorable memory

    access patterns Simple concurrent programs that use concurrency to hide latency

    Code that manipulates bits in wordsAstorageallocatorthatidentiescommonmemory-relatedprogramminger-

    rors

    Use: The C programming language to perform low-level memory and data opera-

    tions Prolingtoolstomeasureandimproveprogramperformance

    Debuggingtoolstoanalyzememoryaccessbugs

    Low-levelcyclecounterstovisualizeinterruptsandconcurrentoperations

    Knowledgeably Discuss:

    Bit-level and arithmetic operations of modern processors, as well as limits toarithmetic precision

    The fundamental notions and performance effects of virtual memory andcaching

    Common memory related programming errors The notions of process, threads and concurrency

    10

  • 8/2/2019 Academic Course Catalog

    11/16www.ang.

    At the heart of todays web-based software applications that are revolu -tionizing businesses, there are well-designed database systems enabling

    rich functionality. This course trains students to build such systems, byteaching database concepts and then the practical work of databasesystem design and implementation. It draws on previous training inadvanced Java, web environments, object-oriented programming, andusability design. Students develop client-server applications in Java andJSP, using database management systems. The assignment involves thecreation of an e-commerce bookstore, which must support the abilityfor users to register themselves, search content, place and track orders,and change personal settings. Students gain the necessary skills to createdata models appropriate for specic applications (relational data models

    are emphasized), tune the underlying database for fast response times,and ensure the system is robust enough to handle failures.

    Course topics include: rlatnal ata l an ata npnn latnal qy langag an sQL databa gn Nalzatn clnt-v applatn Tanatn inx

    Pfan

    Course Prerequisites:SSD5: Data Structures and Algorithms

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    u ataba gt. ftwa t vlp ata-ntnv applatn dvlp an anag -al ataba pjt untan fnantal dBms npt A an ntan ft tn n atabaStudents successfully completing SSD7 will be able to:

    ssd7: dATABAse sYsTems1-semester, undergraduate-level course

    Produce: Database designs that represent processes drawn from business and other

    real-world domains Data models using E-R diagrams

    SoundschemadesignsusingnormalizationWeb-baseddatabaseapplicationsusingSQLandJSP/Servlets

    Use:

    Index structures of a DBMS to improve performance The transaction features of a DBMS to achieve fault recovery and concurrency

    control Key relational operations to manipulate data

    PostgreSQL DBMS and JDBC SQL DDL to model data, constraints, and views

    SQL DML to write complex queries

    Knowledgeably Discuss: The basic concepts of object-relational and object-oriented database man-

    agement systems The basic concepts and application of data warehousing and data mining

    (DataCubes,OLAP) The basic functions and application of multimedia databases

    The basic issues of database privacy and security The DBMS offerings of the most important vendors

    11

  • 8/2/2019 Academic Course Catalog

    12/16www.ang.

    This course focuses on the principles and practices of building busi-ness applications that are distributed across networks, allowing for

    many users to be part of a connected community. Students start withan overview of networking technology that supports data and multi-media communication. The students apply concepts to a number ofpractical assignments involving the development of distributed appli-cations, including web servers, calendars, and chat systems. Studentslearn application-oriented protocols and approaches to distributedobject oriented programming using Java. With network based applica-tions being a frequent source of security issues for many companies,professionals having strong knowledge in this area are an asset inhelping to prevent such problems in the workplace.

    Course topics include: Ntwkng ptl an thnlgy mlta ntwkng clnt/v gn, thk an thn lnt corBA an lat tl Wb plntatn ; ltn al; ty an pvay -

    Course Prerequisites:SSD6: System-Level Programming

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    Lan th pnpl f tbt yt gn Lan t bl tbt yt ng th t ptant nt

    thnal appah Lan abt th lnt f th tt an fntn f th intnt

    that a t ptant t applatn yt vlp Lan t intnt ptl n applatn vlpnt

    ssd8: NeTWorKs ANd disTriBuTed comPuTiNG1-semester, undergraduate-level course

    Students successfully completing SSD7 will be able to:Produce:

    Software artifacts that meet the dual challenges of connecting users via a net-work-based application and enabling a business solution through technology

    Programs using TCP sockets to communicate across an IP network Programs that act as clients using common Internet protocols like FTP, HTTP,

    and SMTPDistributedobjectstobemanagedbyanobjectrequestbroker(ORB)

    Distributed applications based on existing and new distributed objects man-aged by an ORB

    Use: InternetRFCsandotherreferencematerialforprotocolspecications

    CommonInternettools(suchasnslookup,ping,traceroute,netstat,ttcp)toobserve and evaluate network performance and function

    An object request brokers services in constructing a distributed application

    Knowledgeably Discuss: The structure and concepts of the OSI protocol model and its application to

    TCP/IP Fundamental concepts including abstraction, encapsulation, multiplexing and

    demultiplexing The structure and function of the most popular layer 1 and 2 networks: Ether-

    nets, ATM, Sonet, ADSL, ISDN, WDM The design criteria for distributed objects

    The functionality of an ORB and the general attributes of popular ORB sys-tems(CORBAandDCOM)

    The issues of replication, consistency, and fault tolerance in distributed sys-tems

    12

  • 8/2/2019 Academic Course Catalog

    13/16www.ang.

    The course prepares students for the software development processesand planning activities they will encounter in the workplace, by provid-

    ing them with practical experience in managing all phases of a softwareprojects life cycle from requirements gathering through design, test-ing, and nal deployment. This course, which has served as a Masters-level course at Carnegie Mellon University, focuses on the principlesof developing economical, reliable software systems following modernsoftware engineering practices. Students work individually or in multi-person teams to develop and manage all the steps required to build adatabase driven software project of signicant scale, in this instance, anonline musical instrument store.

    Course topics include: Lf yl l rqnt analy spatn, gn, plntatn, nptn, ttng an -

    ntatn cngatn ntl cAse tl r

    Course Prerequisites:SSD4: User Centered Design and Testingan SSD7:Database Systems

    Course Objectives:Aft pltng th wkhp, patpant wll b abl t:

    dvlp ftwa that t an nal exan ffnt pha f a ftwa pt lf yl untan va appah t ftwa gn an th l f

    ftwa ahtt n ftwa gn untan tt yt analy, bjt nt analy

    (ooA), an bjt-nt gn (ood) untan th ffnt typ f al-ga ftwa ttng,

    ntatn, an antnan thnq

    ssd9: soFTWAre sPeciFicATioN, TesT ANd mAiNTeNANce1-semester, undergraduate-level course

    Students successfully completing SSD7 will be able to:Produce:

    Reliable software systems based on customer requirements Scope descriptions and requirements checklists by choosing a suitable devel-

    opment modelUniedModelingLanguage(UML)diagramsillustratingtheusecasesidenti-

    edforthesoftwareproduct Use case scenarios

    A class list for a product using the noun extraction technique. Class diagrams and state transition diagrams using UML notation

    Sequence diagrams and collaboration diagrams using UML.Detailedclassdiagramsand,foreachobject,interfacespecicationsand

    skeletalJavaclassles Detailed code documentation using Javadoc

    Project implementation plans, test plans, documents at each phase

    Analsoftwaresystemfordemonstration

    Use:

    OOA and OOD techniquesEntity-relationship(ER)modelingtechniques

    TheMySQLdatabasesystemandJavaDatabaseConnectivity(JDBC)foraproject

    Javadoc to produce documentation Techniques for improving quality of artifacts for each phase of software devel-

    opment

    Knowledgeably Discuss: Specicationtechniquesthataddressthevarioussoftwareengineeringprin-

    ciples Computer-aidedsoftwareengineering(CASE)technology

    Code reuse and design reuse Managingmaintenance:faultreports,faultprioritization

    Maintenance of object-oriented software. The structure and function of the most popular layer 1 and 2 networks: Ether-

    nets, ATM, Sonet, ADSL, ISDN, WDM The design criteria for distributed objects

    The functionality of an ORB and the general attributes of popular ORB sys-tems(CORBAandDCOM)

    The issues of replication, consistency, and fault tolerance in distributed sys-tems

    13

  • 8/2/2019 Academic Course Catalog

    14/16www.ang.

    This course prepares students to organize and manage teams of individu-als involved in the development of software applications and products.

    The skills taught are crucial for the workplace, where software projectplans must be developed to withstand typical problems such as scheduleoverruns, budget over-runs, and other risks that affect software quality.Students learn techniques of project planning, scheduling, costing, riskanalysis, and organization. Students examine and critique various kindsof software planning and management artifacts that are representative ofplans encountered in the workplace.

    Course topics include: Pjt anagnt thnq: hlng, bgtng, k analy

    Ba pjt anagnt tl Lahp pnpl an lnt latnhp Lablty, ntlltal ppty an nntalty cmm eth

    Course Prerequisites:SSD9: Software Specication, Test and Mainte-nance, whh ay b takn nntly, val ya pgangxpn (a appv)

    Course Objectives:

    Aft pltng th wkhp, patpant wll b abl t: oganz an anag ta f vlp an ftwa pjt ex pjt anagnt thnq f hlng, tng, k

    analy, an pjt ganzatn exan an bjtvly tq plannng an anagnt atfat dvlp tana pjt anagnt nt an ppln-

    tay atfat u n fawk f anagng ftwa vlpnt p ran abt ftwa vlpnt l untan pnpl f lahp, lablty, ntlltal ppty,

    nntalty , an anagnt f t latnhp

    ssd10: soFTWAre ProJecTs orGANiZATioN ANd mANAGemeNT1-semester, undergraduate-level course

    Students successfully completing SSD7 will be able to:Produce:

    Modern,evolutionary-styleworkbreakdownstructures(WBS)Effortallocationsandscheduleestimatesforlanguages(suchasVisualBasic,

    VisualC++,andPowerBuilder)usingCOCOMO Planning and management artifacts for controlling projects

    Use:

    Important management principles in the context of software project manage-ment

    Existing artifacts to understand a project and its context and to make criticalmanagement decisions

    Project control and process instrumentation metrics Workowmodels

    Standards for documentation, risk assessment, quality assurance

    Knowledgeably Discuss: Principles of modern software management that address recurring problems

    of conventional development techniques Cost parameters and software economics

    Communication issues involving senior management, end users, and devel-opment team

    Production of artifact sets that meet the needs of stakeholders Gantt, PERT, and resource charts

    TheCapabilityMaturityModel(CMM)bytheSoftwareEngineeringInstitute(SEI)

    The Software Engineering Code of Ethics and Professional Practice Software management and the legal areas of intellectual property, patent law,

    copyright law, trademark law, privacy, and unfair competition Barry Boehms Top Ten Software Metrics

    14

  • 8/2/2019 Academic Course Catalog

    15/16www.ang.

    our courses

    Executive Seminars

    People:Lahp, Ta blng, dn-akng, cnt anagnt,

    ct xptatn, cahng

    Project Management:rqnt anagnt, etatn, rk anagnt, Plannng

    an takng, chang anagnt, Qalty Aan

    Process:sftwa P ipvnt, Hgh matty, Agl thlg

    Technology:Ahtt f Pattn an f manag

    Business:otng, Glbal sftwa dvlpnt, mg an Aq-

    tn, statgy an Lahp, managal cahng

    Certicate Programsctat n managng cplx sftwa Pjt

    ctat n managng sftwa Pjt n sall dyna oganzatn

    ctat n sftwa Ahtt dgn

    ctat n extv cahng f sftwa Pfnal

    ctat n sftwa Qalty & P ipvnt

    cang ff a vaty f n th fllwng aa. T v a py f fll atalg,

    pla wt tnf@ang..

    15

    Academic Coursesmanagng sftwa dvlpnt

    Ahtt f sftwa syt

    managng Thnal Ppl

    ssd1: int t infatn syt

    ssd2: int t cpt syt

    ssd3: objt-ont Pga an dgn

    ssd4: u-cnt dgn an Ttng

    ssd5: data stt an Algth

    ssd6: syt-Lvl Pgang

    ssd7: databa syt

    ssd8: Ntwk an dtbt cptng

    ssd9: sftwa spatn, Tt an mantnan

    ssd10: sftwa Pjt oganzatn an managnt

  • 8/2/2019 Academic Course Catalog

    16/16www ang

    ABouT us

    Headquarters Addresscang, in.

    161 Nth dthg sttPttbgh, PA 15213usA

    Phone+1 412-622-2150

    Fax+1 412-621-2865

    F gnal nfatn abt cang, al:nf@ang.

    F hlp thnal ppt, al:hlp@ang.

    F nfatn abt bng an cang atn patn, al:patn@ang. plt nln nfatn qt f.

    iCarnegie maintains partnerships around the globe, including locations in theU.S., U.K., Australia, India, China, Russia, Mexico, Panama, Dominican Republic,Costa Rica, Colombia, Chile, Peru and Portugal.

    iCarnegie, Inc., is an educational afliate of Carnegie Mellon Universityand provider of modern, world-class software systems development cur-riculum and professional certications.

    These sets of curriculum were developed by the core faculty of Carn -egie Mellon Universitys Master of Software Engineering Program. Theapproaches taught in these courses have been adopted by many of the

    worlds leading organizations. Past participants have included DeutscheBank, Borland, Intel, IBM, Motorola, Microsoft, Hyundai, Samsung, Boe-ing and LG Electronics and many others.

    iCarnegie past and existing customers include:Siemens, Intel, Deutsche Bank, Bombardier, Borland, IBM, Motorola,Microsoft, Hyundai, Samsung, Boeing and LG Electronics.