Home About UH Academic Calendar Courses Undergraduate Education Graduate Education Degrees, Minors, & Certificates Colleges, Schools, & Academic Units






Information and Computer Sciences (ICS)

College of Natural Sciences

ICS 101 Tools for the Information Age (4) Fundamental concepts and terms of computer technology, application software for problem solving, computer technology trends and impact on individuals and society.

ICS 111 Introduction to Computer Science I (4) Overview of computer science, writing programs. Pre: 101 or equivalent. Recommended: computer experience.

ICS 141 Discrete Mathematics for Computer Science I (3) Logic, sets, functions, matrices, algorithmic concepts, mathematical reasoning, recursion, counting techniques, probability theory. Pre: two years of high school algebra, one year of plane geometry, and precalculus assessment; or consent. FS

ICS 211 Introduction to Computer Science II (3) Algorithms and their complexity, introduction to software engineering, data structures, searching and sorting algorithms, numerical errors. Pre: grade of “B” or higher in 111 or consent.

All students wishing to enroll in ICS courses above 211 must meet the prerequisite grade requirement of B or higher in ICS 111 and 211 prior to registering for the course.

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 241 Discrete Mathematics for Computer Science II (3) Program correctness, recurrence relations and their solutions, divide and conquer relations, relations and their properties, graph theory, trees and their applications, Boolean algebra, introduction to formal languages and automata theory. Pre: 141 or consent. FS

ICS 311 Algorithms (3) Design and correctness of algorithms, including divide-and-conquer, greedy and dynamic programming methods. Complexity analyses using recurrence relations, probabilistic methods, and NP-completeness. Applications to order statistics, disjoint sets, B-trees and balanced trees, graphs, network flows, and string matching. Pre: 211 and 241, 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: 212 and 241, 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: 211 and 241, or consent.

ICS 331 Logic Design and Microprocessors (4) (1 3-hr Lab) Basic machine architecture, microprocessors, bus organization, circuit elements, logic circuit analysis and design, microcomputer system design. Pre: 312 or consent.

ICS 390 Computing Ethics for Lab Assistants (3) A lecture/discussion/internship course on ethical issues and instructional techniques for students leading a laboratory section of ICS 101 (Tools for the Information Age). Pre: 101 and consent.

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, sequential and indexed file processing, report writing, online transaction processing. Pre: 321 or consent.

ICS 423 Computer Security (3) Legal, ethical and technology issues in computer access, confidentiality, authentication, privacy and intellectual property. Pre: Both 311 and 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 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 or consent.

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: 212 and 311, 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: 311.

ICS 463 Human Computer Interaction (3) Application of concepts and methodologies of human factors, psychology and software engineering to address ergonomic, cognitive, and social factors in the design and evaluation of human-computer systems. Pre: 311 or consent.

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: 311 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 466 Design for Mobile Devices (3) Lecture course introducing design issues, programming languages, operating systems and mark-up languages for internet-enabled mobile devices, such as cell phones and PDAs. A-F or Audit. Pre: 311 or consent. Spring only.

ICS 471 Probability, Statistics, and Queuing (3) A hands-on introduction to probability, statistical inference, regression, Markov chains, queuing theory. Use of an interactive statistical graphics environment such as R. Pre: 241 and 311, 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 either MATH 216, MATH 242, or MATH 252A; or consent.

ICS 491 Special Topics (3) Reflects special interests of faculty. Oriented toward juniors and seniors. Repeatable one time for BS/CS students. Pre: at least two 300-level ICS classes or consent.

ICS 499 Computer Project (V) Individual or small-group projects in system design or application under faculty supervision. Pre: 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 614 Medical Informatics I (3) Introduction to the field of medical informatics, which is found at the intersection of clinical science, public health, information science, computer technology and communications technology. Concentration on current issues. Pre: 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 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 624 Advanced Data Management (3) Exploration of information retrieval and object-relational tools and methods for the management of distributed multimedia database systems. Pre: 321 or 421 or LIS 670; or consent.

ICS 641 Theory of Computation (3) Advanced topics in formal languages, automata, computability, computational complexity. Pre: 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: 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 667 Advanced HCI Design Methods (3) Advanced analytical and empirical methods for the design and evaluation of usable, useful, and robust human-computer interfaces. Students will apply selected methodologies to a major system design project. Pre: 463 or 465; or consent.

ICS 668 Technology Supported Collaboration (3) An advanced introduction to the design of human-computer systems and other technological artifacts for supporting human collaboration in learning, work and social contexts, and to theoretical perspectives and empirical studies of collaboration that inform such design. A-F only. Pre: 463 or 465 or 664 or 665 or 667 or LIS 677; or consent.

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. Pre: 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 theoretical computer science. 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)