University of Southern California

Viterbi School of Engineering

Information Technology Program

Olin Hall 412
(213) 740-4542
Email: itp@usc.edu
itp.usc.edu

Director: Michael Crowley, Ph.D.

Associate Professor of Engineering Practice: Nitin Kale, M.S.

Senior Lecturers: Joseph Greenfield, M.S.; Tom Sloper, B.A.

Instructors: Patrick Dent, M.S.; Jennifer Kassar, B.A.; Nathan Greenfield, M.S.; Trina Gregory, B.A.; Sanjay Madhav, B.S.; Rob Parke, M.S.; Chi So, M.S.; Ashish Soni, M.S.; David Tang, M.S.; Richard Vawter, M.S.; Lance Winkel, MFA

Adviser: Lisa Mataczynski, Ed.D.

ITP courses are open to all USC students.

Minors

ITP minors are open to undergraduate students in all majors.

To apply for a minor, students should meet the regular admissions standards and have a declared USC major. Students will complete an application for the minor with the Viterbi School of Engineering. For specific information on admission and application procedures, contact the Information Technology Program at (213) 740-4542.

ITP Minors:

3-D Animation

Applied Computer Security

Computer and Digital Forensics

Computer Programming

Enterprise Information Systems

Innovation: The Digital Entrepreneur

Mobile App Development

Video Game Design and Management

Video Game Programming

Web Technologies and Applications

Viterbi School of Engineering Students

The “x” designation indicates that engineering students require prior departmental approval to count 100-level and above ITP courses for major credit.

Minor in 3-D Animation

The 3D animation minor is a cross-disciplinary program merging theoretical concepts and state of the art techniques to prepare students to apply 3D animation across a wide range of industry applications. The courses integrate three major disciplines — cinematic arts, fine arts and information technology.

Requirements for completion (five core courses plus minimum 9 units of electives)

Minimum units: 22

Core courses (13 units) Units
CTAN 330 Animation Fundamentals 2
CTAN 451 History of Animation 2
FADW 101 Introduction to Drawing 4
ITP 215Lx 3D Modeling, Animation, and Special Effects 2
ITP 414x Seminar and 3D Portfolio Development 3
Elective courses (9 units) Units
ITP 305x Advanced 3D Modeling, Animation, and Special Effects 3
ITP 315x 3D Character Animation 3
ITP 360x 3D Compositing and Visual Effects 3
ITP 470x Information Technology Practicum 3-4
CTAN 452 Introduction to 3-D Computer Animation 2

Minor in Applied Computer Security

The minor in applied computer security combines both theoretical concepts and technical skills to prepare students for a career in information security while incorporating their major field of work. Students will study various areas of computer security, including hacking, ethics, forensics, networking and security management. Electives are available depending on the students’ academic and professional goals.

Requirements for completion (five core courses plus one elective)

Minimum units: 18

REQUIRED COURSES (14 UNITS) Units
ITP 125Lx From Hackers to CEOs: Introduction to Information Security 2
ITP 325x Ethical Hacking and Systems Defense 3
ITP 357x Enterprise Network Design 3
ITP 370x Information Security Management 3
ITP 375x Digital Forensics 3
ELECTIVE (4 units) Units
ITP 425x Web Application Security 4
ITP 457 Network Security 4
ITP 475x Advanced Digital Forensics 4

Minor in Computer and Digital Forensics

The computer and digital forensics minor combines both theoretical concepts and practical skills to prepare students for a career as a digital forensics investigator. Students will study various areas of cyber-forensics, including forensic methodologies and processes, digital evidence-gathering and preservation, investigations and examinations, and court presentation. Electives are available depending on the students’ academic and professional goals.

Requirements for completion (core courses plus electives)

Minimum units: 18

REQUIRED COURSES (4 COURSES, 12 UNITS) Units
ITP 125Lx From Hackers to CEOs: Introduction to Information Security 2
ITP 375x* Digital Forensics 3
ITP 475x* Advanced Digital Forensics 4
ITP 479 Cyber Law and Privacy 3
FORENSIC ELECTIVEs (CHOOSE two, 6 UNITS) Units
ITP 325x* Ethical Hacking and Systems Defense 3
ITP 445* Macintosh, OSX and iOS Forensics 3
ITP 446* Cyber Breach Investigations 3
ITP 447* Mobile Device Security and Forensics 3
ITP 448* Cyber Litigation Support 3
*Prerequisite required

Minor in Computer Programming

