Computer Science Courses

Csi 500 Operating Systems (3)

Introduction to operating systems. Topics include processes, concurrency, synchronization, deadlock, memory management, segmentation, paging, replacement policies, caching, interprocess communication, file systems, and protection. Heavy emphasis on abstractions, mechanisms, policies, and design. Prerequisites: Recommended - Students should have knowledge of computer systems, probability, and computer organization.

Csi 501 Computational Linear Algebra, Nonlinear Algebra, and Optimization(3)

Review of numerical nonlinear algebra for one equation in one unknown. Numerical methods for solving systems of nonlinear equations including Quasi-Newton methods and descent techniques. Numerical solution of systems of linear equations including Gaussian elimination, LUD factorization, and iterative methods. Methods for banded and sparse systems. Approximation by splines. Prerequisite: Csi 401 or equivalent and knowledge of linear algebra, multi-variable calculus and MATLAB required. Only one of Csi 501 or Mat 522 may be taken for credit.

Csi 502 Computer Graphics (3)

An introduction to interactive computer graphics including device characteristics, display processors, and file structure. Graphical transformations and transformation systems including perspective transformations and hidden line and surface algorithms are discussed. Selected topics from graphical data structures, graphics systems, video graphics, and microprocessor graphics.

Csi 503 Algorithms and Data Structures (3)

Review of discrete mathematics and probability used in algorithm design and analysis. Analyses of divide-and-conquer algorithms, number-theoretical algorithms, and algorithms for sorting, searching, and order statistics. Basic data structures. Basic graph algorithms for topological sorting, constructing minimum cost spanning trees, and shortest path problems. Prerequisites: C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 504 (Ece 532) Advanced Computer Architecture (3)

The organization of the hardware components of computing systems. Logic design theory review. Comparative survey of instruction set architectures. Design, control, communication, and interconnection strategies for major components such as arithmetic-logic units, control units, CPUs, memories, and I/O systems. Prediction and measurement of performance. Introduction to VLSI, parallel processing, and other current architectural trends. Only one of Csi 504 and Ece 532 may be taken for credit. Prerequisites: Recommended - Students should have knowledge of computer architecture and organization.

Csi 508 Database Systems I (3)

Basic concepts of a database system, with emphasis on database schema design, data manipulation languages, and query languages. Data models. Relational databases, functional dependencies, normal forms. Relational calculus, relational algebra, SEQUEL, Query-by-Example. The CODASYL network model: data definition and data manipulation languages. Computer project using a database system. User viewpoint of concurrent access. Prerequisites: C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 509 Automata and Formal Languages (3)

Introduction to the theory of computation. Models of computation including finite automata, push-down automata. Turing machines are examined along with their formal language counterparts such as regular, context-free and phrase-structured languages. Key results such as pumping lemmas and proofs of undecidability are covered. Additional topics may include computational complexity and applications to Computer Science. Prerequisite: C or better in Csi 521 or passing the Departmental examination in discrete mathematics. Students who have received credit for ICSI409 cannot receive credit for this course.

Csi 511 Programming Languages and Systems Concepts (3)

Principles of program design, documentation, and software engineering. Assembly language, machine design, and the fetch-execute cycle at all levels of hardware and software. Introduction to software development, compiler design, operating systems design, and program verification.

Csi 516 (Ece 516) Computer Communications Networks (3)

This course covers fundamentals in computer communication networks and the principles of distributed systems that leverage these networks. The course will focus on key Internet application architectures, principles and protocols, covering reliable data transfer and transport protocols; routing and forwarding; data link layer communications and principles of shared media access. Students will also be introduced to various physical layer techniques like error correction and bandwidth efficiency; content delivery networks; and software-defined networks. The students will apply their understanding of networking fundamentals while working on hands-on programming assignments, packet trace analysis and Internet measurements. Prerequisites: Recommended - Students should have knowledge of computer systems and probability. Students who have received credit for ICSI/IECE416 cannot receive credit for this course.

Csi 517 Compiler Design I (3)

Lexical analysis. Finite-state machines, pushdown machines, and context- free grammars. Top-down and bottom-up parsing. Syntax-directed translation. Prerequisites: C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 518 Software Engineering (4)

Software engineering principles, the role of abstraction in programming, abstract data types, modularization and module interfaces, specifications, and teamwork. Concurrent programming models, synchronization and interprocess communication. Project work in contemporary concurrent and object-oriented languages. Prerequisites: Graduate CSI standing or permission of instructor.

Csi 519 Advanced Programming Concepts (3)

The main focus of the course is on declarative programming and axiomatic semantics. In declarative programming we cover the Functional Programming (FP) and the Logic Programming (LP) paradigms. The emphasis in functional programming will be on programming with higher-order functions, and polymorphism as in the programing language ML. In Logic Programming we cover unification, SLD-resolution and backtracking, as in Prolog. Also covered are Floyd-Hoare axiomatic semantics, and verification of programs. Prerequisite: CSI graduate standing.

Csi 520 Topics in Distributed and Parallel Computing (3)

Selected areas relating to multiple processor systems will be examined. The models treated include various communication mechanisms and synchronous and asynchronous operation. Prerequisite: Consent of instructor.

Csi 521 Discrete Mathematics with Applications (3)

Deep coverage of the content of discrete mathematics at the graduate level. Proofs by induction, recursive definitions, and combinatorial analysis. Introduction to recurrence equations, graph theory, and abstract algebra. Applications to proofs, correctness, and analysis of combinatorial and algebraic algorithms. Prerequisite: Graduate CSI standing or permission of instructor.

Csi 522 (Ece 520) Intro to VLSI (3)

An introduction to Very Large Scale Integrated (VLSI) circuit design. The device, circuit, and system aspects of VLSI design are covered in an integrated fashion. Emphasis is placed on NMOS, PMOS and CMOS technology. Using transistors, simple gates such as XOR, AND, OR, AOI, OAI, and flip flops, are constructed and simulated using industry standard layout and simulation tools. Students who have received credit for IECE420 cannot receive credit for this course. Recommended prerequisites: Either Ece 231 and Ece 300 or Csi 404 and Phy 415, or equivalent.

Csi 523 Computational Geometry (3)

Efficient algorithms for geometric problems. Paradigms of divide and conquer, space sweep, locus computation, prune and search, transformation, and random sampling. Problems such as finding convex hulls, line intersections, Voronoi diagrams, and nearest neighbors are studied together with selections from research literature. Lower bound proofs, examples of parallel algorithms, and some implementation issues. Prerequisites: Csi 503, and C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 524 Computer Security (3)

This course introduces students to the fundamental and technical problems surrounding computer security. The course reviews basic security concepts, design principles, and mechanisms. Throughout the course and based on hands-on exercises, students will develop an in-depth understanding of several vulnerabilities and corresponding countermeasures in system security, web security, and network security areas. Topics include privilege escalation, buffer overflow, race condition, SQL injection, cross-site scripting, packet spoofing, TCP attacks, and firewalls. Prerequisites: C or above in CSI 521 or passing the Departmental examination in discrete math. Students who have received credit for CSI 424 cannot receive credit for this course.

Csi 525 Mobile Wireless Networks (3)

This course will focus on the state of the art of mobile wireless networks. We will begin with fundamentals in wireless network architectures, protocols and operations. We will learn how are wireless links different than wired and what challenges does this pose to network design and integration. We will study the architecture and operations of networks you use on a daily basis including Wi-Fi 802.11 and mobile cellular networks. We will then transition to our advanced topics by identifying and surveying pitfalls that shape the wireless capacity crunch. We will cover the state of the art of novel technologies for increased network capacity that have the potential to accommodate the multi-zettabytes traffic projections. The students will gain basic practical skills in mobile computing while working on homework assignments. They will also have the opportunity to learn new techniques and concepts while working on an original research project with the end goal of producing real publishable results. In addition, the students will gain experience in efficient reading and understanding of technical papers, and giving public technical presentations. Prerequisite: Csi 516.

Csi 526 Cryptography (3)

The making of ciphers to encode information is the subject of cryptography. This course covers the field from its origins in early historic times through its most up-to-date implementations and uses in digital computers. Various ciphers will be shown and their security assessed. This latter is known as cryptoanalysis - the attempt to break cipher in order to read the underlying message. The course will emphasize how cryptography and cryptoanalysis are intimately related, and how the arms race between the two has motivated progress throughout their history. Prerequisites: Csi 503 and 518.  Students who have received credit for ICSI426 cannot receive credit for this course.

