IU Indianapolis Bulletin » Schools » Luddy School of Informatics, Computing, and Engineering » Courses » Computer and Information Science Courses

Computer and Information Science Courses

Undergraduate
  • CSCI-C 155 Problem Solving and Programming I (4 cr.) This course introduces problem-solving by programming in Java. Programming concepts include data types, control structures, arrays, methods, exception handling, and input/output. Object-oriented thinking is acquired by using classes and objects. Students learn how to solve problems by designing, implementing, and testing simple Java programs.
  • CSCI-N 200 Principles of Computer Science (3 cr.) Explore the Big Ideas of Computer Science (CS) and Computational Thinking (CT) through hands-on explorations with social networking, gaming, big data, robots, programming and more. Learn about the creativity, usefulness and breadth of Computer Science in a fun way that can enhance any field of study.
  • CSCI-N 201 Programming Concepts (3 cr.) This course covers basic computing topics, problem-solving techniques, and their computing application. It introduces programming concepts, focusing on language-independent principles, including algorithm design, debugging strategies, essential control structures, and basic data structure concepts.
  • CSCI-N 207 Data Analysis Using Spreadsheets (3 cr.) Summary of basic computing topics. An introduction to data analysis using spreadsheets. Emphasis on the application of computational problem-solving techniques.
  • CSCI-N 211 Introduction to Databases (3 cr.) Summary of basic computing topics. Introduction to database design concepts, creation of user forms, development of databases, querying techniques, and building reports. Focus on relational database systems from a development and administration point of view.
  • CSCI-N 241 Fundamentals of Web Development (3 cr.) Introduction to writing content for the Internet and World Wide Web. Emphasis on servers, hand-coded HTML, Cascading Style Sheets, and extending HTML with other Web technologies. Lecture and laboratory.
  • CSCI-N 299 Survey of Computing Applications (topic varies) (1-3 cr.) An introduction to an emerging technology in the computing field. It will emphasize the various problems technology helps to solve and specific problem-solving strategies. Lecture and laboratory. May be repeated for credit.
  • CSCI-N 301 Fundamental Computer Science Concepts (3 cr.) P: MATH-M 118. An introduction to fundamental principles of computer science, including hardware architecture, algorithms, software engineering, and data storage. Lecture and laboratory.
  • CSCI-N 311 Advanced Database Programming, Oracle (3 cr.) P: Recommended CSCI-N 211 or equivalent. Focus on the concepts and skills required for database programming and client server development. Concepts will apply to any modern distributed database management system. Emphasis on developing Oracle SQLPlus scripts, PL/SQL server side programming, and Oracle database architecture. Students with programming experience in ODBC compliant languages will be able to practice connecting such languages to an Oracle database. Lecture and laboratory.
  • CSCI-N 317 Computation for Scientific Applications (3 cr.) A survey and illustration of popular computational software used in multiple scientific domains to support data processing and scientific research. This class focuses on teaching how to use software to efficiently process data in terms of modeling, simulating, visualizing and data-mining. Fundamental concepts related to scientific computing are introduced briefly. Lecture and Lab.
  • CSCI-N 341 Introduction to Client-Side Web Programming (3 cr.) P: Recommended CSCI-N 241 or equivalent. Introduction to programming with a focus on the client-side programming environment. Programming using languages commonly embedded in Web browsers. Lecture and laboratory.
  • CSCI-N 342 Server-Side Programming for the Web (3 cr.) P: Recommended CSCI-N 341. Designing and building applications on a Web server. Focuses on the issues of programming applied to Web servers. Emphasis on relational database concepts, data design, languages used on the server, transaction handling, and integration of data into Web applications.
  • CSCI-N 361 Fundamentals of Software Project Management (3 cr.) Tools and techniques used to manage software projects to successful completion. Problem-solving focus to learn specification development and management, program success metrics, UML modeling techniques, code design and review, principles, testing procedures, usability measures, release and revision processes, and project archival. Lecture and laboratory.
  • CSCI-N 399 Topics in Computing (topic varies) (1-3 cr.) An investigation of an emerging language or topic in computing. May be repeated for credit.
  • CSCI-N 410 Mobile Computing Application Development (3 cr.) Focus of this course is to give programmers information they need to develop new applications or move existing applications to handheld devices and other resource-constrained hardware. All programming is done via Visual Basic.NET or C#.
  • CSCI-N 431 E-Commerce with ASP.NET (3 cr.) Topics include basic Web controls, form validation, connecting to an Enterprise-level database, SSL, and sending email within an ASP.NET Web page. A significant software development final project creating a functional Web store is featured. Lecture and laboratory.
  • CSCI-N 499 Topics in Applied Computing (topic varies) (1-3 cr.) P: CSCI-N 300-level course or equivalent. An investigation and examination of an emerging discipline in applied computer science.
  • CSCI-B 438 Fundamentals of Computer Networks (3 cr.) P: CSCI-C 335 or CSCI 40300 History, theory, and design of data communicating between devices. Topics include the history of computer networks, network architecture and topology, local- and wide-area networks, ISO network layers, current and future IEEE standards for networks, and network operating systems.
  • CSCI-B 443 Introduction to Computer Architecture (3 cr.) P: CSCI-C 310 or CSCI-C 343 Principles of processors, control units, and storage systems. Registers, buses, microprogramming, virtual storage. Relationship between computer architecture and system software.
  • CSCI-C 212 Introduction to Software Systems (3 cr.) P: CSCI-C 200 OR INFO-B 210 OR CSCI 23000 Design of computer software systems and introduction to programming in a contemporary operating system environment. Topics include a modern object-oriented programming language, building and maintaining large projects, and understanding the operating system interface.
  • CSCI-C 241 Discrete Structures for Computer Science (3 cr.) Induction and recursive programs, running time, asymptotic notations, combinatorics and discrete probability, trees and lists, the relational data model, graph algorithms, and propositional and predicate logic.
  • CSCI-C 308 Placeholder (3 cr.)
  • CSCI-C 335 Placeholder (3 cr.)
  • CSCI-C 435 Placeholder (3 cr.)
  • CSCI-C 200 Introduction to Computers and Programming (4 cr.) This course is an introduction, broadly, to algorithmic thinking and, specifically, to programming. It teaches the basics of programming using real-world applications in the natural, physical, and social sciences. Students will develop the ability to program by identifying problems in the real world and then creating a program that solves the problem.
  • CSCI-A 205 Computer Programming (4 cr.) P: CSCI-A 201 or CSCI-A 204 or CSCI 23000 or INFO-B 210 Computer programming, algorithms, program structure, arrays, stacks-procedures, functions, modularization parameter-passing-mechanisms, recursion vs. iteration, and issues of programming style. Computer solutions of problems in diverse fields.
  • CSCI-C 255 Problem Solving and Programming II (4 cr.) P: CSCI-C 155 or INFO-C 210 This course continues to explore how to solve problems by programming in Java. Topics include abstract classes and interfaces, event-driven programming, user interface controls, animation and multimedia, binary input/output, recursion, generics, lists, stacks, queues, priority queues, sets, and maps. Students learn programming techniques to solve problems for various applications.
  • CSCI-C 291 System Programming with C and Unix (3 cr.) This course introduces programming using the C language in a Unix (Linux) environment. The key ideas to be discussed are the Unix shell, file system, and basic shell commands, the Emacs text editor, and the C programming language.
  • CSCI-C 310 Data Structures – Python (3 cr.) P: CSCI-C 212 OR CSCI 24000 OR INFO-B 211 OR CSCI-A 205 AND CSCI-C 241 OR INFO-I 201 OR CSCI 34000 The focus of this course is on solving computational problems that involve manipulating collections of data. We will study a core set of data abstractions, data structures, and algorithms that provide a foundation for writing efficient programs.
  • CSCI-C 311 Programming Languages (3-4 cr.) P: CSCI-C 310, CSCI-C 343, or CSCI 36200 A systematic approach to programming languages. Relationships among languages, properties, and features of languages; and the computer environment necessary to use languages.
  • CSCI-C 323 Mobile Application Development (3 cr.) This course focuses on developing mobile applications for modern platforms and introduces common tools and languages used. The course will emphasize the app development cycle: application design, development, testing, publishing, and distribution; development tools and emulators/simulators; user interface layout; using sensors including touch, geo-location, and orientation; and data management.
  • CSCI-C 343 Data Structures – Java (3 cr.) P: CSCI-C 212 OR CSCI 24000 OR CSCI-A 255 AND CSCI-C 241 OR INFO-I 201 OR CSCI 34000 This course systematically studies data structures encountered in computing problems, structure and use of storage media, methods of representing structured data, and techniques for operating on data structures.
  • CSCI-B 355 Autonomous Robotics (3 cr.) P: CSCI-C 335 or CSCI 40300 Introduction to the design, construction, and control of autonomous mobile robots. This course covers the basic mechanics, electronics, and programming for robotics, and the applications of robots in cognitive science.
  • CSCI-B 392 Competitive Programming (3 cr.) P: CSCI-C 310 or CSCI-C 343 This course prepares students for programming contests (such as the ACM International Collegiate Programming Contest). The students will learn to design time and space-efficient algorithms to solve challenging contest problems and produce bug-free code under the time pressure in the contest.
  • CSCI-Y 398 Internship in Professional Practice (1-6 cr.) Designed to provide opportunities for students to receive credit for selected, career-related, full-time or part-time work. Evaluation by employer and faculty sponsor.
  • CSCI-Y 399 Project in Professional Practice (3 cr.) The student designs, programs, verifies, and documents a project assignment selected in consultation with an employer and the department.
  • CSCI-B 401 Fundamentals of Computer Theory (3 cr.) P: CSCI-C 310, CSCI-C 343, or CSCI 36200 Fundamentals of formal language theory, computation models and computability, the limits of computability and feasibility, and program verification.
  • CSCI-B 404 Introduction to Cryptography (3 cr.) P:  CSCI-C 310 or CSCI-C 343 or CSCI 36200 The course provides students with a foundational introduction to cryptography. Students learn the basic primitives used in cryptography, such as symmetric encryption, public-key encryption, message authentication codes, digital signatures, cryptographic hashes, and related material. Computational aspects of modern cryptography are stressed, as are appropriate security models and computational security reductions.
  • CSCI-C 407 Introduction to Digital Forensics (4 cr.) Overview of the principles and practices of digital forensics, emphasize the different techniques and procedures to analyze physical storage media. Students will study the underpinnings of common operating systems and various formats for file storage and transmission, including secret hiding places unseen by the user or the operating system.
  • CSCI-B 404 Introduction to Cryptography (3 cr.) P:  CSCI-C 310 or CSCI-C 343 or CSCI 36200 The course provides students with a foundational introduction to cryptography. Students learn the basic primitives used in cryptography, such as symmetric encryption, public-key encryption, message authentication codes, digital signatures, cryptographic hashes, and related material. Computational aspects of modern cryptography are stressed, as are appropriate security models and computational security reductions.
  • CSCI-B 424 Parallel and Distributed Programming (3 cr.) P:  CSCI-C 310 or CSCI-C 343 Overview of parallel computers, shared memory, message passing, MIMD, and SIMD classifications. Understanding and use of message passing and synchronization facilities such as MPI. Study of parallel programming models such as master-slave, client-server, task-farming, divide-and-conquer, and pipeline. Performance analysis of parallel systems, execution time, time complexity, load balancing, and scalability.
  • CSCI-B 430 Security for Networked Systems (3 cr.) P: CSCI-C 310, CSCI-C 343, or CSCI 36200 This course is an extensive survey of network security. The course materials cover threats to information confidentiality, integrity, and availability in different internet layers, and defense mechanisms that control these threats. The course also provides a necessary foundation on network security, such as technologies for cryptography, primitives/protocols, authentication, authorization, and access control. It includes hands-on experiences through programming assignments and course projects.
  • CSCI-P 434 Distributed Systems (4 cr.) Principles of distributed systems, including system design, distributed algorithms, consistency and concurrency, and reliability and availability. The role of these foundational issues in distributed file systems, distributed computing, and data-driven systems.
  • CSCI-C 437 Computer Security (4 cr.) P: CSCI-C 335 or CSCI-B 443 OR CSCI 40200 Introduction to the principles, mechanisms, policies, and implementation for computer security; learn how attacks are carried out, how to defend against attacks, and how to design systems to withstand them.
  • CSCI-C 442 Database Systems (3 cr.) P: CSCI-C 310 or CSCI-C 343 or CSCI 36200 Study of fundamental concepts, theory and practices in design and implementation of database management systems. Topics include data independence, data modeling, ER modeling, functional dependencies, normalization, relational, hierarchical, network and object oriented data models, relational algebra, relational calculus, data definition and manipulation languages, recovery, concurrency, security, and integrity of data.
  • CSCI-C 455 Analysis of Algorithms (3-4 cr.) P: CSCI-C 310, CSCI-C 343, or CSCI 36200
  • CSCI-B 457 Introduction to Computer Vision (3 cr.) In this course, the students will learn fundamental computer vision algorithms and basic machine learning frameworks necessary for the automated understanding of images and videos. Topics will include object recognition from images, activity/event recognition from videos, scene segmentation and clustering, motion and tracking, and deep learning for images and videos.
  • CSCI-B 457 Introduction to Computer Vision (3 cr.) In this course, the students will learn fundamental computer vision algorithms and basic machine learning frameworks necessary for the automated understanding of images and videos. Topics will include object recognition from images, activity/event recognition from videos, scene segmentation and clustering, motion and tracking, and deep learning for images and videos.
  • CSCI-B 457 Introduction to Computer Vision (3 cr.) In this course, the students will learn fundamental computer vision algorithms and basic machine learning frameworks necessary for the automated understanding of images and videos. Topics will include object recognition from images, activity/event recognition from videos, scene segmentation and clustering, motion and tracking, and deep learning for images and videos.
  • CSCI-C 460 Senior Project 1 (3 cr.) Students work on projects in supervised teams, from planning and design to implementing, testing, and releasing a final product. Teamwork, communication, and organizational skills are emphasized in a real-world-style environment.
  • CSCI-C 463 Artificial Intelligence I (3 cr.) P: CSCI-A 204 or CSCI-A 202 or CSCI-C 201 or CSCI 24000 or INFO-B 211 or CSCI-A 255 or CSCI-C 212 Goals of artificial intelligence, relations with other fields. Introduction to knowledge representation and inference: predicate calculus, frames, semantic networks, and connectionist representation schemes. Pattern recognition and pattern association. Computer vision. Natural language processing: speech recognition, syntax, and semantics. Heuristic search. Extensive laboratory exercises.
  • CSCI-P 465 Software Engineering for Information Systems I (3 cr.) Analysis, design, and implementation of information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client.
  • CSCI-P 465 Software Engineering for Information Systems I (3 cr.) Analysis, design, and implementation of information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client.
  • CSCI-C 470 Senior Project II (3 cr.) Students work on projects in supervised teams, from planning and design to implementation, testing and releasing of a final product. Teamwork, communication, and organizational skills are emphasized in a real-world-style environment.
  • CSCI-B 475 CSCI-C 343 Data Structures (or CSCI-C 310 or CSCI 36200) (3 cr.) This course introduces quantum computing, including single and multiple-qubit systems; quantum states, superposition, measurements, and entanglement; and quantum gates and circuits. Students learn principles of quantum algorithms like Simon’s, Shor’s factorization, and Grover’s search. Topics may include quantum information, programming, hardware, cryptography, and machine learning applications.
  • CSCI-B 477 Security Engineering (3 cr.) P: CSCI-C 310 or CSCI-C 343 or CSCI 36200 This course covers a broad range of topics in system security engineering, including authentication and authorization, cryptography, architectures, detection systems, quantum computing security, risk assessment, social engineering, strategic policy, and trustworthy hardware. Students conduct research activities, such as selecting research topics, writing papers, and presenting their results.
  • CSCI-C 490 Seminar in Computer Science (1-4 cr.) This course covers special topics in computer science, including recent trends in the field.
