ITM Development (ITMD)

ITMD 321
Data Modeling and Applications

Basic data modeling concepts are introduced. Hands-on database design, implementation, and administration of single-user and shared multi-user database applications using a contemporary relational database management system.

Lecture: 3 Lab: 0 Credits: 3
ITMD 361
Fundamentals of Web Development

This course covers the creation and deployment of modern, standards-compliant web pages written in HTML, CSS, and JavaScript in the context of the client-server architecture of the web. Students create and deploy a website with multiple, structured pages cross-linked by a site navigation structure.

Lecture: 3 Lab: 0 Credits: 3
ITMD 362
Human-Computer Interaction and Web Design

Students in this course will learn the importance of human-computer interaction design and the effectiveness of user-centered design. The course will cover a survey of methods frequently used in the HCI profession, such as usability testing and prototyping, as well as general design principles and the use design guidelines. A particular emphasis will be placed on usability for website engineering. Students will apply knowledge from the field in the design and construction of user-centered websites.

Prerequisite(s): ITMD 361
Lecture: 3 Lab: 0 Credits: 3
ITMD 411
Intermediate Software Development

This course covers a broad spectrum of object-oriented programming concepts and application programming interfaces. The student considers the details of object-orientated development in topics of multi-threading, data structure collections, stream I/O and client interfaces. Software engineering topics of packaging and deployment are covered as well. Hands-on exercises reinforce concepts taught throughout the course.

Prerequisite(s): (ITM 311 or CS 116 or CS 201) and (ITM 312 or ITM 313 or CS 331)
Lecture: 3 Lab: 0 Credits: 3
ITMD 412
Advanced Structured and Systems Programming

Structured programming continues with advanced concepts including strings, arrays, pointers, data structures, file manipulation, and dynamic memory management. Students create more complex applications that work with user input, manipulate user supplied text or text obtained from a file, apply standard library routines for working with literal text, use pointers to store complex structures within arrays, and read and write data from files, the console, and the terminal. The object-oriented programming (OOP) paradigm is covered in depth including the philosophy of OOP, classes and objects, inheritance, template classes, and making use of class libraries.

Prerequisite(s): ITM 312 or ITMD 411
Lecture: 3 Lab: 0 Credits: 3
ITMD 413
Open Source Programming

Contemporary open-source programming languages and frameworks are presented. The student considers design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Prerequisite(s): ITMD 411 or CS 331
Lecture: 3 Lab: 0 Credits: 3
ITMD 415
Advanced Software Development

This course considers Web container application development for enterprise systems. The primary focus is on database connectivity (JDBC) integration with Web application programming using an enterprise-level application framework. A Web application term project considers the design and implementation of a database instance that serves as the information tier in a contemporary 3-tier enterprise solution.

Prerequisite(s): ITMD 411
Lecture: 3 Lab: 0 Credits: 3
ITMD 419
Topics in Software Development

This course will cover a particular topic in software development, varying from semester to semester, in which there is particular student or staff interest. This course may be taken more than once but only 9 hours of ITMD 419/519 credit may be applied to a degree.

Credit: Variable
ITMD 422
Advanced Database Management

Advanced topics in database management and programming including client server application development are introduced. Expands knowledge of data modeling concepts and introduces object-oriented data modeling techniques. Students will learn the use of Structured Query Language in a variety of application and operating system environments.

Prerequisite(s): ITMD 321
Lecture: 3 Lab: 0 Credits: 3
ITMD 441
Web Application Foundations

In this course students examine core web technologies that are integral in the creation of web-based applications typically delivered in a browser. The course will cover fundamental web protocols, web application architectures, markup, and scripting languages. A focus will be placed on writing modern, standards-compliant JavaScript and how it is used to interact with HTML and CSS to enable rich user interfaces and communication with other services. Current frameworks, libraries, and tools will also be explored.

Prerequisite(s): ITMD 361
Lecture: 3 Lab: 0 Credits: 3
ITMD 442
Full-Stack Web Development

This course covers the fundamental concepts and techniques of full-stack web development, focusing on server-delivered front-end content such as server-rendered HTML or JSON and its integration with back-end architectures and data stores.

Prerequisite(s): ITMD 441
Lecture: 3 Lab: 0 Credits: 3
ITMD 443
Front-End Web Development

Catalog description: This course emphasizes front-end, browser-based components of web application development. It includes a robust survey of Web APIs in addition to advanced coverage of visual design executed in leading-edge CSS.

Prerequisite(s): ITMD 442
Lecture: 3 Lab: 0 Credits: 3
ITMD 444
Back-End Development