Csi 529 Probability and Computing (3)

An introduction to applications of probability and analysis in computer science and related areas. This course serves as a mathematical foundation for machine learning theory. Topics include an introduction to axiomatic probability, notions of convergence, limit theorems, first and second moment methods, martingales, concentration of measure (Chernoff, Hoeffding, McDiarmid, etc.), randomized algorithms (drawing largely from graph analysis, cryptography & number theory,  hashing,  numerical linear algebra),  sampling,  random graphs, Markov chains, random walks on graphs, basics of estimation theory, statistical learning theory, and  information  theory  for  statistical  sample  complexity  bounds. Applications to algorithm design and statistical learning on discrete random structures will be emphasized. Prerequisite: Csi 503. Student should have knowledge of probability and statistics.

Csi 531 Data Mining (3)

A course on data mining (finding patterns in data) algorithms and their application to interesting data types and situations. We cover the basic algorithms that address the five core data mining tasks: prediction, classification, estimation, clustering and associations. Course projects will involve advanced topics such as algorithm developments for handling large data sets, sequential, spatial and streaming data. Prerequisite: C or above in CSI 521 or passing the Departmental examination in discrete math. Recommended - Students should have knowledge of data structures, linear algebra, and statistics.

Csi 532 Network Science (3)

Social networks have become important tools for analyzing a wide array of human behavior and interactions. This course will consider networks arising in many different contexts (e.g. worldwide web, viral marketing, sociology, and epidemiology) and present techniques for analyzing such networks. The goal is to investigate the topology and dynamics of such networks, aiming to better understand the behavior, function, and properties of the underlying systems, as well as to understand how network structure influences its behavior. The course will cover the necessary background material in graph theory. The course will particularly emphasize on students ability to develop critical analytical skills through hands-on exercises of actual networking data analysis tasks. Prerequisites: Recommended - Csi 531 or Csi 536.

Csi 533 Theory and Practice of Multimedia Computing (3)

This course lays the foundation for students to conduct research in the area of multimedia computing applications. Multimedia computing involves automated processing and analysis of multiple types of data such as text, images, and videos and audio, in a way that whole is greater than the sum of its parts. The course covers state-of-the-art computational techniques and algorithms for multimedia content processing, compression, networking, fusion, summarization, search and retrieval applicable to different areas such as social media, homeland surveillance and cyber security and privacy. The objective of this course is to prepare students to i) understand the theoretical foundation of multimedia computing, and ii) apply computational tools such as Matlab and Intel OpenCV to the processing and analysis of multimedia data. Prerequisite: Permission of instructor.  Students who have received credit for ICSI433 cannot receive credit for this course.

Csi 534 (Ece 531) Reconfigurable Computing (3)

This course provides a study of FPGA architecture with detailed discussion on opportunities and challenges in this flexible platform. Topics include device architecture, programming languages and models for FPGAs including streaming and I/O, Mapping, Placement and Routing in reconfigurable logic, application design, development, verification and application specific optimization techniques. Prerequisites: Ece 231 or Csi 404.

Csi 535 Artificial Intelligence I (3)

A first course in artificial intelligence (AI) introducing basic concepts and techniques. Topics include problem representation, production systems, heuristic search, predicate logic, and structured representation of knowledge. Techniques of sample search and sample problem solving systems are represented. Exercises in a selected AI programming language. Prerequisites: C or better in Csi 521 or passing the Departmental examination in discrete mathematics. Students who have received credit for ICSI435 cannot receive credit for this course.

Csi 536 Machine Learning (3)

Machine learning is an important and rapid growing branch of artificial intelligence. The aim of machine learning is to design algorithm that can extract information from environment automatically and improve its ability to perform the intended task. Currently, machine learning has been applied in various fields including engineering, bioinformatics, data mining and neurosciences, to name a few. This course provides a broad introduction to machine learning. Specifically, topics that will be covered in the class may include: numerical optimization methods that are essential for machine learning algorithms dimension reduction methods: principal component analysis & ISOMAP classification methods: linear discriminant analysis, k-nearest neighbor classifier, and logistic regression regression methods: least squares regression, ridge regression, and l1 regularized least squares regression (LASSO) clustering methods: k-means clustering and EM algorithm neural networks support vector machines for classification and regression. Prerequisites: C or above in CSI 521 or passing the Departmental examination in discrete math. Recommended - Students should have knowledge of linear algebra, calculus, probability, and numerical methods. Students who have received credit for CSI 436 cannot receive credit for this course.

