minus plus magnify speech newspaper atomic biology chemistry computer-science earth-science forensic-services globe info math matrix molecule neuroscience pencil physics pin psychology email share atsign clock double-left-chevron double-right-chevron envelope fax phone tumblr googleplus pinterest twitter facebook feed linkedin youtube flickr instagram
Graduate student teaching at a whiteboard

Graduate courses

CSCI 50200 Compiling and Programming Systems

  • Credit Hours: 3
  • Course Summary: Basic principles of compilers and compiler design; control of translation, loading, and execution; symbolic coding systems; lexical and syntactic analysis; design and operation of assemblers and macroprocessors; and design of interpretive systems. Students are expected to complete a large programming project as part of the course.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 50300 Operating Systems

  • Credit Hours: 3
  • Course Summary: Basic principles of operating systems: addressing modes, indexing, relative addressing, indirect addressing, stack maintenance; implementation of multitask systems; control and coordination of tasks, deadlocks, synchronization, and mutual exclusion; storage management, segmentation, paging, virtual memory, protection, sharing, and access control; file systems; resource management; and evaluation and prediction of performance.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 50400 Concepts in Computer Organization

  • Credit Hours: 3
  • Course Summary: The fundamentals of computer hardware for computer scientists. An overview of the organization of modern computers, ranging from sequential to advanced machines. CISC, RISC, and vector processors; multiprocessors; virtual storage, hierarchical memory; interaction with O/S; connection models; high-level programming support; and cost/performance analysis.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 50600 Management of the Software Development Process

  • Credit Hours: 3
  • Course Summary: A survey of the fundamental principles and concepts of managing a software project. Topics include life cycle models, standards and goals, cost estimation, risk analysis, tool use, component reuse, traceability, metrics, and process control and improvement. Students are required to apply management concepts using a project-based approach.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not currently offered

CSCI 50700 Object-Oriented Design and Programming

  • Credit Hours: 3
  • Course Summary: An advanced exploration of the object-oriented model and programming. Topics range from a review of the object model to advanced concepts such as abstraction mechanisms, standard library/packages, OO design using an OO language, and the syntax and the semantics of constructs.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 51200 Numerical Methods for Engineers and Scientists

  • Credit Hours: 3
  • Course Summary: Not open to students with credit in 414. Not normally accepted for graduate credit in computer science programs. A survey of the useful methods of computation. Solution of nonlinear equations and systems of nonlinear equations. Numerical methods for systems of linear equations. Approximate differentiation and integration. Numerical solution of ordinary differential equations. Introduction to partial differential equations and elementary approximation methods.
  • Prerequisites: MATH 35100 or MATH 51100; MATH 51000; and knowledge of programming. CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 51400 Numerical Analysis

  • Credit Hours: 3
  • Course Summary: Iterative methods for solving nonlinear equations, linear difference equations, applications to solution of polynomial equations, differentiation and integration formulas, numerical solution of ordinary differential equations, and round-off error bounds.
  • Prerequisites: CSCI 41400 or equivalent. CS graduate standing or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 51500 Numerical Analysis of Linear Systems

  • Credit Hours: 3
  • Course Summary: Computational aspects of linear algebra; linear equations and matrices; direct and iterative methods; eigenvalues and eigenvectors of matrices; error analysis.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 51600 Computational Methods in Applied Mathematics

  • Credit Hours: 3
  • Course Summary: A study of techniques such as direct integration, shooting, finite difference, finite elements, method of weighted residuals, and methods of characteristics for solving problems in fluid mechanics, solid mechanics, dynamics, and other fields of applied mathematics.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 52000 Computational Methods in Analysis

  • Credit Hours: 3
  • Course Summary: A treatment of numerical algorithms for solving classical problems in real analysis with primary emphasis on linear and nonlinear systems of equations and on optimization problems; the writing, testing, and comparison of numerical software for solving such problems; and a discussion of the characteristics of quality software for implementing these algorithms.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 53600 Data Communication and Computer Networks

  • Credit Hours: 3
  • Course Summary: Data communications: communication hardware technologies including local area and long-haul network hardware, circuit and packet switching, interfaces between computer and network hardware, and performance issues. Network architecture: protocol software and conceptual layering, reliable delivery over an unreliable channel, transport protocols, virtual circuits, datagrams, Internet working as a fundamental design concept, the client-server paradigm, naming and name binding, name servers, addressing and address resolution, routing and routing algorithms, congestion and flow control techniques, network file systems, distribution of computation, and DARPA Internet protocols TCP/IP as examples of protocol organization.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 53700 Introduction to Distributed Computing

  • Credit Hours: 3
  • Course Summary: Introduction to the principles and methods in the design of distributed computing systems. It covers the fundamentals of distributed computing from four perspectives: underlying communication media, protocols and their implications; operating system issues; high-level language constructs; and distributed algorithms.
  • Prerequisites: CSCI 50300 and CSCI 53600
  • Semester(s) Offered: Fall