The minor in computer programming focuses on the practical programming skills necessary to solve problems in a variety of domains including on desktops, laptops, mobile devices, the Web, the cloud and for video games. Upon completion of the minor, students will have strong experience with the application of programming languages in several different contexts.

Students with a declared major in computer science, computer science and computer engineering, computer science (games), or computer science and business administration are not eligible for this minor. Students with a declared minor in computer science are likewise not eligible.

Requirements for completion (two core courses plus 12 units of electives)

Minimum units: 17

CORE COURSES (5 UNITS) Units
ITP 165x* Introduction to C++ Programming 2
ITP 365x Managing Data in C++ 3
ELECTIVE COURSES (12 UNITS) Units
ITP 341x App Development for Phones and Tablets 3
ITP 342L Mobile Application Development 3
ITP 368x Programming Graphical User Interfaces 3
ITP 380 Video Game Programming 4
ITP 404x** Modern Technologies of Web Development 3
ITP 435x Professional C++ 3
ITP 437x Secure Programming 3
ITP 439x Compiler Development 3
*ITP 109x or ITP 115 can be substituted for ITP 165x, though ITP 165x is recommended.
**ITP 404x has additional prerequisites outside the minor, though these prerequisites can be waived for students in the minor (subject to faculty approval).

Minor in Enterprise Information Systems

The 21st century has seen tremendous growth in global enterprises, which has required robust and integrated information systems to support streamlined business processes. These Enterprise Information Systems, also known as Enterprise Resource Planning (ERP) systems, have continued to mature and dominate the information systems of corporations. Most Fortune 500 companies have adopted ERP systems. This minor combines business process management and information technology to prepare students for technical careers as well as business consulting in the ERP domain. Students will study various areas of ERP implementation, configuration, business intelligence, security and supply chain management. Electives are available depending on the students’ academic and professional goals.

Requirements for completion (three core courses plus minimum 7 units of electives)

Minimum units: 16

REQUIRED COURSES (10 units) Units
ITP 320x Enterprise Wide Information Systems 4
ITP 422 Configuring Enterprise Resource Planning Systems 3
ITP 454x Enterprise Resource Planning, Design, and Implementation 3
ELECTIVES (choose minimum 6 units of which minimum 3 units should have ITP prefix) units
ACCT 371a Introduction to Accounting Systems 2
ACCT 371b Introduction to Accounting Systems 2
ACCT 410x Foundations of Accounting 4
ACCT 478 Accounting Systems Design 4
ACCT 479 Accounting Systems Development 4
BUAD 311 Operations Management 4
DSO 431 Foundations of Digital Business Innovation 4
DSO 433 Business Process Design 4
DSO 435 Enterprise Data Architecture 4
ISE 382 Database Systems: Concepts, Design and Implementation 3
ITP 421x Advanced Programming for Enterprise Information Systems 3
ITP 455Lx Enterprise Information Portals 3
ITP 470x Information Technology Practicum 1-4, max 8
ITP 486 Securing and Auditing Enterprise Resource Planning Systems 3
ITP 487 Data Warehouses and Business Intelligence 3
ITP 488x Managing Supply Chains with Advanced Planning and Optimization 3
PPD 318 Financial Accounting in Public and Nonprofit Organizations 4

Minor in Innovation: The Digital Entrepreneur

The Minor in Innovation: The Digital Entrepreneur is jointly sponsored by the Information Technology Program in the Viterbi School of Engineering and the Lloyd Greif Center for Entrepreneurial Studies in the USC Marshall School of Business. The minor is designed for students from a range of backgrounds who are interested in starting their own digital ventures, working for start-up companies, or pursuing traditional jobs with large corporations and consulting firms that may involve launching new digital business units. Students will learn all major elements of launching a digital venture including ideation, feasibility analysis, high-tech product management, online customer acquisition, technology implementation, online business models and monetization. Students will work on launching a digital venture in a team-based environment in the capstone class.

The Information Technology Program in the Viterbi School of Engineering handles advising and admissions relating to the minor, consulting as needed with the Grief Center for Entrepreneurial Studies in the Marshall School of Business.

Requirements for completion (six core courses plus minimum 6 units of electives)

Minimum units: 26

Required courses (20 units) units
BAEP 451 The Management of New Enterprises 4
BAEP 452* Feasibility Analysis 4
ITP 466x Building the High-Tech Startup 4
ITP 476x Technologies for Interactive Marketing 4
ITP 496x*+ The Digital Startup Launchpad Lab 2
(capstone course; Corequisite: BAEP 496)
BAEP 496*+ The Digital Startup Launchpad 2
Elective courses (6 units) units
BAEP 423 Management of Small Businesses 4
BAEP 460 Seminar in Entrepreneurship 2
BUAD 304 Organizational Behavior and Leadership 4
BUAD 307 Marketing Fundamentals 4
IOM 462 Managing a Small Business on the Internet 2
ITP 310Lx Design for User Experience 3
MKT 425* Marketing on the Internet 4
*Prerequisite required

+ITP 496 and BAEP 496 must be taken in the same semester.

Minor in Mobile App Development

Students will study and gain experience with the technologies, tools, frameworks and languages that are most commonly used in developing apps for mobile devices such as smartphones and tablets. They will learn the basics of the programming languages, how to design mobile interfaces, how to use the libraries to build apps that have the proper look and feel, how to design and handle user input, and other aspects. Students will go through the process of building a mobile app from idea to product. Students will learn the fundamental principles of mobile apps, so that they will be prepared for the new technologies and frameworks that are constantly being developed.

Students should meet the regular admissions standards and have a declared USC major. Students will complete an application for the minor with the Viterbi School of Engineering. For specific information on admission and application procedures, contact the Information Technology Program at (213) 740-4542.

Requirements for completion (five core courses plus two electives)

Minimum units: 20

Required courses (14 units) UNITS
Choose one from the following (2 units):
ITP 109x Introduction to Java Programming 2
ITP 115 Programming in Python 2
ITP 165x* Introduction to C++ Programming 2
Choose one from the following (3 units):
ITP 341x App Development for Phones and Tablets 3
ITP 342L Mobile Application Development 3
All of the following courses (9 units):
ITP 140 Mobile Application Technologies 2
ITP 365x* Managing Game Data 3
ITP 442 Mobile App Project 4
Electives (choose two courses for a minimum of 6 units) UNITS
ITP 310Lx Design for User Experience 3
ITP 341x App Development for Phones and Tablets 3
ITP 342L Mobile App Development 3
ITP 344x Advanced Topics in Mobile App Development 3
ITP 382x Mobile Game Programming 3
ITP 435x Professional C++ 3
*ITP 165x and ITP 365x can be waived for students who have taken CSCI 103 and CSCI 104. However, these students must take an additional elective course in order to have the appropriate number of upper-division units.

Minor in Video Game Design and Management

The video game design minor integrates theoretical concepts and practical skills to prepare students for a career in interactive entertainment, specifically the video game industry. Students will be exposed to a variety of design concepts related to creating video games including: level design, game-play control, user interface, multiplayer, game mechanics, and storytelling. As opposed to the video game programming minor where students will be writing code and programming game engines, students in the video game design and management minor will apply design concepts to different game genres and use game design software tools to create a working demo of a video game during the course of the minor program.

Requirements for completion

Minimum units: 22

Required courses (22 units minimum) units
CTIN 483* Introduction to Game Development 4
CTIN 484L** Intermediate Game Development 2
CTIN 488 Game Design Workshop 4
CTIN 489** Intermediate Game Design Workshop 2
ITP 280 Video Game Production 4
And at least 6 elective units from the following:
ITP 391abx Video Game Project Management 4, 2
ITP 393x Video Game Design Documents 2
ITP 491x Level Design and Development for Video Games 4
*It is recommended to take an introductory programming course before taking CTIN 483. Suggested courses: ITP 109, ITP 115, ITP 165.

**CTIN 483 and CTIN 488 are prerequisites; enrollment in CTIN 484L and CTIN 489 is concurrent.

Minor in Video Game Programming

The video game programming minor integrates the theoretical concepts and practical skills to prepare students for a career in interactive entertainment, specifically the video game industry. Through integration of two major disciplines (computer science and information technology), students will be exposed to a variety of programming concepts related to creating video games including: 3-D graphics, artificial intelligence, particle systems, rendering, collision detection, game algorithms, physics concepts, and math formulas. In contrast to the video game design minor where the focus is applying design concepts and using software design tools, students in the video game programming minor will evaluate, write and debug code, in addition to creating a game engine during the course of the minor.

This minor features an optional capstone that is a team-based, year-long game development project. Students are only eligible for the capstone after having completed all the required courses as well as the required three ITP elective units. The capstone must be taken in both the fall and spring semesters of a single academic year.

Requirements for completion (four core courses plus 6 units of electives)

Minimum units: 19