Csi 538 Computational Logic (3)

This course is on computational issues in logic, with emphasis on automated reasoning and applications. Core material includes propositional logic, satisfiability, the first-order predicate calculus, Skolem functions, Herbrand’s theorem, unification, clausal resolution and paramodulation. Other topics covered may change from year to year. Prerequisites: Csi 503, and C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 542 An Introduction to Quantum Computation, Information, and Simulation (3)

The main ideas of Quantum Computation, Information, and Simulation are introduced. The course describes what quantum computation is and how it can be used to solve problems faster than classical computers. The challenges of building a quantum computer are addressed. Quantum simulators are explained and built illustrating the vast differences between quantum and classical gates. The course also covers quantum information, explaining how quantum states can be used to program communications. Prerequisites: Csi 403 or Csi 503, knowledge of the use of Boolean Algebra in circuit design, and programming experience.

Csi 551 (Inf 551, Phy 551) Bayesian Data Analysis and Signal Processing (3)

This course will introduce both the principles and practice of Bayesian and maximum entropy methods for data analysis, signal processing, and machine learning. This is a hands-on course that will introduce MATLAB computing language for software development. Students will learn to write their own Bayesian computer programs to solve problems relevant to physics, chemistry, biology, earth science, and signal processing, as well as hypothesis testing and error analysis. Optimization techniques to be covered include gradient ascent, fixed-point methods, and Markov chain Monte Carlo sampling techniques. Prerequisites: Csi 201, Mat 214, or equivalents, or permission of instructor; Phy 509 or equivalent programming experience with permission of the instructor. Students who have received credit for APHY/ICSI/CINF451 cannot receive credit for this course.

Csi 552 (Ece 551) Robotics (3)

An introduction to the fundamentals of robotics, including configuration space, transformation matrix, kinematics, motion planning, a brief introduction to robot manipulation, degrees of freedom, implicit and explicit representations of configurations, and holonomic and nonholonomic restrictions will all be covered. This material is fundamental to the study of anything that moves (e.g., robots). Students will use a library of robotics software and a robot simulator to build and test software. Prerequisites: Recommended - Students should have knowledge of linear algebra, discrete math, and data structures. Students who receive credit for Csi 452/Ece 451 cannot receive credit for this course.

Csi 553 (Ece 553) Cyber-Physical Systems (3)

This course is an introduction to the basics of models, analysis tools, and control for embedded systems operating in real time. Topics include models of computation, basic analysis, control, and systems simulation, interfacing with the physical world, mapping to embedded platforms and distributed embedded systems. This course has a lab component. Course fee applies. Consult the Schedule of Classes. Prerequisites: Ece 233 or Csi 404 and either Ece 371 or APhy 415. Students who have received credit for IECE453 cannot receive credit for this course.

Csi 561 Software Testing (3)

Students learn to test software effectively, including concepts and techniques for testing software in evolving environments. Topics include software testing at the unit, module, subsystem, and system levels; developer testing; automatic and manual techniques for generating test data; testing concurrent and distributed software. Students will learn how to design software tests, automate software tests, use test coverage criteria, and how to design and build high quality software. Through a semester-long project, students will explore and experience software testing in practice — designing and automating tests for a software project, understanding and handling challenges in software testing, and analyzing and improving the quality of the tests. Prerequisites: The grade of C or above in Csi 521, or passing the departmental examination in discrete math.

Csi 571 Introduction to Computer Vision (3)

This course introduces students to Computer Vision and Image Processing. The course starts with image formation, color, image filtering and programming basics with languages such as Python, C++, and Matlab. It also teaches fundamentals of image acquisition, image perception, image interpolation, image restoration, image enhancement, edge detection, corner detection, image segmentation, mathematical morphology, and object detection. This course also covers some basics of background modeling, visual tracking, feature matching, scene parsing, and projective geometry that are related to computer vision. The course focuses on both the theory and the practical application of computer vision and image processing. Students will learn hands-on programming implementation. Students who received credit for Csi 471 cannot receive credit for this course. Students should have knowledge of programming, linear algebra, and probability and statistics.

