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

COURSE DESCRIPTIONS


SAMPLE COURSE DESCRIPTION

COURSE NUMBERING SYSTEM

GENERAL EDUCATION DESIGNATION

DEPARTMENTS OFFERING DIVERSIFICATION COURSES

Information and Computer Sciences (ICS)

College of Natural Sciences

ICS 101 (Alpha) 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. (B) general; (T) education. (T) intended for students interested in careers in education.

ICS 110 Introduction to Programming Through 3D Animations (3) Introduction to computer programming and object-oriented programming concepts using movies and games where the concept of "object" is visible and animated in 3D. (Once a year)

ICS 111 Introduction to Computer Science I (4) Overview of computer science, writing programs. Pre: 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. FS

ICS 210 Information Systems in Society (3) Lecture/discussion critically explores sociopolitical dimensions of Information and Communication Technology (ICT), and the information professions. A-F only. Pre: departmental approval. (Once a year)

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 except ICS 241 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 215 Introduction to Scripting (3) Introduction to scripting languages for the integration of applications and systems. Scripting in operating systems, web pages, server-side application integration, regular expressions, event handling, input validation, selection, repetition, parameter passing, Perl, JavaScript, and PHP. A-F only. Pre: 211 (or concurrent), or consent. (Once a year)

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 290 Computer Science Careers: An Exploration of the Specialties of Computer Science (1) Exploration of the specialties of computer science. Meets every two week for 2.5 hours to explore specific areas in computer science. CR/NC only. (Once a year)

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: 212 (or concurrent), or consent.

ICS 313 Programming Language Theory (3) Syntax, semantics, control structures, variable binding and scopes, data and control abstractions. Programming in functional (LISP) and logic (Prolog) programming styles. Pre: 212 and 241, or consent.

ICS 314 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: 211 or consent.

ICS 315 Web Design and Management (3) Web design principles, XML and HTML, tables, forms, and frames, multimedia objects, security, scripting for web applications, web servers, commercial aspects, new technology. A-F only. Pre: 215 or consent. (Once a year)

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 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: 212 or consent.

ICS 332 Operating Systems (3) Operating system concepts and structure, processes and threads, CPU scheduling, memory management, scheduling, file systems, inter-process communication, virtualization, popular operating systems. A-F only. Pre: 211.

ICS 351 Network Design and Management (3) Overview of the internet and its capabilities; introduction to HTTP, TCP/IP, ethernet, and wireless 802.11; routers, switches, and NAT; network and wireless security; practical experience in designing and implementing networks. Pre: 141 and 211, or consent. (Once a year)

ICS 361 Introduction to Artificial Programming (3) Introduction to the theory of Artificial Intelligence and the practical application of AI techniques in Functional (Common LISP and/or Scheme) and Logic (Prolog) programming languages. Students gain practical experience through programming assignments and projects. A-F only. Pre: 241 and (212 or 215), or consent.

ICS 390 Computing Ethics for Lab Assistants (3) A lecture/discussion/internship on ethical issues and instructional techniques for students assisting a laboratory section of ICS 101. The class uses multiple significant writing and oral presentation activities to help students learn course content. Pre: 101(Alpha) and consent.

ICS 414 Software Engineering II (3) Continuation of 314. Project management, quality, and productivity control, testing and validation, team management. Team-oriented software-implementation project. Pre: 314.

ICS 415 Introduction to Programming for the Web (3) Introduction to emerging technologies for construction of World Wide Web (WWW)-based software. Covers programming and scripting languages used for the creation of WWW sites and client-server programming. Students will complete a medium-sized software project that uses languages and concepts discussed in class. Pre: 311 or consent.

ICS 419 The Science, Psychology and Philosophy of Systems Design (3) Scientific, psychological and philosophical bases of systems design, including a survey of human-factors and ergonomic standards; the nature of innovation and creativity as it relates to systems design. Web-enhanced course. Pre: two ICS 300-level courses with grade of B or better, or consent. (Once a year)

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 312, 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 425 Computer Security and Ethics (3) Theoretical results, security policy, encryption, key management, digital signatures, certificates, passwords. Ethics: privacy, computer crime, professional ethics. Effects of the computer revolution on society. A-F only. Pre: at least two ICS 300-level courses or consent. (Once a year)

ICS 426 Computer System Security (3) Information flow, confinement, information assurance, malicious programs, vulnerability analysis, network security, writing secure programs. A-F only. Pre: 351 or 451, or consent. (Once a year)

ICS 431 Computer Architecture (3) Memory management, control flow, interrupt mechanisms, multiprocessor systems, special-purpose devices. Pre: 331.

ICS 432 Concurrent and High-Performance Programming (3) Principles of concurrent and high performance programming. Multi-threading in C and Java for shared-memory programming. Distributed memory programming with Java. Introduction to cluster computing. A-F only. Pre: 212 or consent. (Once a year)

ICS 435 Machine Learning Fundamentals (3) Introduction to machine learning concepts with a focus on relevant ideas from computational neuroscience. Information processing and learning in the nervous system. Neural networks. Supervised and unsupervised learning. Basics of statistical learning theory. Pre: 311 or consent. Recommended: MATH 307. (Once a year)

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: 311 or consent.

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 452 Software Design for Robotics (3) Sensors, actuators, signal processing, paradigms of robotic software design, introduction to machine learning, introduction to computer vision, and robot-to-human interaction. A-F only. Pre: two ICS 300-level courses or consent. Recommended: 312 and 313. (Once a year: spring)