CSCI 53800 The Design of Interactive Systems

  • Credit Hours: 3
  • Course Summary: Fundamental concepts and tools employed in designing the interaction between humans and machines and the mediating interfaces. Topics include: design problem, interface design concepts, experimental design and analysis, cognitive and predictive models, the design project, case studies, and applications.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 53900 Computing with Distributed Objects

  • Credit Hours: 3
  • Course Summary: An introductory treatment of the distributed-object model and programming. The topics range from a review of the distributed and object models of computation to advanced concepts such as remote method invocations, object brokers, object services, open systems, and future trends for distributed-object systems.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 54100 Database Systems

  • Credit Hours: 3
  • Course Summary: Spring. Fundamentals for the logical design of database systems. The entity-relationship model, semantic model, relational model, hierarchical model, network model. Implementations of the models. Design theory for relational databases. Design of query languages and the use of semantics for query optimization. Design and verification of integrity assertions, and security. Introduction to intelligent query processing and database machines.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 54300 Introduction to Simulation and Modeling of Computer Systems

  • Credit Hours: 3
  • Course Summary: Simulation: discrete event simulation, process-oriented simulation, generating random numbers, simulation languages, simulation examples of complex systems. Nondeterministic models: random variables, Poisson process, moment generating functions, statistical inference, and data analysis. Modeling: elementary queuing models, network of queues, and applications to performance evaluation of computer systems.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 54700 Information Storage and Retrieval and Natural Language Processing

  • Credit Hours: 3
  • Course Summary: Complex data structures of fields within records, as well as clustered, multilist, and inverted files; key decoding by tree and randomized techniques; overall techniques of classical document retrieval systems, e.g., the MEDLARS and NASA systems; overall techniques of automatic document retrieval systems, e.g., TIP and SMART, the internal structure of SMART; question answering systems; and natural language translation.
  • Prerequisites: CSCI 54100
  • Semester(s) Offered: Not Currently Offered

CSCI 54800 Introduction to Bioinformatics

  • Credit Hours: 3
  • Course Summary: Analysis of biological data employing various computational methods to obtain useful information in the emerging area of bioinformatics. Topics include structures, functions and evolution of proteins and nucleic acids, retrieval and interpretation of bioinformation from the Internet, learning principles, algorithms and software for sequence alignment, similarity search of sequence databases, estimation of phylogenetic trees, structural prediction, and functional inference.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 54900 Intelligent Systems

  • Credit Hours: 3
  • Course Summary: This course will discuss problems in the area of intelligent systems. Topics include the formalisms within which these problems are studied, the computational methods that have been proposed for their solution, and the real-world technological systems to which these methods have been applied.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 55000 Computer Graphics

  • Credit Hours: 3
  • Course Summary: An introduction to computer graphics. Topics include the concepts, principles, algorithms, and programming techniques in 3D interactive computer graphics. Emphasis is on the development and applications of 3D graphic algorithms and methods.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 55200 Advanced Graphics and Visualization

  • Credit Hours: 3
  • Course Summary: An introduction to data visualization methods and tools, and related graphics techniques. Students will explore a variety of data representation and modeling techniques, their corresponding visualization algorithms, and practical visualization applications in scientific, engineering, and biomedical fields.
  • Prerequisite: CSCI 55000. CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 55500 Cryptography

  • Credit Hours: 3
  • Course Summary: Concepts and principles of cryptography and data security.  Cryptography (secret codes): principles of secrecy systems; classical cryptographic systems, privacy enhanced email; digital signatures.  Proprietary software protection; information theory and number theory; complexity bounds on encryption; key escrow; traffic analysis; attacks against encryption; basic legal issues; e-commerce; the role of protocols.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall
  • Additional Information: This course replaces CSCI 59000: Cryptography and Network Security

CSCI 55600 Fault-Tolerant Computing

  • Credit Hours: 3
  • Course Summary: Concepts of fault-tolerant computing; phases of fault-tolerance; applications to commercial, communication, and aerospace systems; fault-tolerance in multiprocessor systems; diagnosis techniques; software fault-tolerance.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 56500 Programming Languages

  • Credit Hours: 3
  • Course Summary: Fall. An exploration of modern or unconventional concepts of programming languages, their semantics, and their implementations; abstract data types; axiomatic semantics using Hoare's logic and Dijkstra's predicate transformers; denotational semantics; functional, object-oriented, and logic programming; concurrency and Owicki-Gries theory. Example languages include ML, Ada, Oberon, LISP, PROLOG, and CSP.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 57300 Data Mining

  • Credit Hours: 3
  • Course Summary: Data Mining has emerged at the confluence of artificial intelligence, statistics, and databases as a technique for automatically discovering summary knowledge in large datasets.  This course introduces students to the process and main techniques in data mining, including classification, clustering, and pattern mining approaches.  Data mining systems and applications will also be covered, along with selected topics in current research.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall

CSCI 58000 Algorithm Design, Analysis, and Implementation

  • Credit Hours: 3
  • Course Summary: Basic techniques for designing and analyzing algorithms: dynamic programming, divide-and-conquer, balancing, upper and lower bounds on time and space costs, worst case and expected cost measures. A selection of applications such as disjoint set union/find, graph algorithms, search trees, pattern matching. The polynomial complexity classes P, NP, and co-NP; intractable problems.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall, Spring

