Information and Computer Sciences (ICS)
College of Natural Sciences
ICS 101 Tools for the Information Age (3) Fundamental
concepts and terms of computer technology, application software for
problem solving, computer technology trends and impact on individuals
and society. Co-requisite: 101L.
ICS 101L Tools for the Information Age Lab (1) Using
computers and application software: survival skills, written
communications, spreadsheets, computer communications, presentation
software. Co-requisite: 101.
ICS 111 Introduction to Computer Science I (3) Overview
of computer science, writing programs. Pre: 101 or consent.
Co-requisite: 111L. NS3
ICS 111L Introduction to Computer Science I Lab (1)
Programming exercise, demonstration and discussion of computer
equipment, techniques, issues. Co-requisite: 111.
ICS 141 Discrete Mathematics for Computer Science I
(3) Logic, sets, functions, matrices, algorithmic concepts,
mathematical reasoning, counting techniques, probability theory,
relations, equivalences, partial orderings, graphs. Pre: 111 (or
concurrent) or consent.
ICS 211 Introduction to Computer Sciences II (3) Algorithms
and their complexity, introduction to software engineering, data
structures, searching and sorting algorithms, numerical errors. Pre: 111
and 141 (or concurrent), or consent.
ICS 212 Program Structure (3) Program
organization paradigms, programming environments, implementation of a
module from specifications, the C and C++ programming languages. Pre:
211 or consent.
ICS 311 Algorithms and Data Structures (3) Data
structures, including arrays, records, pointers, trees, and graphs,
storage management, algorithms for searching and sorting, mathematical
analysis of algorithms. Pre: 141 and 211, or consent.
ICS 312 Machine-Level and Systems Programming (3) Machine
organization, machine instructions, addressing modes, assembler
language, subroutine linkage, linking to higher-level languages,
interface to operating systems, introduction to assemblers, loaders and
compilers. Pre: 211 and 212 (or concurrent), or consent.
ICS 313 Programming Language Theory (3) Syntax,
control structures, data binding and scope, language styles, programming
in LISP and Prolog, language and automata theory. Pre: 141 and 212, or
consent.
ICS 321 Data Storage and Retrieval (3) Data
storage devices, timing and capacity, programming for files, hashed and
indexed files, introduction to relational database systems. Pre: 141 and
211, or consent.
ICS 331 Logic Design and Microprocessors (3) Basic
machine architecture, microprocessors, bus organization, circuit
elements, logic circuit analysis and design, microcomputer system
design. Pre: 312 or consent. Co-requisite: 331L.
ICS 331L Logic Design and Microprocessors Lab (1) Use
of laboratory tools, measurement and construction techniques, hardware
debugging, interfacing techniques, microcomputer circuitry and
construction. Co-requisite: 331.
ICS 412 Operating Systems (3) Operating system
structure, process creation and management, memory allocation and
management, scheduling, protection. Pre: 212 and 312, or consent.
ICS 413 Software Engineering I (3) System
specification, modeling and analysis, prototyping, hierarchal design,
program design methods, cost estimation, project management,
computer-aided software design. Team-oriented software-design project.
Pre: 311 or consent.
ICS 414 Software Engineering II (3) Continuation
of 413. Project management, quality, and productivity control, testing
and validation, team management. Team-oriented software-implementation
project. Pre: 413.
ICS 415 Introduction to Programming for the Web (3)
Introduction to emerging technologies for construction of World Wide
Web (WWW)-based software. This course covers the programming and
scripting languages used for the creation of dynamic WWW sites and
client-server programming. Students will be expected to complete a
medium-sized software project that uses all the languages and concepts
discussed in the class. Pre: 311 or consent.
ICS 421 Database Systems (3) Principles of
database systems, data modeling, relational models, database design,
query languages, query optimization, concurrency control data security.
Pre: 311 and 321, or consent.
ICS 422 Data Processing (3) Role of data
processing in organizations, programming practices, ethics, COBOL
language, sequential and indexed file processing, report writing,
on-line transaction processing. Pre: 321 or consent.
ICS 424 Application Frameworks (3) Experience
producing applications with at least two different applications
frameworks. A-F only. Pre: 212, 311, and 313; or consent.
ICS 431 Computer Architecture (3) Memory
management, control flow, interrupt mechanisms, multiprocessor systems,
special-purpose devices. Pre: 331.
ICS 440 Discrete Mathematics for Computer Science
II (3) Number theory, recursive algorithms, program correctness,
planner graphs and graph coloring, trees and their applications,
introduction to formal languages and automata. Pre: 141 or consent.
ICS 441 Theory of Computation (3) Grammars,
sequential machines, equivalence, minimalization, analysis and
synthesis, regular expressions, computability, unsolvability, Gödel’s
theorem, Turing machines. Pre: 313.
ICS 442 Analytical Models and Methods (3) Applications
of mathematical methods in computer science with emphasis on discrete
mathematics, numerical computation, algebraic models, operations
research. Pre: 311 and MATH 206.
ICS 451 Data Networks (3) Network analysis,
architecture, digital signal analysis and design; circuit switching,
packet switching, packet broadcasting; protocols and standards; local
area networks; satellite networks; ALOHA channels; examples. Pre: 141
and 212, or consent.
ICS 461 Artificial Intelligence I (3) Survey of
artificial intelligence: natural language processing, vision and
robotics, expert systems. Emphasis on fundamental concepts: search,
planning, and problem solving, logic, knowledge representation. Pre:
313.
ICS 464 Introduction to Cognitive Science (3) Introduces
basic concepts, central problems, and methods from cognitive science.
Identifies contributions from disciplines such as cognitive psychology,
linguistics, artificial intelligence, philosophy, and neuroscience. Pre:
111 or consent.
ICS 465 Introduction to Hypermedia (3) Basic
issues of interactive access to information in various formats on
computers. Available hardware and software: editing, integration,
programming. Implementation of a sample information system. Pre: 311.
ICS 471 Probability, Statistics, and Queuing (3) Introduction
to: probability, Markov chains, queuing theory, statistical inference,
and regression. Emphases on computer system applications and statistical
computing and simulation. Pre: 141 or consent.
ICS 481 Introduction to Computer Graphics (3) Fundamentals
of computer graphics including graphics hardware, representation,
manipulation, and display of two- and three-dimensional objects, use of
commercial software. Pre: 311 and MATH 206, or consent.
ICS 491 Special Topics (3) Reflects special
interests of faculty. Oriented toward juniors and seniors. Pre: consent.
ICS 499 Computer Project (V) Individual or
small-group projects in system design or application under faculty
supervision. Pre: 313 or 321, or consent.
ICS 500 Master’s Plan B/C Studies (1) Enrollment
for degree completion. Pre: master’s Plan B or C candidate and
consent.
ICS 611 Compiler Theory and Construction (3) Design
and implementation of compilers, syntactic and semantic descriptions of
programming languages, algorithms for syntactic analysis and object code
generation. Pre: 312 or consent.
ICS 612 Theory of Operating Systems (3) Advanced
study in operating systems theory and design with emphasis on case
studies and distributed systems. Pre: 412.
ICS 613 Advanced Software Engineering (3) Fundamental
software engineering procedures, including planning, estimation, design,
testing, process definition and improvement, and software quality
assurance. Measurement techniques are used to support empirically-driven
software process improvement throughout the course. Pre: 414 or consent.
ICS 621 Analysis of Algorithms (3) Analysis and
design of algorithms: modeling, comparison, measures, applications. Pre:
311.
ICS 622 Systems Modeling and Evaluation (3) Mathematical
modeling, analysis, optimization, and simulation techniques,
applications to design and evaluation of computer software systems. Pre:
412, 440, and 471; or consent.
ICS 623 Data Security (3) Classical ciphers,
current encryption standards, public key cryptography, authentication,
digital signatures, security in operating systems and databases. Pre:
321 and 412, or consent.
ICS 641 Theory of Computation (3) Advanced
topics in formal languages, automata, computability, computational
complexity. Pre: 440 or consent.
ICS 651 Computer Networks (3) Elementary
principles of modern computer networking. Detailed coverage of overall
architecture and the physical, data link, and network layers, with
emphasis on the network layer. Pre: 451.
ICS 661 Artificial Intelligence II (3) Current
issues in artificial intelligence, including expert systems, knowledge
representation, logic programming, learning, natural language
processing. Pre: 461.
ICS 662 Computer Algebra (3) Use of computers
and non-numeric mathematics, including algebra and calculus, theory and
applications. Pre: 440 or consent.
ICS 663 Pattern Recognition (3) Nature of the
problem in pattern recognition and clustering; explanation of various
algorithms. Pre: MATH 371.
ICS 664 Human-Computer Interaction (3) Studies
of human performance in designing and using information systems.
Emphasizes concepts and methodologies from human factors, psychology,
and software engineering relating to human performance. Pre: 413.
ICS 665 User Interfaces and Hypermedia (3) Advanced
concepts in construction of interfaces between computers and their
users. Hypermedia information structures, guidelines, problems, and
tradeoffs. Discussion of selected readings, implementation of
prototypes. Pre: 465.
ICS 671 Applied Regression Analysis (3) Fitting
a straight line by least squares, multiple regression, hypothesis
testing, examination of residuals, dummy variables, stepwise regression,
analysis of variance, nonlinear estimation, computer assignments. Pre:
471.
ICS 672 Time Series Analysis (3) Least squares
and maximum likelihood theory, application to stationary and
nonstationary parametric time series model fitting. Pre: 671.
ICS 673 Multivariate Analysis (3) Matrix
algebra, multiple and partial correlation, factor analysis, canonical
correlation, discriminant analysis with applications. Pre: 471.
Recommended: 671.
ICS 681 Computer Graphics (3) Selected advanced
topics in computer graphics. Substantial project required. Pre: 481 or
consent.
ICS 682 Numerical Computation (3) Selected
topics in numerical analysis, mathematical software, and scientific
computation; examples include sparse matrix methods, finite element
methods, mathematical programming. Repeatable. Pre: 440 or consent.
ICS 690 Seminar in ICS (1) Series of talks on
advanced research topics. CR/NC only.
ICS 691 Topics in Software (3) Reflects special
interests of faculty in advanced programming, systems programming,
software systems. Repeatable. Pre: consent.
ICS 692 Topics in Theoretical Computer Science (3) Reflects
special interests of faculty in theoretical computer science.
Repeatable. Pre: consent.
ICS 699 Directed Reading/Research (V) Pre:
graduate standing and consent.
ICS 700 Thesis Research (V) Research for
master’s thesis.
ICS 800 Dissertation Research (V)
For key to symbols and abbreviations, see the first
page of this section. |