ICS 461 Artificial Intelligence (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 or consent.

ICS 462 Artificial Intelligence for Games (3) Techniques to stimulate intelligence in video games: movement, pathfinding with A* search, decision/behavior trees, state machines, machine learning, tactics. Extend games with your own AI implementations; experience "shootout" contests for the best AI algorithm/implementation. Pre: 212 and (314 or 361) and (PHYS 151 or PHYS 170). (Alt. years)

ICS 464 Human Computer Interaction I (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: two ICS 300-level courses 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 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: 314 or consent. (Spring only)

ICS 469 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: two ICS 300-level courses or consent.

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 475 Introduction to Bioinformatics Sequences and Genomes Analysis (3) Introduction to bioinformatics to computer sciences students by focusing on how computer sciences techniques can be used for the storage, analysis, prediction and simulation of biological sequences (DNA, RNA and proteins). A-F only. Pre: one ICS 300-level course or consent. (Once a year)

ICS 476 Bioinformatics Algorithms and Tool Development (3) Study of commonly used bioinformatic algorithms, with an emphasis on string, tree, and graph algorithms. Presentation of probabilistic and clustering methods. Implementation of the studied algorithms and design of applications. Pre: 475 or consent. (Once a year)

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 483 Computer Vision (3) Introductory course in computer vision. Topics include image formation, image processing and filtering, edge detection, texture analysis and synthesis, binocular stereo, segmentation, tracking, object recognition and applications. A-F only. Pre: 212 and 311, or consent. Once a year.

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 606 Intelligent Autonomous Agents (3) Theory, methods and practical applications of autonomous agent systems, including common applications of both software and hardware (robotic) agents. In-depth practical experience with autonomous agents through programming assignments and projects. Pre: 313 or EE 467 (or equivalent), graduate standing; or consent. (Once a year) (Cross-listed as EE 606)

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.

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 616 Information Architecture and Web Design (3) User-centered design of websites; survey Information Architecture (IA) systems (organization, navigation, labeling, searching); gain experience in methodologies for creating IA, tools for IA, web standards and usability tests. ICS and LIS majors only. A-F only. Pre: graduate standing in ICS or LIS or related field or consent. (Once a year)

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: 311 or consent.

ICS 623 Data Security (3) Symmetric encryption algorithms, secure hashing, algorithms, unicity distance, large number and finite field algebra and arithmetic, public key algorithms for encryption, digital signatures, and key exchange. Pre: 311 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 632 Principles of High Performance Computing (3) Principles of high performance computing for single-processor and parallel architectures. Detailed coverage of parallel architectures and exposure to shared-memory, distributed-memory, and hybrid parallelism. Hands-on experience with message-passing and multi-threaded programming. A-F only. Pre: graduate standing in computer science or closely related field, or consent. (Once a year)

ICS 635 Machine Learning (3) Introduction to key theoretical concepts of machine learning. Practical experience with decision free methods, artificial neural networks. Bayesian belief networks and contemporary statistical methods including regression, clustering and classification. Pre: consent. (Once a year)

ICS 636 Information Theory in Machine Learning (3) Basics of information processing and learning in the brain; neural networks; learning algorithms based on information maximization; applications in molecular biology and bioinformatics. A-F only. Pre: graduate standing in computer science or mathematics background, or consent. (Once a year)

ICS 641 Advanced Theory of Computation (3) Advanced topics in formal languages, automata, computability, computational complexity. Pre: 441 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 Advanced Artificial Intelligence (3) Current issues in artificial intelligence, including expert systems, knowledge representation, logic programming, learning, natural language processing. Pre: 461 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 II (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: 464 or consent.

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 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: 464 or 465, or consent.

ICS 668 Social Informatics (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: 464 or 465 or 664 or 665 or 667 or LIS 677; or consent.

ICS 669 Social Computing (3) Participative analysis of online communities and user-generated content collections. Theoretical and practical aspects of online interaction, identity, trust, and virtual social capital. A-F only. (Once a year)

ICS 674 Evolutionary Computation I: Survey of Methods (3) Evolutionary computation surveys in the field to prepare students for research. Topics include diverse engineering applications, theory, and concepts including search spaces, representation, objective functions, variation operators, selection, and population based search. Pre: 211 (B or better) and 241 (C or better) and admitted to a graduate program or capable of graduate-level work in computer sciences, or consent. (Once a year: fall)

ICS 675 Bioinformatics: Sequences Analysis (3) To expose students to bioinformatics at the biological sequences analysis level (DNA, RNA, proteins). Several bioinformatics methods and algorithms are introduced. Students are required to present one paper and to participate in a small group project. A-F only. Pre: 475 or MBBE 683, or consent. (Once a year)

ICS 676 Bioinformatics: Microarrays (3) Introduction to the basic principles of biology relevant for microarray gene expression data and to Bioconductor. Collaborative open-source project to develop a modular general framework for the analysis of cDNA arrays and gene chips. A-F only. Pre: 311 or background in biology, or consent. (Once a year)

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 683 Advanced Computer Vision (3) Fundamental problems and core concepts and techniques in computer vision, covering both theoretical and practical issues in the field. A-F only. Pre: 483 or consent. (Once a year)

ICS 686 Digital Video Information (3) Principles and techniques of technical and context analysis of digital video information. Video capture and editing tools, compression and analysis algorithms, visual culture, narrative structure, juxtaposition of multimedia elements and their effects on information transmission. Pre: graduate standing or consent. (Alt. years)

ICS 690 Seminar in ICS (1) Series of talks on advanced research topics. Repeatable unlimited times.CR/NC only.

ICS 691 Topics in Software (3) Reflects special interests of faculty in theoretical computer science. Repeatable in different topics. Pre: consent.

ICS 699 Directed Reading/Research (V) Repeatable unlimited times. Pre: graduate standing and consent.

ICS 700 Thesis Research (V) Research for master's thesis. Repeatable unlimited times.

ICS 800 Dissertation Research (V) Research for doctoral dissertation. Repeatable eight times. Pre: candidacy for PhD in computer science.