GRAD > CS
Computer Science Courses
CS 612 Algorithms in Bioinformatics +
Description:
The course will introduce students to bioinformatics - the area concerning the development and application of computational methods to address key problems in biology. It will introduce the students to a variety of methods and skills required to conduct research in this popular field. The emphasis of the course is algorithmic methods in structural bioinformatics with a focus on various computational methods to simulate, analyze, and model protein structure, dynamic, and function. More Info
Offered in:CS 613 Applied Cryptography +
Description:
This course aims to introduce fundamental and practical knowledge of cryptography and its applications. This course covers diverse topics on cryptography and network security techniques including conventional encryption, asymmetric and symmetric cryptology, digital signatures, certificates, key exchange, key management, authentication, network access control, cloud computing security, electronic mail security, advanced crypto primitives, bitcoin, blockchain, and differential privacy. This course focuses on both theoretical aspects and practical applications of cryptanalysis and network security techniques. More Info
Offered in:CS 614 Blockchain Technology +
Description:
Blockchain enables a digital decentralized society where people can contribute, collaborate, and transact without having to second-guess trust and transparency. It is the technology behind the success of Bitcoin, Ethereum, and many exciting applications and platforms that emerge everyday, with impact in many sectors, including finance, education, health care, environment, transportation, technology, to name a few. This course covers a basic set of essential concepts, algorithms, and tools suitable for aspiring students who want to be technologically ready for a blockchain venture. Topics touch various issues in decentralized computing and networking. Students will learn programming skills sufficiently to develop a blockchain project from scratch. More Info
Offered in:- TBA
CS 615 User Interface Design +
Description:
An introduction to user interface design, which encompasses design of the user interface and the functional design of the whole system. Students read and critique papers and articles, evaluate and critique existing user interfaces, and design interfaces of their own. Working in small groups, students use either interface prototyping tools or conventional rapid prototyping systems to construct an experimental interface. More Info
Offered in:CS 620 Theory of Computation +
Description:
Functions computable by programs. Recursive functions and Turing machines; simulation and diagonalization. Universality and unsolvable problems. Kleene's hierarchy and the recursion theorem. Gregorczyk's hierarchy and Ackermann's function. Abstract complexity. Formal languages and classes of automata. Inherently difficult combinatorial problems. More Info
Offered in:CS 622 Theory of Formal Languages +
Description:
This course treats languages from an abstract point of view as defined by formal grammars and by families of abstract machines. The Chomsky hierarchy and associated automata are covered. Emphasis is placed on context-free languages. Careful mathematical definition and proof are stressed throughout. This course does not involve programming. This course is of special interest to students interested in linguistics and in the theory of programming language compilers. More Info
Offered in:CS 624 Analysis of Algorithms +
Description:
Basic techniques for designing algorithms: divide and conquer, the greedy method, dynamic programming, etc. Applications to searching and sorting algorithms. Complexity of parsing. The fast Fourier transform and its applications (evaluation of polynomials and arithmetical problems). Lower bound theory. NP-hard and NP-complete problems. Probabilistic estimates of algorithms. More Info
Offered in:CS 630 Database Management Systems +
Description:
Databases and database management systems. The entity/relationship model. The relational model. Relational algebra. The query language SQL. The object-relational model and SQL3. Embedded SQL in programs and dynamic SQL. Database administration: creating views and integrity constraints, handling data security. Functional dependencies. Normalization. More Info
Offered in:CS 636 Database Application Development +
Description:
A study of database applications, that is, software systems that solve a particular real-world problem and hold their data in a relational database. The systems under study also have a realistic user interface. Students work in small groups on a real-world project specified and implemented during the term. Topics include system specification from user needs, analysis of data flow and work flow, object design, database design, client-server techniques, and rapid prototyping systems. More Info
Offered in:CS 637 Database-Backed Websites +
Description:
The design and implementation of database-backed websites. Static sites, dynamic sites, and sites that act as interfaces to relational database systems, providing for web-based collaboration through scalable online communities. Students install and maintain their own web servers, extend existing tool sets, and build their own sites from scratch in a series of intensive programming projects. More Info
Offered in:CS 638 Applied Machine Learning +
Description:
This course presents the practical side of machine learning for applications, such as pattern recognition from images or building predictive classifiers. Topics will include linear models for regression, decision trees, rule based classification, support vector machines, Bayesian networks, and clustering. The emphasis of the course will be on the hands-on application of machine learning to a variety of problems. More Info
Offered in:CS 642 Cybersecurity in the Internet of Things +
Description:
This course aims to introduce the concept of IoT and its impact on our daily lives, to understand the architecture and components of IoT, and to address the challenges and solutions of deploying IoT in reality. Students will learn how to make design trade-offs between communication and computation costs and between hardware and software. In addition, cybersecurity is a critical design issue of the IoT system. From this course, students will become aware of the cybersecurity issues raised by IoT and gain the knowledge of the related security techniques. Students will also gain hands-on experiences on building IoT devices and implementing security techniques through team projects. More Info
Offered in:CS 646 Computer Communication Networks +
CS 648 Wireless Networks and Mobile Computing +
Description:
Wireless communications, wireless networking, mobility management technologies, and protocols for wireless LANs and WANs are surveyed. Selected mobile computing models and mobile applications development environments are evaluated. A wireless networks laboratory provides a realistic mobile/wireless computing environment. Students are expected to form groups to complete a semester project involving an investigation and the development of a prototype. More Info
Offered in:CS 651 Compiler +
Description:
Compiler organization and construction. Programming projects involve scanning input, analyzing program structure, error checking, code translation and interpreting, code generation and optimization. These projects result in a compiler for a reasonably large subset of ALGOL, Pascal, or similar procedural language. More Info
Offered in:CS 666 Biomedical Signal and Image Processing +
Description:
This course introduces important signal and image processing methods for biomedical diagnostics and research. You will learn hands-on how to reconstruct, visualize, and analyze datasets from different modalities such as electrocardiography (ECG), electroencephalography and magnetoencephalography (EEG/MEG), ultrasound (US), X-ray, electron and light microscopy (EM/LM), computerized tomography (CT), structural and functional magnetic resonance imaging (MRI/fMRI), as well as single photon emission computed tomography and positron emission tomography (SPECT/PET). Course discussions and assignments include the fundamentals of digital signal processing, filtering and denoising, Fourier transformations, pattern recognition, and state-of-the-art registration and segmentation pipelines. After completion, you will have the $kills to work at hospitals, life science institutions, and biotech companies! More Info
Offered in:CS 670 Artificial Intelligence +
Description:
A broad technical introduction to the techniques that enable computers to behave intelligently: problem solving and game playing, knowledge representation and reasoning, planning and decision making, learning, perception and interpretation. The application of these techniques to real-world systems, with some programming in LISP. More Info
Offered in:CS 671 Machine Learning +
Description:
Machine Learning is a foundational discipline for data mining and artificial intelligence which explores the limits and capacities of automated learning of abstract concepts. The course will focus on the probably approximately correct (PAC) learning model and will cover topics like the Vapnik-Chervonenkis dimension, the weak and strong learning paradigms, inherent unpredictability, reducibility in PAC learning, and learning finite automata. More Info
Offered in:- TBA
CS 672 Neural Networks +
Description:
An introduction to artificial neural networks. Topics include a survey of natural neural network models, perceptrons and their limitations, multi-layer networks and back propagation, Hebbian learning, unsupervised competitive learning, relations to automata and computability theory, adaptive resonance theory, applications of connectionist models of computing to various domains, including pattern recognition and databases. More Info
Offered in:CS 675 Computer Vision +
Description:
This course provides both theoretical knowledge and practical experience with fundamental and advanced Computer Vision algorithms. Topics range from basic image processing techniques such as image convolution and region and edge detection to more complex vision algorithms for contour detection, depth perception, dynamic vision, and object recognition. Students will implement vision algorithms in the JAVA programming language. The performance of these programs is evaluated, and the advantages and disadvantages of individual approaches are discussed. The final project is the development by students of their own computer vision program solving a given problem. More Info
Offered in:CS 680 Object-Oriented Design and Programming +
Description:
Object-oriented techniques for the design and development of software.Students will develop a series of moderate sized programs in C++ andJava and then design and implement a more substantial projectin small teams. More Info
Offered in:CS 681 Object-Oriented Software Development +
Description:
In this course students work in small teams to create a useful, complete, medium sized software system for real customers. There is a strong emphasis on process: the systematic use of an object-oriented development methodology based on UML models and incremental development is employed throughout each project. More Info
Offered in:CS 682 Software Development Laboratory I +
Description:
This is a laboratory course in which students, working in small groups, specify, design, implement, and document a large software project. More Info
Offered in:CS 696 Independent Study +
Description:
A student must find a faculty sponsor for his or her independent study and arrange study under that person, normally about a computer science topic not covered by the department's courses. More Info
Offered in:CS 697 Special Topics +
Description:
Topics of current interest in the field, according to student and faculty areas of specialization. Course content varies according to the topic and will be announced prior to registration. More Info
Offered in:CS 698 Practicum in CS +
Description:
This course is intended to enhance student industrial work by combining it with closely related academic studies - of the domain of application of computer skills and of related computer concepts, skills and methodologies. It will enhance academic studies by providing a focus and a context for learning of new concepts and skills. It will help to prepare the student for the transition from an academic program to eventual employment in the computer industry. More Info
Offered in:CS 699 Research for MS Thesis +
Description:
A one-semester supervised practicum course to help students complete the required thesis, which must be a substantial piece of research on some aspect of computer science. The master's thesis may take the form of a theoretical paper or a report on a piece of software. More Info
Offered in:CS 720 Logical Foundations of Computer Science +
Description:
The course treats the logical foundations of computer science in a mathematically rigorous way but with emphasis on the applications of logic in computer science. Topics include the syntax and semantics of predicate logic, formal systems for predicate logic, many-sorted logic, and logic programming. Additional topics may include equational logic, algebraic specification, term rewriting, program verification, nonstandard logic, and databases. Students are expected to demonstrate an understanding of theoretical material and the ability to apply it. More Info
Offered in:- TBA
CS 724 Topics in Algorithm Theory and Design +
Description:
An examination of current topics in algorithm analysis and design: complexity classes, abstract complexity theory, generating functions. Topics may include genetic algorithms, string matching algorithms, and circuit complexity. More Info
Offered in:- TBA
CS 899 PhD Dissertation Research +
Description:
Research, conducted under faculty supervision, which leads to the presentation of a doctoral dissertation. This course carries variable credit and can be taken more than once. More Info
Offered in: