CIA - Applications Development (CIA)

CIA 2503 Web Applications Development (2-2-3)

Building upon Web Technologies, this course covers languages, frameworks, and techniques for developing interactive and dynamic web applications. Topics include page styling, client and server-side scripting, client and server-side validation, state management, and interacting with databases. Throughout the course, a series of progressive assignments help students gain hands-on experience in developing interactive and dynamic web applications using emerging technologies.

Prerequisites: CIS 1203

CIA 2513 Key Components of IoT Architecture for Smart Applications (3-1-3)

Introduces the IoT architecture and the concepts of smart cities. It provides an overview of the basic technologies required for supporting the IoT and how these technologies and devices are used in mobile apps to support smart cities. Learners will gain an understanding of the impact of the IoT on smart cities. The course provides students with the opportunity to develop a mobile application using the IoT devices. It also introduces typical application scenarios in which IoT provides innovative new services to enhance productivity and save costs.

CIA 3003 Introduction to Mobile Applications (2-2-3)

This course covers the design, development, and deployment of applications on mobile platforms. Topics include mobile UI design, industry standards, best practices, navigation, data storage, location-based services, and maps. Throughout the course, a series of progressive assignments help students gain hands-on experience in developing and deploying mobile apps on virtual simulators and physical devices.

Prerequisites: CIA 2503

CIA 3013 Advanced Mobile Applications (2-2-3)

Building upon Introduction to Mobile Applications, this course covers the development of multi-threaded mobile apps that perform background tasks, connect to external data sources and cloud-based back-end services, and control mobile device hardware and sensors. Additional topics include advanced customization of user interfaces, integrating industry best practices to secure mobile apps, testing and debugging mobile apps using virtual and physical devices.

Prerequisites: CIA 3003

CIA 3103 Database Design and Administration (2-2-3)

Apply data modelling, database design and database administration techniques on an RDBMS server. Learn how to use Structured Query Language (SQL) to define, manipulate, and administer data. Develop an understanding of the concept of database administration and define the duties and responsibilities of database administrators.

Prerequisites: CIS 1303

CIA 3313 Database Administration (2-2-3)

Building upon Database Systems, this course familiarizes students with different concepts of database administration including DBA Roles and responsibilities, tablespace and storage management, DB backup and recovery, security, audit, and SQL tuning. Throughout the course, a series of progressive assignments helps students gain hands-on experience about installation, administration, access control, audit, backup, and recovery to ensure organizational efficiency and continuity. Additional topics include schemas objects, locking, and concurrency.

Prerequisites: CIS 1303

CIA 3503 Advanced Object Oriented Programming (2-2-3)

Building upon Object-Oriented Programming, this course covers the implementation of high-quality software using OO techniques. Topics include abstract classes, interfaces, built-in and user-defined generic classes, GUIs with Swing/JavaFX, event-driven programming, and design patterns. Throughout the course a series of progressive assignments help students gain hands-on experience in developing a range of software applications with varying complexities.

Prerequisites: CIS 2403

CIA 4103 Data Driven Web Technologies (2-2-3)

Building dynamic data-driven web applications using a widely adopted web framework. Topics include user-input validations on both client and server-side, exception handling, application state management, CRUD operations, and vulnerabilities and threats of web applications. Throughout the course, a series of progressive assignments helps students gain hands-on experience in developing secure full-stack web applications using a web framework.

Prerequisites: CIA 2503

CIA 4123 Mobile Game Development (2-2-3)

Providing a strong foundation in game design and programming; and working on all major aspects of developing games using game platforms. Topics include an overview of the games design process including design frameworks, paper prototyping, playtesting and gameplay. Throughout the course, a series of progressive assignments helps students gain hands-on experience in creating 3D games with realistic environments, building character controllers with rigidbody physics, integrating audio, exploring animation and collision, testing, packaging, and deploying games.

Prerequisites: CIA 3013, CIA 2503

CIA 4133 Advanced Application Development (2-2-3)

Covering advanced concepts used to develop enterprise applications. It will provide students with the knowledge and skills needed to write applications that develop and consume secure web services and communicate with databases (e.g. MongoDB). Topics include data formats, SOAP web services, SOAP Protocol, RESTful web service, Micro services architecture and Object Relation Mapping (ORM). AngularJS is used to develop the front-end to consume the web services. Virtualization tools and integration such as Docker will be used to deploy the web services.

Prerequisites: CIA 2503, CIA 3503

CIA 4203 Enterprise Database Applications (2-2-3)

Develop a comprehensive understanding of advanced topics pertinent to database management systems (DBMS) and study how they are being applied in a business environment. Examine the advanced concepts used to design, implement and administer database applications on client server configuration. Using different tools, develop forms and reports, control objects and codes for mitigation of data entry errors, and implement security measures.

Prerequisites: CIA 3103 or CIA 3313

CIA 4303 System Administration (2-2-3)

Covering the essentials of modern system administration. Topics include version control, fundamentals of virtualization, containers, and serverless, infrastructure management, networks, security, and Infrastructure as Code (IaC) mechanism. Throughout the course, a series of progressive assignments helps students gain hands-on experience in deploying and configuring infrastructure resources and services, planning preemptively, handling and documenting system incidents, and implementing a system backup and recovery strategy to recreate systems efficiently.

Prerequisites: CIS 2103, CIS 2903

CIA 4403 Software Testing and Quality (2-2-3)

Exploring the basic concepts of software quality during all the stages of software development process and quality standard systems used in the field of software industry. Topics include software quality models, software quality metrics, static and dynamic testing techniques, functional and non-functional testing, and software testing levels. Throughout the course, a series of progressive assignments helps students gain hands-on experience in applying different testing techniques, conducting unit testing, integration testing, and measuring the software product quality.

Prerequisites: CIS 3113