Core courses (13 units) units
ITP 165x* Introduction to C++ Programming 2
ITP 365x* Managing Data in C++ 3
ITP 380 Video Game Programming 4
ITP 485 Programming Game Engines 4
Elective courses (6 units — 3 units must be ITP) units
ITP 382x Mobile Game Programming 3
ITP 435x Professional C++ 3
ITP 438x Graphics Shader Programming 3
ITP 484x Multiplayer Game Programming 3
CSCI 491abL** Final Game Project 4-2
*ITP 165x and ITP 365x can be waived for students who have taken CSCI 103 and CSCI 104. However, these students must take an additional elective course in order to have the appropriate number of upper-division units.

**Optional capstone. See details above for requirements.

Minor in Web Technologies and Applications

The Web technologies and application minor is designed to introduce students to the Web publishing and development fields. Upon completion of the minor, students will be able to design and develop Websites using major Web technologies, standards and applications. Students can use the theoretical concepts and practical applications of Web technologies not only in the Web industry, but also within a different major field of study. The broad areas of study include Web publishing, Web programming, databases and multimedia. Electives will be chosen based on the students’ academic and professional goals.

Students should meet the regular admissions standards and have a declared USC major.

Requirements for completion (four core courses plus two electives)

Minimum units: 18

Core courses (13 units) Units
ITP 104x Web Publishing 2
ITP 300x Database Web Development 3
ITP 301Lx Interactive Web Development 4
ITP 460x Web Application Project 4
Elective (two courses) Units
ITP 302x Advanced Web Publishing 2
ITP 310x Design for User Experience 3
ITP 404x Modern Technologies of Web Development 3
ITP 411x Multimedia and Video Production 3
ITP 425x Web Application Security 4
ITP 470x Information Technology Practicum 3

Courses of Instruction

Information Technology Program (ITP)

The terms indicated are expected but are not guaranteed. For the courses offered during any given term, consult the Schedule of Classes.

All ITP courses are open to non-engineering majors. The “x” designation indicates that engineering students require prior departmental approval to count 100-level and above ITP courses for major credit.

ITP 090x Introduction to Adobe Photoshop (2, FaSp) Basic concepts of colors; color calibration tools; scanning, importing and exporting images; painting, editing, fill, and type tools; using layers, masks, filters, and color correction. Not available for degree credit. Graded CR/NC.

ITP 101x Introduction to Information Technology (4, FaSp) Introduction to computer hardware, operating systems, networks, programming. Survey of application software in business and industry. Computer issues in the work place and society.

ITP 104Lx Web Publishing (2) Web publishing using HTML, CSS and other Web technologies. Concepts and theory of Web site creation, page layout and production. Introduction to advanced topics. Not available for major credit in electrical engineering or computer science.

ITP 109x Introduction to Java Programming (2, FaSp) Introduction to object-oriented software design for business problems. Creation of console applications, windowed applications, and interactive Web applets. Not available for major credit in electrical engineering or computer science.

ITP 110x Introduction to C Programming (2) Fundamentals of C; a survey of C compilers; the role of C in developing Unix and other operating systems. Prerequisite: knowledge of a higher-level language.

ITP 111x Introduction to Cloud Technologies (2) Introduction to the fundamentals of cloud computing; cloud security, storage, services, and networking options.

ITP 115 Programming in Python (2, FaSp) Python’s high level data structures and clear syntax make it an ideal first language with powerful applications to science, business, finance, math, and the web.

ITP 125Lx From Hackers to CEOs: Introduction to Information Security (2, FaSp) Introductory course in computer security. Fundamentals of information security management. Threats to information integrity. Ethical hacking concerns and practice. Policies and Procedures. Not available for major credit in Engineering.

ITP 140 Mobile Application Technologies (2, FaSp) Technologies, devices, operating systems, and tools of mobile applications, as well as the mobile industry. Students will use tools to create apps for different mobile devices.

ITP 165x Introduction to C++ Programming (2, FaSp) Fundamentals of C++ syntax and semantics, including function prototypes, overloading, memory management, abstract data types, object creation, pointers to class members, and I/O streams. Prerequisite: any high-level programming language.

ITP 168x Introduction to MATLAB (2) Fundamentals of MATLAB: a high-performance numeric computation and visualization environment. Overview of linear algebra and matrix manipulation; using 2-D and 3-D plotting routines; programming in MATLAB; basic numerical analysis. Recommended preparation: MATH 118x or MATH 125.

ITP 204x Coding I: Web Publishing and Programming (4) Introduction to the fundamentals of programming through the lens of interactive websites. Covers both HTML/CSS layout as well as the JavaScript programming language.

ITP 209x Object Oriented Programming Using Java (3) Basic object-oriented concepts and object-oriented analysis and design as they relate to Java technology. Object-oriented programming for developing applications with Java technology. Prerequisite: ITP 109x.

ITP 214x Coding II: Electronic Prototyping (4) Fundamentals of creating electronic prototypes. Covers both software (including Python, object-oriented programming, and Linux) as well as hardware (including electrical theory and hardware design). Prerequisite: ITP 204.

ITP 215Lx 3-D Modeling, Animation, and Special Effects (2, FaSp) Developing a 3-D animation from modeling to rendering: Basics of surfacing, lighting, animation and modeling techniques. Advanced topics: compositing, particle systems, and character animation. Not available for major credit in engineering. Recommended preparation: knowledge of any 2D paint, drawing or CAD program.

ITP 216x Web Animation and Interactivity (2, FaSp) 2-D vector graphics for web and animation. Scripting techniques for interactivity. Action Script syntax, logic and control. Recommended preparation: basic computer knowledge.

ITP 230x Video Game Quality Assurance (4, FaSp) Survey game software development through quality assurance and in-depth analysis of the development cycle with a focus on bug testing systems and methodologies. Not available for major credit in electrical engineering.

ITP 260x Internet Technologies (4) Overview of emerging technologies on the Internet including multimedia components, networking, security tools, web-based databases, and wireless systems.

ITP 280 Video Game Production (4, FaSp) History of video games; overview of game genres; phases of video game development (concept, preproduction, production, post-production); roles of artists, programmers, designers, and producers.

ITP 300x Database Web Development (3, Fa) Fundamental theory and technologies for creating dynamic, database-driven Websites: Structured Query Language. Prerequisite: ITP 104x; Recommended preparation: ITP 204x.

ITP 301Lx Interactive Web Development (4, Sp) Design, programming techniques for creating interactive, dynamic Web pages. Web development technologies and techniques include scripting fundamentals, Javascript, dynamic HTML, Actionscript, and Flash. Not available for major credit in engineering. Prerequisite: ITP 104x.

ITP 302x Advanced Web Publishing (2) Advanced topics in Web Publishing including HTML5, CSS3, and jQuery. Concept and theory of responsive design. Miscellaneous Webmaster topics including analytics, podcasting and search engine optimization. Prerequisite: ITP 104x.

ITP 304L Technologies for Building Online Political Campaigns (4) Key technology components necessary in building a successful online political campaign. Fundamentals of implementing, marketing and managing an online political campaign.

ITP 305x Advanced 3D Modeling, Animation, and Special Effects (3, Sp) Advanced modeling, surfacing, and animation techniques as well as dynamics, scripting, and other advanced 3D automation procedures. Not available for major credit in engineering. Prerequisite: ARCH 207a or ITP 215Lx.

ITP 309x Developing Enterprise Applications Using Java (3) Java architecture and key logic for business components; Servlets, Server Pages and Enterprise Java Beans technologies, to design and construct secure and scalable n-tier applications.

ITP 310x Design for User Experience (3) Fundamental concepts, techniques, practices, workflows, and tools associated with the practice of user experience and interaction design in web and mobile applications.

ITP 315x 3D Character Animation (3) Advanced exploration of the process of bringing 3D characters to life from concept to model, and through production to finished performance. Not available for major credit in electrical engineering. Prerequisite: ITP 215Lx.

ITP 320x Enterprise Wide Information Systems (4, FaSp) The role Information Systems play in an organization. Integration of Business Processes by using Enterprise Resource Planning Systems (ERP).

ITP 325x Ethical Hacking and Systems Defense (3, FaSp) Hacking from a defense perspective. Hacker ethics and laws. Penetration testing. Vulnerability assessment. Securing workstations, servers, and networks. Not available for major credit in engineering. Prerequisite: ITP 125Lx.

ITP 335x Computer Graphics and Animation Scripting (4) Applications of the Python programming language to create tools for computer graphics and animation. Topics include linear algebra for graphics, exporters, and procedural asset generation. Prerequisite: ITP 214.

ITP 340x Mobile App Design (3) Fundamental concepts, techniques, practices, workflows, and tools associated with the practice of user experience design for mobile apps. Prerequisite: ITP 140.

ITP 341x App Development for Phones and Tablets (3) Develop phone and tablet applications for open-source platforms such as Android that utilize the core functionality of mobile devices such as GPS, accelerometers, touch gestures. Prerequisite: CSCI 104L, ITP 365x or ITP 367x.

