Concentration Streams

Students may select a concentration from one of ten concentration streams. Each concentration is designed to offer a structured set of elective courses around an organized theme without exceeding the normal degree completion time. Concentrations are only available to computer science majors.

CR1-Artificial Intelligence

Artificial Intelligence includes the study of AI principles and techniques, as well as foundational material on topics such as logic, probability, and language. Artificial Intelligence along with Machine Learning is ideal for students who desire to learn how to program computer systems to ‘learn’ from data and perform complex tasks normally associated with human-level intelligence. AI/ML includes the opportunity to study topics such as computer vision, natural language processing, robotics, machine learning, deep learning, knowledge acquisition and representation.


This Concentration stream requires creativity, as well as computer science and math skills. Computer graphics engineers develop software for creating images, videos, and even 3D worlds. Computer vision engineers analyze 2D, 3D and even 4D data with goals such as object recognition, video analysis, content-based image retrieval, 3D reconstruction and more. Game designers use graphics and HCI skills to create video games for people to play and enjoy.

CR3-Application Development

In this concentration stream students will get familiarization from developing computer game interfaces. Topics may include: game balance and level design; storytelling and narrative; basic game architecture; sprite-based games and isometric games; representation of scenes; user interaction; architecture of game consoles; development tools for game consoles; interaction with game peripherals. This concentration focuses on the creation of Game Art and develops advanced 3D modelling and texturing skills used in 3D games and related industries. Students will learn polygon modelling, image-based modelling and are introduced to animation using a motion capture system. They also learn basic rigging for simple animation, dynamics and procedural texturing. Along with-it students get an understanding of OS concepts, procedures, primitive data types, user-defined types. Topics may include process management, memory management, process coordination and synchronization, inter-process communication, file systems, networking, pointers, heap and stack memory management, and system/library calls.


Provides students with an in-depth understanding of the current challenges faced by computer scientists regarding designing and developing secure, safety-critical systems. Course work includes network security, cryptography, secure databases concepts. The Security Concentration stream is available to students who want to intensively study cybersecurity, Data Encryption, and Security Testing.


The Databases concentration stream provides coverage of the principles underlying modern database and information management systems, as well as methods for mining massive data sets. The track spans topics ranging from developing applications for database and information systems; to Enterprise Systems. Related topics include distributed systems, networking, and security on the system side, as well as text mining, bioinformatics, web search, and social media on the applications side.

CR6-Information Technology

In many nations around the world, computing systems are seeing a radically different development and evolution than what has happened in heavily industrialized nations. For example, the dominant computing device is the mobile phone rather than the laptop or desktop. Phones are more mobile, more easily powered where the power infrastructure is less developed, and have communication capability for both voice and data (SMS and GPRS).

Arguably, the phone is the truly personal computer that everyone around the world carries with them. A new engineering discipline is emerging that solves problems using appropriate technology for the many environments around the world that have many fewer resources than our own. It often explores a very different range of designs and solutions than what might be appropriate within our familiar environment. The field of ICTD focuses on deploying technology to help spur economic and social development as well as improving health and education services. Application areas cover improving public health (both clinic and community outreach efforts), educational applications, helping illiterate populations bridge the digital divide, and facilitating financial instruments that operate with the smaller amounts of poorer economies. ICTD systems must carefully account for economic, cultural, and language aspects of the communities and users where they are deployed.


The Networks concentration focuses on System and Network Administration, Virtual Systems and Network Programming. How does a computer work? How and why did your program crash? How does the Internet work? These are just a few questions that this concentration answers. It includes courses related to computer networking (principles on designing computer networks and their instantiation in various real networks, including the Internet, networked embedded systems and wireless networks), operating systems (principles and mechanisms for process creation, memory and  resource management, and I/O management in a computer system), computer architecture (design principles and methodologies for modern microprocessors and computer memory system), and computer and network security (privacy and security issues related to computer and network systems). 

CR8 – Web Development

Web Application Development introduces the fundamental concepts of web applications, providing a comprehensive coverage of both client-side and server-side development. The latest topics in JavaScript, CSS, HTML5, jQuery, AngularJS, PHP, and Node.js are widely covered. Students also learn, and work with, cutting-edge technologies for building desktop and mobile web applications, such as Ruby on Rails, AJAX, Flex, and Google Web Toolkit (GWT). Students create real-world web application projects that also involve interacting with databases such as Oracle, MySQL, and NoSQL databases like MongoDB.

CR9-Software Project Management

This concentration stream focuses on management principles, methods, and tools to effectively plan and implement successful system and product development projects. Material is divided into four major sections: project preparation, planning, monitoring, and adaptation. Brief review of classical techniques such as CPM and PERT. Emphasis on new methodologies and tools such as Design Structure Matrix (DSM), probabilistic project simulation, as well as project system dynamics (SD). Topics are covered from strategic, tactical, and operational perspectives. Industrial case studies expose factors that are typical drivers of success and failure in complex projects with both hardware and software content. 

CR10-Software Engineering

Software engineers design, build and evolve software in a broad variety of domains. Although many focus on specific aspects of the software lifecycle: requirements engineering, architecture and design, testing and analysis, etc.

 Software engineers need to understand the needs of users, design approaches to manage software complexity and to ease change over time, ways to assess the properties that the software product does or does not have, algorithmic and implementation techniques to build efficient software, and more. Making effective trade-offs about issues ranging from performance to reliability to availability to ease of change (and more!) is part-and-parcel of a software engineer’s job.