Csi 600 Distributed Systems (3)

Survey of current trends in operating systems with a particular emphasis on distributed systems. Topics include multiprocessor systems, distributed file systems, caching and cache coherency, scaling issues, naming, resource location, process migration, heterogeneity, remote procedure call, communication protocols, authentication, security, and replication. Prerequisite: Csi 500.

Csi 601 Computability and Undecidability (3)

Introduction to theory of computability. Topics include formal models of computing systems and their computational equivalence, Church's thesis, recursive and recursively enumerable sets, effective reducibilities, the recursion theorem and the arithmetic hierarchy. Applications to computer science, logic and mathematics. Prerequisite: Csi 509.

Csi 604 Computers and Computational Intractability (3)

Introduction to theory of computational complexity. Computational tractable and intractable problems. The complexity classes P, RP, NP, PSPACE, etc. Classification of commonly encountered problems from computer science, mathematics and operations research, emphasizing the NP-complete problems. Techniques for dealing with computational intractability including back-tracking, approximation algorithms, etc. Prerequisite(s): Csi 503 and Csi 509 or consent of instructor.

Csi 608 Database II (3)

Systems-oriented aspects of database systems design. Transaction processing, database concurrency control, restart and recovery, distributed databases. Advanced topics of current research interest. Prerequisites: C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 609 Formal Languages and Theory of Computation (3)

Course topics include finite-state machines, pushdown automata, Turing machines, regular, context- free and phrase-structured languages, parsing algorithms, computability, and complexity. Prerequisites: Csi 509.

Csi 616 Computer Communication Networks II (3)

Survey of current trends in computer communication networks. Topics include transaction oriented protocols, bulk data transfer protocols, high speed networks, routing, protocol performance and efficiency, security, and authentication. Prerequisite: Csi 516.

Csi 628 Cryptographic Protocols (3)

This course is on analyzing cryptographic protocols on security issues.  The emphasis will be on formal methods, i.e., logically analyzing the protocols to establish the presence or absence of security flaws.  The students will read and present latest cutting-edge literature and there will be a term project.  Prerequisites: Csi 524 or 526, and C or better in Csi 521 or passing the Departmental examination in discrete mathematics.

Csi 635 Artificial Intelligence II (3)

A continuation of the materials introduced in Csi 535. Prerequisite: Csi 535.

Csi 636 Natural Language Processing (3)

Construction of programs that use human language. Topics include morphology, syntax, parsing, semantic representation, resolution of ambiguity, generation, and discourse. Prerequisite: Csi 535 or permission of instructor.

Csi 660 Topics in Computer Science (3)

Advanced topics in computer science. Content determined by the instructor. May be repeated for credit with permission of the department. Prerequisite: Graduate CSI standing or permission of instructor.

Csi 661 Topics in Artificial Intelligence (1-3)

Advanced study in selected subjects in Artificial Intelligence, with an emphasis on current research and results. Topics may be drawn from automated deduction, natural language processing, artificial neural networks, knowledge representation, and machine learning. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 662 Topics in Database Systems (1-3)

Selected topics of current interest from the frontiers of database systems. Topics may vary from year to year. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 663 Topics in Parallel Computation (1-3)

Selected topics of current interest in parallel processing. General topics include design and analysis of efficient parallel algorithms on a variety of parallel computation models, and theory of parallel computation. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 665 Topics in Computer Graphics (1-3)

Topics may include: Hidden line and surface removal, polygonal surfaces, fractals. B-spline and Bezier bicubic patches, Quadric surfaces, surface blending, shading, ray tracing, or animation. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 666 Topics in Theory of Computation (1-3)

Selected topics in theory of computation, automata theory, and decidability. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 667 Topics in Algorithms (1-3)

Selected topics in theory, analysis, and complexity of algorithms. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 668 Topics in Systems Architecture (3)

Selected topics or case studies in structure, design, or evaluation of computer hardware and software systems. Content varies from year to year. May be repeated for credit with permission of the department. Prerequisite: Permission of instructor.

Csi 671 Computer Vision (3)