ITP 342 Mobile Application Development (3) Develop applications for mobile devices such as iPhones and iPads (iOS) and other smart phones (Android). Build a mobile application from start to finish. Prerequisite: CSCI 104 or ITP 365x or ITP 367x.

ITP 343 Mobile Development for Content and Media (1) Creating media-focused mobile applications. Topics include recording/playback, audio synthesis, stream mixing, and positional audio. Corequisite: ITP 342.

ITP 344x Advanced Topics in Mobile App Development (3) Advanced topics in mobile app development such as using REST services, security, cloud integration, NFC (near field communication), wireless networking for mobile apps, monetizing apps, and the latest frameworks to create advanced apps. Prerequisite: ITP 342L.

ITP 357x Enterprise Network Design (3) Network technologies. Strategies for managing thousands of systems. Routers and managed switches. Integrated operating systems (IOS). Windows and Linux networking. Subnets. Not available for major credit in engineering. Prerequisite: ITP 125Lx.

ITP 360x 3D Compositing and Visual Effects (3) Advanced techniques for 3D animation and visual effects development including 3D pre-visualization, match moving, dynamics, multi-pass rendering, and digital compositing. Not available for major credit in engineering. Prerequisite: ITP 215Lx.

ITP 365x Managing Data in C++ (3) Overview of basic data structures and algorithms including linked lists, stacks, queues, binary trees, and hash tables. Prerequisite: ITP 109x or ITP 115x or ITP 165x.

ITP 367x Advanced Coding (4) Accelerated introduction to the C++ programming language. Advanced programming concepts including memory allocation, data structures, and the Standard Template Library. Prerequisite: ITP 214.

ITP 368x Programming Graphical User Interfaces (3) Programming applications with dynamic graphical user interfaces. Topics include events, controls, resources, data bindings, styles, and user experience. Prerequisite: CSCI 104 or ITP 365.

ITP 370x Information Security Management (3, Sp) Management techniques for security projects. Security team management. Laws and regulations for information security. Disaster recovery. Security Audits. Not available for major credit in engineering. Prerequisite: ITP 125Lx.

ITP 375x Digital Forensics (3, Fa) Forensic science techniques. Digital evidence preservation and presentation. Processes and methodologies for digital analysis. Not available for major credit in engineering. Prerequisite: ITP 125Lx.

ITP 380 Video Game Programming (4, FaSp) Underlying concepts and principles required for programming video games (topics include vectors, transformations, 3-D math, geometric primitives, matrices). Prerequisite: CSCI 104L or ITP 365x.

ITP 382x Mobile Game Programming (3) Concepts and techniques required to develop games for smartphones and tablets. Topics include sprites, collision detection, mobile input, artificial intelligence, and augmented reality games. Prerequisite: CSCI 104L or ITP 365x.

ITP 383 Database Systems: Concepts, Design and Implementation (3, Sp) (Enroll in ISE 382)

ITP 385x IT Consulting and Professional Services (3) Information Technology (IT) Consulting life cycle. Client relationships. Problem evaluation, solution development and implementation. Systems analysis and evaluation. Third party consulting. Not available for major credit in engineering. Prerequisite: ITP 101 or ITP 125.

ITP 387x Cloud Architecture and Applications (4) Survey of “Infrastructure as a Service” and online application development. Concepts include online storage, computation, virtualization, messaging, and monetization. Prerequisite: CSCI 104 or ITP 365x or ITP 367x.

ITP 391abx Video Game Project Management (4-2) a: Project management basics for the video game industry, focusing on external development. Examine the role of the producer, managing development and coordinating with various stakeholders. Prerequisite: ITP 280. b: Project management for the video game industry, focusing on internal development. Creating ROIs, P&Ls, managing internal creative personnel, and coordinating with internal and external stakeholders.

ITP 393x Video Game Design Documents (2) Creation of design documents, from treatment to Game Design Document (GDD). Structuring documents for ease of use by team members who will create the game. Prerequisite: ITP 280.

ITP 404x Modern Technologies of Web Development (3, Fa) Provide students with the necessary skills to build web applications using modern techniques, frameworks, libraries, and tools that are used among developers within the industry. Prerequisite: ITP 301Lx or CSCI 351.

ITP 405x Professional Applications and Frameworks in Web Development (3) Provide students with the necessary skills to build structured, maintainable, scalable, and testable web applications using frameworks, tools, and techniques common in the industry. Prerequisite: CSCI 351 or ITP 300.

