In ITP classes, you can learn to use advanced software, create websites, perform data analysis, write computer programs, and investigate cybercrime.

You’ll get practical, hands-on experience. No matter what your major is, you can learn how to use the latest tools, programming languages, and applications. You’ll also gain critical insight into technology’s increasing impact on our world.

Browse our course descriptions for insight into the skills you’ll gain in each course.

Registration Help

For any questions about registration, please review our Frequently Asked Questions or contact our academic advisers.

Introductory Courses

All students are welcome to register for ITP classes, and our introductory courses do not require a background in technology or engineering.

Introductory Courses

Front-End Web Development

Learn how to create interactive webpages and gain skills in front-end web development using dynamic HTML and JavaScript. You’ll learn how to create online shopping carts, validate forms, use asynchronous JavaScript (AJAX) to update webpages, create animated content, and use popular frameworks like React and Vue.js. (4 units)

  • Prerequisite: ITP-104


Advanced Web Publishing

Create websites using advanced HTML and CSS techniques, CSS preprocessors and frameworks (including Sass, Less, and Bootstrap), static site generators, and content management systems like WordPress. Explore how these tools can best fit with specific web projects, learn how to implement responsive web design patterns, and follow best accessibility practices. (4 units)

  • Prerequisite: ITP-104


Full-Stack Web Development

Create interactive, database-driven web applications using JavaScript, jQuery, SQL, and PHP. You will learn how to access and manipulate content displayed by browsers. You’ll also explore the Model-View-Controller (MVC) design pattern and software frameworks based on MVC. Projects include jQuery photo galleries, search functionality, and user authentication. (4 units)

  • Prerequisite: ITP-265 or CSCI-103L


Intermediate 3D Modeling and Procedural Asset Pipelines

Learn how to create dynamic data-driven web applications using PHP and MySQL. Design and implement databases that store website content and explore back-end frameworks currently used in industry, including Laravel, Node.js, and Express.js. You’ll also learn how to implement basic security and user authentication. (4 units)

  • Prerequisite: ITP-301L


Advanced 3D Modeling, Animation, and Special Effects

Explore advanced modeling techniques and the benefits of procedural asset creation workflows for cinema, games, animation, design, modeling, texturing, visualization, and augmented and virtual reality. You’ll practice using procedural workflows and use scripting, live data, node-based architectures, and custom interfaces for advanced models, layouts, animations, shading, and rendering. (4 units)

  • Prerequisite: ITP-215L, ACAD-187, ACAD-188, AME-101, ARCH-207, or CE-107


Computer-Aided Design for Bio-Mechanical Systems

Learn how to use SolidWorks, a widely-used computer-aided design (CAD) application. You’ll be introduced to sketching, part assembly, drawings, motion tools, and a finite element analysis tool in order to create and analyze 2D and 3D designs. By the end of this class, you’ll be prepared for the Certified SolidWorks Associate certification. (3 units)

  • Prerequisite: None


Design for User Experience

Explore the fundamental concepts, techniques, workflows, and tools used in the user experience (UX) design process, focusing on web and mobile applications. You’ll focus on web and mobile applications as you conduct UX design research, design and evaluate UX concepts, solve UX problems, and create wireframes, prototypes, and user flows. You’ll learn how to use Sketch, Adobe Photoshop, and InVision to develop UX designs. (4 units)

  • Prerequisite: None


3D Character Rigging and Animation

Create and animate 3D characters for games, cinema, and performance animations — including organic modeling, character setup, and texturing. You’ll learn how to plan a rigging strategy based on script and storyboard, build skeletons, apply skin deformation and weights, and animate a complete performance reel. You’ll also explore pipelines for motion capture data and incorporation with game engines. (4 units)

  • Prerequisite: ITP-215L, ACAD-187, ACAD-188, AME-101, ARCH-207, or CE-107


Enterprise Information Systems

Explore how enterprise resource planning systems (ERPs) work to complete different business operations, including supply chain management, financial transactions, sales, production, and accounting. You’ll work through many real-world business situations using SAP — one of the world’s most popular providers of enterprise software — to gain hands-on practice carrying out critical business processes. (4 units)


