This course covers automata theory, Turing machine, regular expressions, regular languages, context-free grammars, formal languages and their properties, abstract machines and their fundamental role in computer science theory, decidability and undecidability.
CS 511 Introduction to Robot Programming
Course introduces the student the fundamental principles of robotics and teaches how to control and program robotic systems. Basic robotic terminology will be given and kinematics will be taught. Dynamics and Robot Learning will be introduced. The aim of the course is to teach students not only how to write control code for classical robot tasks but also give them the ability to program robots so that they can learn and show intelligent behavior. The students will enhance their skills through projects/labs involving robotic systems relevant to the course content.
CS 521 Intelligent User Interfaces
This course explores issues in the design, implementation, and evaluation of Intelligent User Interfaces that use artificial intelligence technologies such as machine learning, computer vision and pattern recognition. The purpose of the course is to cover three aspects of intelligent user interface design including the development process, supporting device technologies and the related algorithmic knowledge. The course will be organized around reading and discussion of seminal and recent papers from the related literature.
CS 522 Computer Graphics
Topics include geometric transforms and camera projections, rasterization and interpolation, graphics rendering pipeline, lighting and shading, texture mapping, parametric curves and surfaces, introduction to animation and ray tracing, and OpenGL programming.
CS 523 Computer Vision
Topics include cameras and projections, feature detection and matching, stereo vision and multiple view geometry, motion and depth estimation, structure from motion and object tracking.
CS 524 Computer System Security
Overview of Computer Security Techniques and Cryptography, Authentication Protocols, Access Control Mechanisms, Network Security Practice, TCP/IP Security, Web Security, SSL (Secure Socket Layer), SQL Injection, Denial-of-Service Attacks, Intrusion Detection, Viruses.
CS 525 Human Computer Interaction
This is a graduate level Human Computer Interaction fundamentals and research course. Topics include, definitions and detailed understandings of interaction, user experience, usability, ergonomics and related terms. Human sensory and motor skills, navigation, task analysis, user interface evaluation, user interface design principles, accessible design, user centered iterative design, user experiments, mobile and appliance interface design, future interfaces, ubiquitous computing are among topics to be studied. Students are required to develop assignments and projects during the course. Successful students are expected to be good candidates for project team leaders.
CS 526 Game Design and Development
Topics include game mechanics, game technologies, storytelling for games, game engines, game physics, game aesthetics, 3D modeling and animation for games, and software development for games.
CS 533 Advanced Algorithms
Course will teach key tools for analyzing algorithms and introduce select special algorithms to broaden the horizon of students. The outline; Key tools:
Graph algorithms (min. path, spanning tree, max flow)
Greedy/Dynamic Programming/Divide and Conquer paradigms
Special algorithms and topics
NP-hardness and NP-completeness
NP-hardness and NP-completeness
CS 534 Advanced Object-Oriented Programming
Course topics include object-oriented programming language concepts, design patterns and idioms, and architectural patterns. A brief introduction to UML and generics (templates) will also be made.
CS 547 Computer Networks
Principles of data communications between computers and other computing machines. Overview of computer networking. ISO-OSI layered model as a framework. Basics of the Internet applications. TCP/IP protocol suite. Network congestion and its control. Aspects of reliable and efficient data transmission. Routing. Protocol design and analysis. Data link layer. Local area networks. Assessment of network performance. Network programming exercises.
CS 548 Computer Networks and Network Programming
This course aims to provide the student with the tools necessary to understand and analyze the inner workings of the Internet protocols providing hands on experience while creating applications interacting using said protocols.
CS 550 Distributed Systems and Cloud Computing
CS 554 Introduction to Machine Learning and Artificial Neural Networks
Course will introduce and teach standard techniques in neural networks and machine learning
Topics to be covered
Definition of (machine) learning
Methods derived from mathematics (interpolation, error minimization etc.)
Methods inspired from (real) neural networks of the brain (perceptron learning, hopfield networks, feedforward networks etc.)
CS 560 Information Retrieval and Web Search
This course is a first level graduate course in Information Retrieval. In the lectures main focus will be on modern information retrieval techniques. In the project and in the assignments the students will write text parser, crawler, link analyzers, web search engine components and text classifier to better understand the Information Retrieval systems.
CS 561 Semantic Web Engineering
Semantic Web is the next-generation of the World Wide Web in which meaning (semantics) of information and services are well defined. This allows intelligent software agents and humans to understand the Web content, and makes it possible to achieve interoperability between heterogeneous systems (e.g., Web Services). The goal of this course is to introduce the formal and practical aspects of Semantic Web and related technologies. Major topics include Description Logics, W3C knowledge representation recommendations and standards (RDF/RDF-S, OWL, RDFa, etc.), semantic query answering using SPARQL.
CS 575 Software Testing and Analysis
This course focuses on improving software product quality by applying testing and analysis techniques. The covered topics include testing strategies and techniques, metrics for measuring the effectiveness of testing, analysis techniques for localizing faults in a program, test automation and tools, and testing process.
CS 576 Agile Software Development
This course introduces Agile Software Development methodology. The course will start with a brief overview of software development processes, perspectives on software quality, the emergence of agile methods and their distinctive features. General principles, basic values and practices of agile methods will be introduced with a discussion on when, where and how these methods are successful. Existing agile approaches will be reviewed and some of the most popular approaches will be studied in depth, namely XP, Scrum and Lean Software Development. Introduced methods, techniques and tools will be practiced with short exercises and projects based on small-scale industrial case studies. Additional side topics include software metrics, patterns and test-driven development that are utilized by agile methods.
CS 577 Android Application Development
Students learn how to setup their programming environment to develop Android applications. They are exposed to the application lifecycle and activity model. This is a practice-oriented course in which students learn the user-interface components and layouts, data storage, content providers, the MVC pattern, security concerns, and web services. Students develop their own applications as a course project.
CS 590 Special Topics in Computer Science I
In this course students advance their practical knowledge in cloud computing, big data NoSQL systems and their performance comparisons
CS 591 Special Topics in Computer Science II
Students taking this course learn theory and practice of real-time or online data processing. Topics include data stream and event models, event processing languages, centralized and distributed complex event processing (CEP) engines, event sequence detection, association rule mining, and application of other data mining algorithms over streams.
CS 670 MsC Term Project
A substantial scientific demonstration Project
CS 680 Seminar
Participation at scientific seminars
CS 690 MsC Thesis
CS 901/902/903 Fundamental Research I / II / III
Topics include assessment and detailed description of an open research problem, conducting an exhaustive literature survey on the topic, developing a solution to this problem using a novel technique and formulating an experimental, theoretical and/or simulation platform to assess the performance of the developed solution