Course | Description | Faculty |
CS415: Relational Document-Based Database |
This course covers the essentials of DB design principles and an introduction to SQL and NoSQL databases. Topics include: Relational DB design principles, Normal Forms, Primary and Foreign and Unique keys; Queries (Aggregation, Joins, Sorting); Transactions; Document-based DB design principles, Indexes, Scaling Databases; Availability and recovery (dump, restore, export, import); Database as a Service. |
Unubold Tumenbayar Sridevi Malasani |
CS422: Database Management Systems |
Database systems organize and retrieve information, allowing the user to access the desired information easily and efficiently. Topics include: relational data model; SQL; ER modeling; relational algebra; data normalization; transactions; objects in the database; data security and integrity; data warehousing, OLAP, and data mining; distributed databases; and study of a specific commercial database system. (4 units) | Joseph Lerman Mrudula Mukadam |
CS425: Software Engineering | Software Engineering is a course that introduces the student to best practices in software development through a software development methodology. Students have already had some experience in previous courses with the Object Oriented paradigm and have used some of the basic UML diagrams for purposes of modeling relationships between software objects. Show More |
Paul Corazza Emdad Khan Obinna Kalu |
CS435: Algorithms |
This course presents methods for analyzing the efficiency of algorithms (including worst-case and average-case analysis) and introduces a variety of known, highly efficient algorithms. Analysis, design, and implementation of algorithms are given equal emphasis. Show More |
Clyde Ruby Paul Corazza Emdad Khan |
CS445: Modern Asynchronous Programming |
This course goes deep into asynchronous web programming concepts and covers the most essential design patterns for JS, that includes the observer pattern, factory, decorator, and many more. It also covers working with Web API and Immutable data structures. Topics include: Collaborative Git; Intro to TypeScript and Bundlers; Asynchronous JavaScript; Event-Loop; History API, Geolocation API; Ajax (HTTP, Ajax, JSON, Fetch, Introduction to CORS, Debugging); Promises and Async/Await; Reactive Programming; RxJS Observables and Operators; Design Patterns: Module, Prototype, Singleton, Observer, Façade, Factory, Decorator, Proxy, Strategy, Memoization; Modern Web Browsers. |
Rujuan Xing |
CS471: Parallel Programming |
The future of computing is parallel. The increase in sequential performance has plateaued as processor designs have hit the limits of miniaturization, clock frequency, power, and heat. In 2005 the number of processor cores abruptly started increasing from a single core to multiple cores, creating the potential to execute programs much more quickly. However, to utilize this potential, a programmer must have some knowledge of parallel programming techniques. Show More For further information, watch this five-minute video made by the Professor of this course: https://www.youtube.com/watch?v=dWcWAnn0Ppc |
Bruce Lester |
CS472: Web Application Programming |
This course provides a systematic introduction to programming interactive and dynamic web applications. The course is intended for individuals with little or no prior web application programming experience. This offering will use NodeJS and the Express framework for server-side processing. The course begins with a review of the fundamentals of HTML and CSS, with a special focus on web page layout using CSS. JavaScript is the programming language used thorough the course including functions, objects, modules, jQuery framework, Ajax, and Promises. Students spend most of their time programming a series of increasingly complex and sophisticated websites. A capstone project during the last week of the course creates a website with a SQL database backend that is accessed asynchronously by the client for optimal performance. | Bruce Lester Keith Levi Asaad Saad Rujuan Xing Obinna Kalu Mohammed Elmatary Sridevi Malasani Ankhtuya Ochirbat |
CS473: Mobile Device Programming |
Developing Android programs is an exciting and potentially lucrative experience. Android development opens up the world of creativity to you the programmer and allows you to express yourself in ways you never dreamed of in a digital world where you can create a product and make it available to billions of users in just one click of a button. This course will concentrate on creating Android applications by using the Kotlin programming language. Show More |
Renuka Mohanraj |
CS477: Server-Side Programming |
This course focuses on using JavaScript at the backend (NodeJS). Students will learn how NodeJS works and gain a deep understanding of its core application programming interface (API). The course covers how the JS compiler engine (V8) works, how to structure code using modules, and how asynchronous code works in Node and the Node event loop. Show More |
Rujuan Xing Thao Huy Vu |
CS488: Big Data Analytics |
The intelligence of any area or organization is reflected in its processes and structures. One important and growing aspect of that is embedded in its information systems and associated data. Data Analytics is the overall field that includes gathering and analysis of this data to discover the underlying structure and patterns and producing actionable intelligence, to help managers drive superior performance. This course covers the fundamental concepts and tools for mining large diverse data sets to generate new insights – you will learn techniques like Regression, Bayes’ Rule, Decision Tree, KNN, SVM, Association Rule mining, Clustering, Text Mining and many more. You will master the use of R language to create Wordcloud, Data Visualization and implement the techniques mentioned above. You will work in groups on a project to research on a popular data mining algorithm and present your work. (4 units) Prerequisite: Consent of the department faculty. | Anthony Sander |
CS516: Cloud Computing |
This course will cover cloud programming patterns and will allow students to practice working with various web cloud services, including AWS Serverless functions. Topics include: dentity & Access Management (IAM); Virtual Private Cloud (VPC), Network Access Control Lists – NACL, Subnets, Availability Zones, Simple Storage Service (S3), Elastic Cloud Compute (EC2), Simple Notification Service (SNS), Elastic Load Balancer (ELB), Auto Scaling, Route 53, API in the cloud; AWS Lambda, Serverless; Web Services; Application Deployment, Final Project. |
Unubold Tumenbayar |
CS522: Big Data |
Modern information processing is defined by vast repositories of data that cannot be handled by traditional database systems. This course covers latest technology developed and used by industry leaders to solve this problem in the most efficient way. Specific topics covered include MapReduce algorithms, MapReduce algorithm design patterns, HDFS, Hadoop cluster architecture, YARN, computing relative frequencies, secondary sorting, web crawling, inverted indexes and index compression, Spark algorithms and Scala (4 units) |
Prem Nair |
CS523 Big Data Technology |
In just a few short years, big data technologies have gone from the realm of hype to one of the core components of the new digital age. These technologies are very useful for transforming Information into Knowledge. The aim of the course is to add some important tools to your arsenal to help you solve various big data problems.Show More | Mrudula Mukadam |
CS525: Advance Software Development |
The Structures and Patterns of Software that Embody Knowledge of Good Design This course considers the current methods and practices for good design of software systems. Topics include: software design patterns, frameworks, architectures, and designing systems to apply these multi-level abstractions. (2-4 credits). This course is an introduction to 23 GoF (Gang of Four) design patterns and software frameworks. Design Patterns are proven solutions to recurring problems in object-oriented software design. The course will cover the rationale and benefits of using them in developing software frameworks and applications. Show More |
Gregory Guthrie |
CS544: Enterprise Applications | This course focuses on the protocols, principles, design patterns, and architecture of the Corporate Enterprise. The course emphasizes principles and patterns that are general across all platforms and frameworks. We will examine the architectural layers of an N-Tier architecture and the different technologies associated with these layers. The main emphasis will be what is commonly referred to as Service and Persistence tiers. Data Persistence, Security, Application Integration and Distributed Applications are areas of focus in this course. Show More |
Payman Salek Najeeb Najeeb Michael Zijlstra Anthony Sander Umur Inan Somesh Pullapantula |
CS545: Web Application Architecture |
This course focuses on the protocols, principles, design patterns, and architecture of web applications, and web development frameworks that embody such principles and architecture. There are a variety of system principles and design patterns that are involved in modern web applications. The most important architectural pattern in modern web applications is the Model-View-Controller (MVC) architecture for web applications. Show More |
Rujuan Xing |
CS568: Web Application Development 1 |
React is the most popular library for building powerful web applications. In this course, students will learn how to use React and ES6 to build robust, scalable applications from the ground up using the latest Redux patterns to maintain their application state. Topics include: Component-based web application development, Components Design Patterns, Consuming rest APIs, Persistence with browser API, JSX and React API (props, proptypes, events, refs), Application data flow, and Deploying React apps. |
Unubold Tumenbayar |
CS569: Web Application Development 2 |
In this course, students learn Reactive Programming Architecture of Single Page Web Applications (SPA) along with all the necessary skills to build a full modern web application using TypeScript and Angular. Students gain a deep understanding of how Angular works, including: Change detection; Reactive RxJs programming with observables and subjects; The Shadow DOM; Zones; Modules, components, custom directives, and pipes; Services and dependency injection; Angular compiler: JIT and AOF compilation; Forms (template driven and data-driven); Routing, guards, and route protection; HTTP client; and JWT JSON Web Token authentication. | Asaad Saad Thao Huy Vu |
CS571: Mobile Application Development |
This course transitions from web development to mobile application development using React Native, a popular framework from Facebook that enables cross-platform native applications to run using JavaScript without Java or Swift. The course introduces modern JavaScript–JavaScript XML (JSX)–a JavaScript extension. Students gain experience with React Native and its paradigms, application architecture, and user interfaces. The course culminates in a final project in which students implement a mobile app entirely of their own design. | Asaad Saad Thao Huy Vu |
CS572: Modern Web Applications |
In this course you will learn the Reactive Programming Architecture of SPA (Single Page Web Applications) along with all the necessary skills to build a full Modern Web Application. Technologies include:NodeJS, ExpressJS, TypeScript, Angular, Firebase and NoSQL databases (MongoDB). The course will cover: Show More |
Asaad Saad Najeeb Najeeb |
CS582: Machine Learning |
Machine Learning, the field of study that gives computers the ability to learn from data, is at the heart of almost every scientific discipline, and the study of generalization (that is, prediction) from data is the central topic of machine learning. This course gives a graduate-level introduction to machine learning and in-depth coverage of new and advanced methods in machine learning, as well as their underlying theory. Show More |
Emdad Khan Anthony Sander |
CS590 Software Architecture | Traditionally every software project has a dedicated software architect who designs the architecture for a certain system. In agile software development software architecture is not a role, but a task that is performed by the team members (developers). In this course we study the important software architecture techniques, styles and patterns that are used in modern software systems. Show More |
Rene De Jong |