Using GIS Technology for Social Impact

As the traditional lines blur between nonprofit work, government, and business, it is critical to understand the technology available for taking on opportunities and challenges in this new landscape. Through industry guest speakers, case studies, TED talks, and student presentations, you’ll explore the technologies available in the emerging field of social impact using technology. You’ll also develop a concept and technology plan for a social product or enterprise using ArcGIS, a geographic information system used to build and deploy applications with spatial capabilities. (2 units)

  • Prerequisite: None


Ethical Hacking and Systems Defense

Find security flaws in computer systems to secure them from criminal hackers by learning how to work as an ethical hacker. Ethical hackers follow a code of conduct and work under specific guidelines in order to test, audit, and secure computer and network infrastructure. Alongside lab-based practice, you'll explore the history of hacking and the mindet of criminal hackers. (3 units)

  • Prerequisite: ITP-125L


Android App Development

Develop applications for the Android open-source platform. You’ll learn how to build a mobile app for the Android platform — including interfaces, user input, and data persistence — using the Android Software Development Kit (SDK) and Java. You’ll also explore user interface (UI) design principles for mobile and tablet apps, hardware and software constraints for mobile platforms, and how to evaluate and use third-party APIs and libraries. (4 units)

  • Prerequisite: ITP-265 or CSCI-103L


iOS App Development

Develop applications for the iOS platform using the iOS Software Development Kit (SDK) and the Xcode integrated development environment (IDE). You’ll use the Swift programming language to build mobile apps — including interfaces, user input, and animations — for iPhones and iPads. You’ll also explore Apple’s Human Interface Guidelines, hardware and software constraints for mobile platforms, and how to evaluate and use third-party APIs and libraries. (4 units)

  • Prerequisite: ITP-265 or CSCI-103L


Advanced iOS App Development

Learn how to create applications for the iOS platform that use advanced features like network data, push notifications, geofencing, background processing, and Siri integration. You’ll also continue practicing best test and debugging practices for mobile apps, explore beta testing processes, and learn how to submit completed apps to the iOS App Store. (4 units)

  • Prerequisite: ITP-342


Advanced Android App Development

Learn how to create applications for the Android open-source platform that use advanced features like background threading, broadcast receivers, sensors, network data, and third-party authentication. You’ll also continue practicing the best test and debugging practices for mobile apps, explore battery life optimizations and app revenue models, and learn how to submit completed apps to Google Play. (4 units)

  • Prerequisite: ITP-341


Introduction to Physical Computing

Learn how to create physical, Internet-connected devices — including motion sensors, robotic arms, and remotes — using C and Arduino. You’ll learn how to program devices that accept input from the physical world using sensors, connect to cloud platforms, and communicate with other devices. By completing a variety of hardware and programming assignments, you’ll learn the fundamentals of creating physical computing systems that include smart devices, wearables like smartwatches, e-textiles/fashion, Internet of Things (IoT) devices, and hardware start-ups. (4 units)

  • Prerequisite: ITP-109, ITP-115, or ITP-165


Blockchain: Decentralized Applications

Learn how to create decentralized applications (DApps) and smart contracts using blockchain. Using Web3.js, Truffle, and smart contracts written in Solidity, you will develop new DApps and deploy them onto the Ethereum platform. You’ll also explore the technical, social, and economic implications of decentralized applications. (4 units)

  • Prerequisite: ITP-256


Enterprise Network Design

Learn how to design, implement, and maintain secure enterprise-level networks. You’ll learn how to configure an integrated operated system, subdivide a network using subnets, configure Cisco switches and routers, and secure enterprise systems. (3 units)

  • Prerequisite: ITP-125L


3D Compositing and Visual Effects

Develop 3D scenes — including storyboarding, pre-visualization, footage capture, and post-production. You’ll learn how to integrate photorealistic materials and texturing, HDR image capture, advanced lighting techniques, lens and film artifacts, and live action content to create a portfolio-quality 3D animation project. You’ll also explore asset management, production pipelines, and multi-pass rendering processes. (4 units)

  • Prerequisite: ITP-215L, ACAD-187, ACAD-188, AME-101, ARCH-207, or CE-107