CSCI 58200 Automata and Formal Languages

  • Credit Hours: 3
  • Course Summary: Spring. Finite automata, regular expressions; push-down automata, context-free grammars; and languages and behaviors. Closure properties, pumping lemmas, and decision procedures. Deterministic context-free languages and LR parsing; brief survey of the Chomsky hierarchy.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 58500 Mathematical Logic I MATH 585

  • Credit Hours: 3
  • Course Summary: Formal theories for propositional and predicate calculus with study of models, completeness, and compactness. Formalization of elementary number theory; Turing machines, halting problem, and the undecidability of arithmetic. Students should register for MATH 58500.
  • Prerequisite: MATH 35100
  • Semester(s) Offered: Not Currently Offered

CSCI 59000 Topics in Computer Science

  • Credit Hours: 3
  • Course Summary: By arrangement. Fall, spring. Directed study for students who wish to undertake individual reading and study on approved topics.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Fall, Spring

CSCI 60300 Advanced Topics in Distributed Systems

  • Credit Hours: 3
  • Course Summary: Design and control of distributed computing systems (operating systems and database systems).  Topics include principles of namings and location, atomicity, resources sharing, concurrency control and other synchronization, deadlock detection and avoidance, security, distributed data access and control, integration of operating systems and computer networks, distributed systems design, consistency control, and fault tolerance.
  • Prerequisites: CSCI 53700. CS graduate student or instructor consent required.
  • Semester(s) Offered: Spring

CSCI 61400 Numerical Solution of Ordinary Differential Equations

  • Credit Hours: 3
  • Course Summary: Numerical solution of initial-value problems by Runge-Kutta methods, general one-step methods, and multistep methods. Analysis of truncation error, discretization error, and rounding error. Stability of multistep methods. Numerical solution of boundary-value and eigenvalue problems by initial-value techniques and finite difference methods.
  • Prerequisites: CSCI 51400. CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 61500 Numerical Solution of Partial Differential Equations

  • Credit Hours: 3
  • Course Summary: The numerical solution of hyperbolic, parabolic, and elliptic equations by finite difference methods; iterative methods Gauss-Seidel, overrelaxation, alternating direction for solving elliptic equations; discretization and round-off errors; explicit and implicit methods for parabolic and hyperbolic systems; the method of characteristics; the concept of stability for initial value problems.
  • Prerequisites: CSCI 51500 and MATH 52300.  CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 66000 Design of Translating Systems

  • Credit Hours: 3
  • Course Summary: Systems design of higher-level programming languages and their processors; symbol tables, lexical scan, syntax scan, object code generation and optimization; boot-strapping techniques, higher-level translators, self-compilers, and decompilers; and heuristic generators.
  • Prerequisite: CS graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 66100 Formal Compiling Methods

  • Credit Hours: 3
  • Course Summary: Application of concepts developed in formal language and automata theory to the design of programming languages and their processors. Models of syntactic analysis, including canonical precedence, LRand LLparsing methods and variants; efficiency of each. Synthesis techniques, including symbol tables, storage administration, parameter mechanisms, garbage collection; optimization considerations. Models of synthesis, including level, affix, attributed grammars; prospects of fully automating compiler design. Applicative vs. procedural languages and their implementations based on semantic definition of a language LISP, Lucid and on proof-like techniques PROLOG, equational systems; merits of such approaches.
  • Prerequisites: CSCI 50200.  CSCI graduate student or instructor consent required.
  • Semester(s) Offered: Not Currently Offered

CSCI 69500 M.S. Project

  • Credit Hours: maximum of 6 credit hours apply to degree 1-9
  • Course Summary: The student integrates and applies the knowledge gained from the formal course work to formulate and execute a solution to a problem of practical importance. The faculty advisor and the sponsoring organization mentor, if applicable, provide guidance and evaluation.
  • Prerequisites: Consent of instructor.
  • Semester(s) Offered: Fall, Spring

CSCI 69800 Research M.S. Thesis

  • Credit Hours: 1-18 cr. Credit Hours
  • Course Summary: Research M.S. Thesis supervised by the faculty advisor.
  • Prerequisite: Consent of Instructor
  • Semester(s) Offered: Fall, Spring

CSCI C591 Research Seminar for First-Year Graduate Students

  • Credit Hours: 0-1
  • Course Summary: First-year seminar in research methods and current research directions of the faculty. Repeatable.
  • Prerequisite: CS Student or instructor consent
  • Semester(s) Offered: Fall, Spring

CSCI 69900 Research Ph.D. Thesis

  • Credit Hours: 1-18 cr. Credit Hours
  • Course Summary: Formal research Ph.D. Thesis supervised by faculty advisor.
  • Prerequisite: CS Student or instructor consent
  • Semester(s) Offered: Fall, Spring

Computer science is the right formula for modern medicine

Vera Krol 2005 Alumna, B.S. Computer Science, 2009 Alumna, M.D. IU School of Medicine