Graduate
  • CSCI-P 567 Software Quality Assurance (3 cr.) P: Graduate Student standing in Department of Computer Information Science. Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds; worst-case and average-case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases). Graphs algorithms: spanning trees, shortest paths, connectivity, depth-first search, breadth-first search.
  • CSCI-C 591 Research Seminar (0-1 cr.) P: CS graduate standing or instructor consent required. First-year seminar in research methods and current research directions of the faculty. Repeatable.
  • CSCI-B 503 Algorithm Design and Analysis (3 cr.) This course covers models, algorithms, recurrences, summations, and growth rates. Topics include probabilistic tools, upper and lower bounds, worst-case and average-case analysis, amortized analysis, and dynamization. Comparison-based algorithms include search, selection, sorting, and hashing. The course also covers information extraction algorithms for graphs and databases. Graphs algorithms include spanning trees, shortest paths, connectivity, depth-first search, and breadth-first search.
  • CSCI-B 561 Advanced Database Concepts (3 cr.) Database models and systems, especially relational and object-oriented; relational database design theory; structures for efficient data access; query languages and processing; database applications development; views. Transaction management: concurrency and recovery.
  • CSCI-P 538 Computer Networks (3 cr.) This course covers the layered TCP/IP architecture, LAN technologies (e.g., ethernet, wireless), switching, Internet Protocol (IPv4, IPv6), routing protocols, transport protocols (TCP, UDP), and application protocols and models (e.g., DNS, HTTP, client-server, peer-to-peer networks). Topics also include DHCP, ICMP, VPNs, software-defined networking, and mobile networks.
  • CSCI-B 555 Machine Learning (3 cr.) P: Programming, calculus, linear algebra, probability, and statistics This course covers the theory and practice of constructing algorithms that learn functions and choose optimal decisions from data and knowledge. Topics include mathematical and probabilistic foundations, MAP classification/regression, linear and logistic regression, neural networks, support vector machines, Bayesian networks, tree models, committee machines, kernel functions, EM, density estimation, accuracy estimation, normalization, and model selection.
  • CSCI-B 565 Data Mining (3 cr.) This course covers algorithmic and practical aspects of discovering patterns and relationships in large databases. The course also provides hands-on experience in data analysis, clustering, and prediction. Topics include data preprocessing and exploration, data warehousing, association rule mining, classification and regression, clustering, anomaly detection, human factors, and social issues in data mining.
  • CSCI-B 504 Introduction to Cryptography (3 cr.) The course provides students with a foundational introduction to cryptography. Students learn the basic primitives used in cryptography, such as symmetric encryption, public-key encryption, message authentication codes, digital signatures, cryptographic hashes, and related material. Computational aspects of modern cryptography are stressed, as are appropriate security models and computational security reductions.
  • CSCI-B 577 Security Engineering (3 cr.) This course covers a broad range of topics in system security engineering, including authentication and authorization, cryptography, architectures, detection systems, quantum computing security, risk assessment, social engineering, strategic policy, and trustworthy hardware. Students conduct research activities, such as selecting research topics, writing papers, and presenting their results.
  • CSCI-B 575 Quantum Computing and Applications (3 cr.) P: Programming, systems, and linear algebra This course introduces quantum computing, including single and multiple-qubit systems; quantum states, superposition, measurements, and entanglement; and quantum gates and circuits. Students learn principles of quantum algorithms like Simon’s, Shor’s factorization, and Grover’s search. Topics may include quantum information, programming, hardware, cryptography, and machine learning applications.
  • CSCI-H 510 Statistics for Data Science (3 cr.) This course introduces statistical inference for big data. It covers distributions, confidence intervals, hypothesis testing, ANOVA, linear models, bias, model critique, and effective data communication. Students learn data analysis, wrangling, and visualization through hands-on programming projects.
  • CSCI-B 516 Engineering Cloud Computing (3 cr.) This course covers cloud system architectures, emphasizing network architectures, server and storage virtualization, data center topologies, and mobile cloud computing, building on knowledge of computer architectures, networks, and operating systems. While honing their research skills, students study cloud systems’ trustworthiness, including security and privacy, and related economics, laws, and regulations.
  • CSCI-P 532 Object-Oriented Software Development (3 cr.) This course will help turn motivated students into superior contributors to small- to mid-sized commercial or open-source software projects. It takes a hands-on, learning-by-doing approach. Students are introduced to design patterns, tools, and teamwork strategies from the first assignment to the last project.
  • CSCI-P 536 Advanced Operating Systems (3 cr.) P: Graduate Student standing in Department of Computer Information Science. Advanced operating system topics include multi-tasking, synchronization mechanisms, distributed system architecture, client–server models, distributed mutual exclusion and concurrency control, agreement protocols, load balancing, failure recovery, fault tolerance, cryptography, and multiprocessor operating systems.
  • CSCI-P 539 Sensor Networks and the Internet of Things (3 cr.) P: CSCI-P 538 Computer Networks This course covers principles of wireless sensor networks and the Internet of Things. Students learn to design and analyze sensor networks and their applications. Topics include sensor network architectures, MAC layer, routing, data dissemination, transport protocols, operating systems, programming, querying, management, and applications.
  • CSCI-B 543 Computer Architecture (3 cr.) P: CSCI-C 335 and 343 or honors versions; ECE 36500 or CS 40200 Fundamentals of computer design, instruction processing, and performance analysis. Single-processor systems’ architecture focuses on pipelining, memory and memory hierarchies, and interconnect technology. Exploration of architecture classes such as high-performance multiprocessors, massively parallel computers, and embedded systems.
  • CSCI-B 547 Systems and Protocol Security and Information Assurance (3 cr.) P: CSCI-B 504 Introduction to Cryptography This course covers the design and analysis of secure systems, including identifying security goals and risks, threat modeling and defense, integrating different technologies to achieve security goals, developing security protocols and policies, implementing security protocols, and secure coding. Real-world scenarios with many security requirements are studied.
  • CSCI-B 551 Elements of Artificial Intelligence (3 cr.) Introduction to major issues and approaches in artificial intelligence. Principles of reactive, goal-based, and utility-based agents. Problem-solving and search. Knowledge representation and design of representational vocabularies. Inference and theorem proving, reasoning under uncertainty, and planning. Overview of machine learning.
  • CSCI-B 558 Deep Learning (3 cr.) P: CSCI-B 551 Elements of Artificial Intelligence or CSCI-B 555 Machine Learning or CSCI-B 565 Data Mining or INFO-H 515 Statistical Learning This course covers deep learning neural networks. Topics include logistic regression, feedforward networks, autoencoders, convolutional neural networks, recurrent neural networks, graph neural networks, deep generative models, adversarial and reinforcement learning, and optimization and regularization techniques. Students also delve into recent research and learn through projects to develop deep learning systems.
  • CSCI-P 566 Software Engineering II (3 cr.) P: CSCI-P 538 Computer Networks This course covers the analysis, design, and implementation of software systems. Students learn requirements specifications through data and process modeling, software design methodologies, and software quality assurance, including testing and verification. The course also covers software development processes.
  • CSCI-B 570 Wireless and Mobile Security (3 cr.) P: CSCI-P 538 Computer Networks or CSCI 53600 Data Communication and Computer Networks This course covers challenges and strategies for safeguarding wireless and mobile systems. Students learn to identify, assess, and mitigate security risks, including authentication and authorization, distributed denial of service, jamming, malware injection, and side-channel attacks. Topics include security for blockchain, machine learning, mobile crowdsourcing, Internet of Things, and voice-controlled systems.
  • CSCI-P 583 Data Visualization (3 cr.) This course covers the theory, design, and application of scientific and information visualization, including algorithm design and implementation. Students learn to represent multidimensional data using computer graphics and other techniques, enabling users to interact with it. Projects span biomedical data analysis, scientific and engineering simulations, and visual web data mining.
  • CSCI-B 649 Topics in System (3 cr.) Special topics in systems. This course covers advanced principles, algorithms, and architectures for designing and optimizing high-performance computing systems. Students analyze real-world case studies and cutting-edge research to develop expertise in scalable, reliable, and efficient computing infrastructures for diverse applications.
  • CSCI-B 651 Natural Language Processing (3 cr.) P: CSCI-B 551 or CSCI-B 555 or CSCI-B 565 or INFO-H 515 Theory and methods for natural language processing. Algorithms for sentence parsing and generation. Context-free and unification grammars. Question-and-answer systems. Analysis of narratives. Finite-state approaches to computational phonology and morphology. Machine translation. Machine learning of natural language. Speech recognition. Neural network and statistical alternatives to symbolic approaches.
  • CSCI-B 657 Computer Vision (3 cr.) Concepts and methods of machine vision as a branch of artificial intelligence. Basics of digital image processing. Local and global tools for deriving information from image data. Model-based object recognition and scene understanding.
  • CSCI-B 659 Topics in Artificial Intelligence (3 cr.) Special topics in artificial intelligence. This course covers recent advances in artificial intelligence. While engaging in research, students investigate advanced AI concepts such as autonomous systems, computer vision, deep learning, explainable AI, generative adversarial networks, human–robot interaction, natural language processing, quantum machine learning, and virtual assistants.
  • CSCI-Y 790 Graduate Independent Study (1-6 cr.) P: Permission from a faculty mentor and department approval. This course engages graduate students in focused, independent study and research under the supervision of a faculty mentor. The course is intended for students who wish to explore specialized topics not covered in existing courses or conduct original research. The course culminates in a written report or project demonstrating the student’s understanding and contributions to the chosen topic.
  • CSCI-Y 791 Graduate Independent System Development (1-6 cr.) P: Permission from a faculty mentor and department approval. This course offers graduate students the opportunity to design and develop a substantial system under the guidance of a faculty mentor. During the course, students hone their skills in creativity and problem-solving. Students compose a detailed report on the system’s architecture, features, and performance. The course culminates in the system’s public release, showcasing their achievement and contribution to the broader community.
  • CSCI-Y 792 Master’s Thesis (1-6 cr.) Readings and research under the supervision of the master’s thesis advisor, leading to a thesis at a level admissible as a departmental technical report.
  • CSCI-Y 890 Thesis Readings and Research (1-12 cr.) P: Nomination to Candidacy Research under the direction of a graduate faculty member leading to a Ph.D. dissertation.
  • CSCI-Y 793 Master’s Software Thesis (1-6 cr.) A major software development project, possibly performed jointly with other students, documented in the public domain, and with final approval by three graduate faculty.
  • CSCI-G 901 Advanced Research (6 cr.) P: CSCI-Y 890 Thesis Readings and Research Available to graduate students who have completed all course requirements for their doctorates, have passed doctoral qualifying examinations, and have the requisite number of degree credit hours, this course provides the advanced research student with a forum for sharing ideas and problems under the supervision of a senior researcher.