ITP 411x Multimedia and Video Production (3, FaSp) Visual communication and storytelling are essential skills, especially in the digital age. Overview of techniques and software to create, edit, and deliver compelling images and video. Not available for major credit in Engineering.

ITP 414x Seminar and 3D Portfolio Development (3, Sp) Advanced processes for developing 3D animation, showcasing skill sets, and qualifications for positions within the 3D animation industries; including demo reel, media, and website creation. Not available for major credit in engineering. Prerequisite: ITP 215Lx and ITP 305x or ITP 315x or ITP 360x.

ITP 415x 3-D Design and Prototyping (2) Explore the range of 3-D printing and prototyping technologies, and their application in modern industrial, design, and creative fields.

ITP 421x Advanced Programming for Enterprise Information Systems (3) Object Oriented Programming for Enterprise information systems. Working with classes, objects, database tables, SQL. Designing reports and Graphical user interfaces. Leveraging service oriented architecture. Not available for credit for engineering majors. Prerequisite: ITP 320x; recommended preparation: object oriented programming.

ITP 422L Configuring Enterprise Resource Planning Systems (3) Business process integration is the core advantage of using ERP systems. Analyze, configure, and test business processes for a company from the ground up. (Duplicates credit in former ITP 322.) Prerequisite: ITP 320Lx or ISE 583.

ITP 425x Web Application Security (4) Web application security techniques. eCommerce vulnerabilities. Online fraud. Solutions to spam and identity theft. Not available for major credit in Engineering. Prerequisite: CSCI 351 or ITP 301Lx or ITP 325x.

ITP 435x Professional C++ (3, Sp) Applications of advanced concepts in C++ including lambda expressions, template metaprogramming, secure coding, parallel programming techniques, and the boost library. Prerequisite: CSCI 104L or ITP 365x.

ITP 437x Secure Programming (3) Practical techniques for prevention, assessment, and resolution of security vulnerabilities in software. Prerequisite: CSCI 104 or ITP 365x.

ITP 438x Graphics Shader Programming (3, Fa) Implementation of advanced graphical effects with shaders in a production environment. Topics include math for shaders, lighting, mapping techniques, procedural generation, and global illumination. Prerequisite: ITP 165x.

ITP 439x Compiler Development (3) Practical applications of techniques used to develop a programming language compiler. Prerequisite: ITP 435x.

ITP 440x Enterprise Data Management (3) Advanced concepts in database management; design, customization, maintenance and management of a database in an enterprise environment. Prerequisite: IOM 435 or ITP 300.

ITP 442x Mobile App Project (4) Capstone course for Mobile App Development minor. Work in project teams to develop new mobile app from start to finish. Meet with client, create app design, develop, test, and demonstrate app to client. Prerequisite: ITP 140.

ITP 444 Social Game Development Workshop (2) Hands-on development of video games for social media; realities of the social games market; development tools and processes. Prerequisite: ITP 101.

ITP 445 Macintosh, OSX, and iOS Forensics (3) Digital forensics. Digital evidence. Apple. Mac. Macintosh. OSX. iOS. iPhone. iPad. Prerequisite: ITP 375x.

ITP 446 Cyber Breach Investigations (3, Fa) Cyber breaches. Data theft. Enterprise data analysis. Network forensic analysis. Server forensics. Prerequisite: ITP 375.

ITP 447 Mobile Device Security and Forensics (3, Sp) Mobile device security. Mobile device forensics. Android. Blackberry. Windows phone. Symbian. Prerequisite: ITP 375x.

ITP 448 Cyber Litigation Support (3, Sp) Civil Litigation. Digital and Electronic Evidence. Electronic Discovery. eDiscovery. Electronically Stored Information. Prerequisite: ITP 375x.

ITP 454x Enterprise Resource Planning, Design, and Implementation (3) Process and requirements to implement an Enterprise Resource Planning System (ERP). Set up server, implement ERP system, then transfer and configure database for case company. Not for major credit for Electrical Engineering students. Prerequisite: ITP 320x.

ITP 455Lx Enterprise Information Portals (3) Enterprise Information Portals for various case companies will be explored. Student will design, install, configure and administer core functionalities of a basic portal solution. Prerequisite: ITP 320Lx.

ITP 457 Network Security (4) Network policy and mechanism, firewalls, malicious code; intrusion detection, prevention, response; cryptographic protocols for privacy; risks of misuse, cost of prevention, and societal issues. Prerequisite: ITP 357x.