This course emphasizes back-end, server-side components of web application development. It provides broad coverage of server-side data stores and languages, and surveys multiple leading server-side web development frameworks.

Prerequisite(s): ITMD 442 and ITMD 321
Lecture: 3 Lab: 0 Credits: 3
ITMD 445
Web Real-Time Communication

This course covers the WebRTC specification’s set of protocols, architectures, and APIs designed to enable browser-to-browser real-time communication of voice, video, and data. Students will learn to apply basic technologies including WebSockets, HTTP, HTML5, Web Sockets, NAT, STUN, TURN, and ICE to ensure two-way real-time communication. Students will use JavaScript and development environments to create basic data and media applications based on WebRTC technologies and will analyze the impact of their applications on the performance and behavior of the networks that carry them.

Prerequisite(s): ITMD 441
Lecture: 3 Lab: 0 Credits: 3
ITMD 446
Web Microservices and APIs

This course covers fundamental principles and methods for programmatically accessing and parsing data returned by internet-available data APIs. The course guides students in carefully examining the structure of API endpoints expressed as URLs and the conventions of RESTful architecture.

Lecture: 3 Lab: 0 Credits: 3
ITMD 447
Web Systems Integration

In this project-based course, student teams will build an enterprise-grade website and web infrastructure integrating server-side applications, databases, and client-side rich internet applications as a solution to a defined business problem.

Prerequisite(s): ITMD 442
Lecture: 3 Lab: 0 Credits: 3
ITMD 449
Topics in Web Development

This course will cover a particular topic in web development, varying from semester to semester, in response to a specific student or faculty interest. This course may be taken more than once, but only 9 hours of ITMD 449 credit may be applied to a degree.

Credit: Variable
ITMD 453
Enterprise Intelligent Device Applications

Intelligent device application development is covered with proprietary enterprise and open-source technologies on media device, mobile, and robotic platforms. Utilizing contemporary toolkits, the student considers design and development on simulated and real "smart" devices including smart phones, tablets, sensors, actuators, drones, and robots. Numerous exercises reinforce concepts gained throughout the course. A term project will integrate course topics into a comprehensive intelligent device application.

Prerequisite(s): ITM 311 or CS 116 or CS 201
Lecture: 3 Lab: 0 Credits: 3
ITMD 454
Mass-Market Intelligent Device Applications

Intelligent device application development is covered with leading mass-market and open-source technologies on media device, mobile, and robotic platforms. Utilizing contemporary toolkits, the student considers design and development on simulated and real "smart" devices including smart phones, tablets, sensors, actuators, drones, and robots. Numerous exercises reinforce concepts gained throughout the course. A term project will integrate course topics into a comprehensive intelligent device application.

Prerequisite(s): ITM 312
Lecture: 3 Lab: 0 Credits: 3
ITMD 455
Open-Source Intelligent Device Applications

Intelligent device application development is covered with various technologies on mobile and robotic platforms. Utilizing contemporary toolkits, the student considers design and development on emulated and real "smart" devices including smart phones, personal digital assistants, sensors, actuators, and robots. Numerous exercises reinforce concepts gained throughout the course. A term project will integrate course topics into a comprehensive intelligent device application.

Prerequisite(s): ITM 311 or CS 116 or CS 201
Lecture: 3 Lab: 0 Credits: 3
ITMD 460
Fundamentals of Multimedia

Students are introduced to computer-based multimedia theory, concepts, and applications. Topics include desktop publishing, hypermedia, presentation graphics, graphic images, animation, sound, video, multimedia on the World Wide Web and integrated multimedia authoring techniques.

Lecture: 3 Lab: 0 Credits: 3
Satisfies: Communications (C)
ITMD 466
Service-Oriented Architecture

This course covers IT enterprise systems employing web services technologies in SOA and ESB architectural patterns. The student considers SOA which defines and provisions IT infrastructure and allows for a loosely-coupled data exchange over disparate applications participating in business processes. The simplification of integration and flexible reuse of business components within SOA is greatly furthered by ESB. Lab exercises using contemporary tool-kits are utilized to reinforce platform-agnostic course topics.

Prerequisite(s): ITMD 411 and ITMD 361
Lecture: 3 Lab: 0 Credits: 3
ITMD 469
Topics in Application Development

This course will cover a particular topic in application development, varying from semester to semester, in which there is particular student or staff interest. This course may be taken more than once but only 9 hours of ITMD 469/569 credit may be applied to a degree.

Credit: Variable