Managing Data in C++

Learn how to use the C++ programming language for advanced object-oriented programming, data structures, and memory management. You'll learn advanced problem-solving techniques using recursion and parallelism and how to implement different data structures. This is the third course in the core programming sequence (ITP-115 → ITP-265 → ITP-365). You'll write programs and simple games that include advanced techniques like encryption, graphics, and artificial intelligence. (4 units)

  • Prerequisite: ITP-265


Blockchain: Advances and Use Cases

Explore the latest advances in blockchain technology — including privacy, storage, and sidechains — and critically examine new use cases for feasibility, practicality, and benefits. You’ll learn how to propose and design new use cases for blockchain and suggest improvements for existing projects in government, financial services, identity verification, supply chain, transportation, and more. (4 units)

  • Prerequisite: ITP-356


Programming Graphical User Interfaces

Learn how to program applications with dynamic graphical user interfaces (GUIs) — including UI controls, events, user input, and layout panes — using Java. You’ll incorporate JavaFX libraries to design interfaces, simple animations, and mini-games. You’ll also explore design patterns, localization and internationalization, and best accessibility practices. (4 units)

  • Prerequisite: ITP-265 or CSCI-103L


Information Security Management

Learn how to manage information security systems, plan for disaster recovery, and conduct security audits of computers and networks. You’ll practice writing security policies, designing new security plans, performing audits, and responding to incidents and disasters. You’ll also explore laws and regulations, training, and relationships between different departments in an organization in relation to information security. (3 units)

  • Prerequisite: ITP-125L


Digital Forensics

From cyberterrorism to identity theft, computers have changed the ways that crimes are committed. Learn how to investigate crimes involving digital evidence, follow best practices for incident response, and prepare forensic reports. You’ll explore the legal aspects of digital forensics and the relationship between IT and forensics. (3 units)

  • Prerequisite: ITP-125L


Video Game Programming

Use C++ to start programming video games. Gain an understanding of core game systems — including rendering, input, sound, collision, in-game physics, and 3D graphics — by programming a variety of different game projects. You'll also start exploring artificial intelligence for games and programming for online multiplayer games. (4 units)

  • Prerequisite: ITP-365 or CSCI-104L


Mobile Game Development

Learn how to program cross-platform mobile games for iOS and Android using Unity, C#, and industry-standard tools. You’ll gain experience developing 2D and 3D game prototypes and demos using animation, artificial intelligence, augmented and virtual reality, accelerometers, and multi-touch gestures. You’ll also explore user interface design, gameplay design, and software optimization for mobile devices. (4 units)

  • Prerequisite: ITP-265 or CSCI-103L


Cloud Architecture and Applications

Learn how to create cloud-based web applications, such as file sharing, messaging, and online payment systems. You’ll practice using the Ruby programming language, Amazon Web Services, and database systems to develop new cloud-based services that include features like user account management, cloud storage, and analytics. You’ll also explore performance optimization, project feasibility, security, and new use cases. (4 units)

  • Prerequisite: ITP-365 or CSCI-104L


Developing Connected Devices

Design hardware and program firmware for connected devices with advanced capabilities like USB, Bluetooth, and wireless networking. You’ll learn how to create professional-quality printed circuit boards (PCBs) and develop firmware for production-grade microcontrollers (MCUs). You’ll practice creating temperature sensors, building USB-based peripherals, and creating wireless devices. (4 units)

  • Prerequisite: ITP-348

Designing and Producing Video Games

Learn how to write game design documents, prepare verbal and written pitch presentations, prepare budgets and production status reports, and manage development teams. Through a semester-long simulation of managing a game from concept to retail launch, you will explore the role of designers and producers, their relationships with stakeholders, and how to apply for a job in the video game industry. (4 units)

  • Prerequisite: ITP-230x or ITP-280