ITP 460x Web Application Project (4, Sp) Skills to plan, analyze, build, and launch professional Web sites with actual clients. Includes project management, documentation, technology assessment, security, UI, Q/A, and various methodologies. Recommended preparation: One 300-level Web minor course.

ITP 466 Building the High Tech Startup (4) Teach students the basic technologies and processes involved in building web and mobile startups. Students will be introduced to the different aspects of building a web startup including online business models, Product management, Agile development processes, technology platforms and operations, customer development and online marketing.

ITP 470x Information Technology Practicum (1-4, max 8, FaSpSm) Independent technology project related to specific topics under the direction of a faculty member. Not available for graduate credit in engineering. Recommended preparation: appropriate 300-level course work to topic of study.

ITP 475x Advanced Digital Forensics (4, Sp) Advanced forensic techniques. Live image analysis. Network level forensic investigation. Server forensic techniques. Deposition and trial. Not available for major credit in Engineering. Prerequisite: ITP 375x.

ITP 476 Technologies for Interactive Marketing (4) Designed to introduce students to technologies, concepts and strategies in the emerging online advertising ecosystem. Through lectures, discussions, and projects, students learn strategies and tactics to drive traffic to a website. They learn how to analyze and measure the efficacy of their plans. Lastly, they will work with a real client and with a real budget to craft and execute an online marketing plan.

ITP 479 Cyber Law and Privacy (3) Cyber legal issues, search and seizure, 4th amendment and digital evidence, private searches, case law relating to search and seizure.

ITP 480x Information Technology Internship (1-4, max 8) Practical experience in applying information technology skills in real-world settings. Supervised internship at companies and start-ups. Balancing academic rigor with corporate challenges and deadlines. Not available for graduate credit. Graded CR/NC. Recommended preparation: knowledge of chosen function area.

ITP 482 Engineering Database Applications (3) Planning and implementation of engineering information systems that interface with a large database. Emphasis is placed on web-based data entry and retrieval. Prerequisite: CSCI 101L or IOM 435 or ISE 382.

ITP 484x Multiplayer Game Programming (3) Techniques for developing networked multiplayer games. Topics include Internet protocols, network topology, data streams, object sharing, client prediction, latency, and back-end databases. Prerequisite: ITP 380.

ITP 485 Programming Game Engines (4, FaSp) Techniques for building the core components of a game engine; 2-D/3-D graphics, collision detection, artificial intelligence algorithms, shading, programming input devices. Prerequisite: ITP 380.

ITP 486 Securing and Auditing Enterprise Resource Planning Systems (3) Management and technical issues related to the security of ERP systems. Students will audit ERP systems and apply appropriate security controls. Prerequisite: ITP 320x.

ITP 487 Data Warehouses and Business Intelligence (3) Rigorous modeling process leading from data to decisions. Explores theory and practice of Data Warehouses. Deriving Business Intelligence for strategic enterprise management. Prerequisite: ITP 320x.

ITP 488x Managing Supply Chains with Advanced Planning and Optimization (3) Drivers and obstacles to the process of coordinating the flow of material/information along the logistics chain. Optimize the supply network, from raw materials to sales. Not available for major credit in engineering except toward undergraduate and graduate programs offered by the Epstein Department of Industrial and Systems Engineering. Prerequisite: ITP 320x.

ITP 489 In-Memory Database Systems for Real Time Analytics (3) Examines the design, architecture, and capabilities of in-memory database and their application to real-time analytics. Prerequisite: ITP 320x or ITP 482.

ITP 491x Level Design and Development for Video Games (4) Theories and practices of defining, prototyping, testing, and refining a video game level, development of game level documents, and the tools for managing the development process. Not for major credit for computer science and electrical engineering students. Prerequisite: ITP 280.

ITP 496 The Startup Launchpad Lab (2) A real world, hands-on learning experience on what it’s like to actually start a high-tech company. Students will work in teams to design, prototype and implement version 1.0 of a high tech web or mobile startup. Prerequisite: BAEP 451, BAEP 452, ITP 466 and ITP 476; corequisite: BAEP 496.

ITP 499x Special Topics (2-4, max 8) Recent developments in computers and data processing.

ITP 555 Functionality of Enterprise Resource Planning Systems (1) The functionality of Enterprise Resource Planning Systems (ERPs); the methods of implementation and the integration of information throughout an organization are discussed and analyzed. Concurrent enrollment: ACCT 555; recommended preparation: ACCT 547.