Computer vision enables a machine to "understand" or analyze images and videos by deriving information from raw pixel values to support various applications. This course explores fundamental topics across all three levels (low-level, mid-level, and high-level) through lectures, paper presentations, and projects. We will treat computer vision as a process of inference from noisy and uncertain data and emphasize both conventional (model-based) and modern (learning-based or data-driven) approaches. We will pay special attention to training research skills, including paper writing and oral presentation. Prerequisites: Csi 571.

Csi 680 Master's Project (3)

Master's level project under faculty supervision. Satisfactory completion fulfills project requirement for the M.S. in computer science. May be repeated for credit with permission of department. Prerequisite: Completion of at least 18 graduate credits towards the Computer Science MS degree.

Csi 680C Master's Research Project Continuation (1)

Course grading is Load Only and does not earn credit. Appropriate for master's students engaged in research on the master's project beyond the level applicable to their degree program.

Csi 681 Compiler Project (3)

Project work in compiler design and implementation. Students are required to design and implement significant components of a compiler. Satisfactory completion fulfills project requirements for the M.S. or Ph.D. in computer science. Prerequisite: Csi 617 or permission of instructor.

Csi 682 Database Project (3)

Project work in database design and implementation. Students will design and implement significant components of a database system. Satisfactory completion fulfills project requirement for the M.S. or Ph.D. in Computer Science. Prerequisite: Csi 508 (corequisite: Csi 608 or Csi 609) or permission of instructor.

Csi 683 Systems Programming Project (3)

Project work in operating systems. Students will design and implement significant components of an operating system, subsystem, or supporting utility programs. Satisfactory completion of this course fulfills the project requirement for the M.S. or Ph.D. degree in computer science. Prerequisite: Csi 500 or permission of instructor.

Csi 684 Computational Science Project (3)

The computer solution of practical problems in pure or applied science and/or technology. Satisfactory completion fulfills project requirements for the M.S. or the Ph.D. in computer science. Prerequisites: Csi 540, 541, or consent of department.

Csi 694 Directed Readings in Computer Science (1-3)

Directed reading in a particular area of computer science specialization under supervision of a departmental faculty member. May be repeated for credit with permission of the department. Prerequisite: Consent of department.

Csi 696 Independent Teaching and Learning (1-3)

Participants extend and apply their understanding of computer science by tutoring or assisting in laboratory, tutoring or discussion activities, under faculty supervision, for one or more associated courses. One weekly contact hour and grading are required for each credit (or an equivalent obligation as determined by the faculty supervisor). Students must complete at least one relevant ITAL/ FTR training workshop during the semester in which they are enrolled in ICSI 696. May be repeated for credit with permission of the department. Prerequisite: Consent of department.

Csi 697 Independent Study and Research (1-3)

Independent study and research in a particular area of computer science specialization under supervision of a departmental faculty member. May be repeated for credit with permission of the department. Prerequisite: Consent of department.

Csi 697C Independent Study and Research Continuation (1)

Appropriate for master's students engaged in independent study and research beyond the level applicable to their degree program. This course is graded load-only and does not count towards a graduate degree program.

Csi 698 Internship (3)

Directed application of a particular area of computer science specialization via public or private sector employment.  Must be under supervision of a departmental faculty member.  The internship must demonstrate the ability to put science and/or managerial preparation to work in business, industry, or government.  May not be repeated for credit.  Qualifies for CPT for one semester only.  Prerequisite: Permission of the department.

Csi 698C Master's Internship Continuation (1)

Course grading is Load Only and does not earn credit. Appropriate for master's students engaged in the master's internship beyond the level applicable to their degree program.

Csi 699 Master's Thesis (3-6)

Original independent research at the master's level under direction of a member of computer science faculty. Prerequisite: Acceptance of thesis proposal by faculty member.

Csi 699C Master's Thesis Continuation (1)

Course grading is Load Only and does not earn credit. Appropriate for master's students engaged in research and writing of the master's thesis beyond the level applicable to their degree program.

Csi 890 Independent Study and Research (3-19)

Independent study at the doctoral level under the direction of a member of the computer science faculty. May be repeated for credit. Prerequisite: Consent of computer science department doctoral committee.

Csi 899 Doctoral Research (1)

Required of all candidates completing the degree of Doctor of Philosophy. Registration for this course is limited to doctoral students who have been admitted to candidacy. Course grading is Load Only and does not earn credit.