|
|
|
100 | 200
| 300 | 400 | Graduate Courses
Schedule of Classes
Computer Science (Com S)
www.cs.iastate.edu
Leslie L. Miller, Chair of Department
Professors: Fernandez-Baca, Kothari, Leavens, J. Lutz, Miller, Slutzki, Wong
Professors (Emeritus): Brearley, Oldehoeft, Thomas
Associate Professors: Baker, Chaudhuri, Gadia, Honavar, R. Lutz, Prabhu, Strawn, Tyagi
Associate Professors (Adjunct): Kendall
Assistant Professors: Aluru, Chou, Cruz-Neira, Eulenstein, Jia, Lavalle, Lumpe, Miner,
Tavanapong
Assistant Professors (Adjunct): Boysen, Mitra
Instructors (Adjunct): Rose
Undergraduate Study
The curriculum in Liberal Arts and
Sciences leading to a bachelor of science degree with a major in computer science is
designed to prepare students for positions as computer scientists with business, industry,
or government, or for graduate study in computer science. This program has been accredited
by the Computing Sciences Accreditation Board, Inc.
To complete an undergraduate degree
in Computer Science, a student must satisfy the requirements of the College of Liberal
Arts and Sciences (see Liberal Arts and Sciences, Curriculum) and include the following
courses within the group requirements: Phil 442;
Sp Cm 212; 14 credits of math and
statistics including Math 165, 166 and at least one math course from Math 265, 266, 304,
307, 314, or 317, and at least one stat course from Stat 105, 231, 305, 333, or 341; a
minimum of 12 credits of natural science including Phys 221, 222, and at least one
additional natural science course from the following list: A Ecl 312, Anthr 202, 307, BBMB
221, Biol 201, 201L, 202, 202L, 312, Bot 102, 202, 304, Chem 163-231, Ent 370, Env S 324,
FS HN 167, Gen 260, Geol 101, 102, 201, 306, 311, 412, Mat E 207, 211, Mteor 206, 301,
Psych 310, Zool 155, 156, 258, 310; English proficiency requirement: Engl 104, 105 and one
of Engl 302, 305, 309 or 314. The minimum grade accepted in each of the three required
courses is a C-.
Students wishing to pursue the B.S.
degree in computer science must first successfully complete the premajor program
consisting of the following courses and minimum grade requirements:
Course Minimum Grade
104
C-
227
C-
228
C-
Math 165
C-
Students majoring in computer science
must successfully complete this premajor program prior to taking any other courses in the
Department. Thus, for computer science majors, this premajor serves as a necessary
prerequisite to all the other courses offered by the Department.
A minimum of 44 credits is required
for the B.S. degree in computer science. The required courses are: Com S 101, 104, 203,
Cpr E 210, Com S 227, 228, 309, 311, 321, 330, 331, 342, 352, 362 or 363. In addition, two
advanced-level courses must be selected from the following groups:
Group W: 411, 440, 454, 476, Math 421
Group B: 401, 410, 425, 430, 461, 472, 474
Group N: 418, Math 471, Math 481, Cpr E 484,
Cpr E 489, M E 519
Courses in Group W require written
reports and those in Group B require both oral and written reports. Students must take one
course from Group B and one course from any group.
Students must earn a C- or better in
each course in the department which is a prerequisite to a course listed in the
students degree program.
Graduate Study
The department offers work for the
degrees master of science and doctor of philosophy with a major in Computer Science. The
doctor of philosophy may also be earned with computer science as a co-major with some
other discipline. Additionally, the department offers minor work to students majoring in
other departments.
Facilities exist for research in such
areas as algorithms, artificial intelligence, computational complexity, computer
architecture, bioinformatics, computer networks, database systems, formal methods, machine
learning and neural networks, multimedia, parallel and distributed computing, programming
languages, robotics and, software engineering. There are also numerous opportunities for
interdisciplinary research.
Typically, students beginning
graduate work in Computer Science have completed a bachelors degree or equivalent in
Computer Science. However, some students with undergraduate majors in other areas, such as
mathematical, physical, or biological science or engineering, become successful graduate
students in Computer Science.
For the degree master of science, a
minimum of 31 semester credits are required. A thesis demonstrating research and the
ability to organize and express significant ideas in computer science is required.
The purpose of the doctoral program
is to train students to do original research in Computer Science. Each student is also
required to attain knowledge and proficiency commensurate with a leadership role in the
field. The Ph.D. requirements, governed by the students program of study committee
within established guidelines of the department and the graduate college, include
coursework, demonstrated proficiency in three areas of Computer Science, a research skills
requirement, a preliminary examination, and a doctoral dissertation and final oral
examination
The department recommends that all
graduate students majoring in Computer Science teach as part of their training for an
advanced degree.
Courses open for nonmajor graduate
credit: 309, 311, 321, 330, 331, 342, 352, 362, 363, 401, 411, 425, 426, 430, 440, 454,
461, 471, 472, 474, 476, 481, 484.
Courses Primarily for
Undergraduate Students
Com S 101.
Orientation
(1-0) Cr. R. F.S. Introduction to the procedures and policies of Iowa State University
and the Department of Computer Science, test-outs, honorary societies, etc. Issues
relevant to student adjustment to college life will also be discussed. Offered on a
satisfactory-fail grading basis only.
Com S 103. Computer Applications
(3-2) Cr. 4. F.S. Introduction to computer literacy and applications. Applications:
Windows, Internet browser/HTML, word processing, spreadsheets, database management and
presentation software. Literacy: history of computing, structure of computers,
telecommunications, computer ethics, computer crime, and history of programming languages.
No prior computer experience necessary.
Com S 104. Introduction to
Computers
(3-2) Cr. 4. F. Use of personal computer and workstation operating systems and
software. Overview of machine architecture and telecommunications. Project-oriented
approach to word processing, spreadsheet, presentation, database management, e-mail,
Internet usage, HTML and other software. Beginning programming in Visual Basic, and
animation scripting. Topics from computer history, programming languages, algorithm
development, and societal impact. No prior computer experience necessary. This course is
for computer science majors.
Com S 107. Applied Computer
Programming
(3-0) Cr. 3. F.S. Prereq: 103, Math 104 or 140 or 150. Introduction to computer
programming for non-majors using a language such as the Visual Basic language. Basics of
good programming and algorithm development. Graphical user interfaces.
Com S 201.
Computer Programming in COBOL
(3-0) Cr. 3. F.S. Prereq: 107 or 207 or 227. Computer programming in COBOL. Emphasis
on the design, writing, debugging, and testing of business applications programs in a
transaction-oriented environment.
Com S 203. Careers in Computer
Science
(1-0) Cr. R. Half semester. F.S. Computer science as a profession. Introduction to
career fields open to computer science majors. Relationship of coursework to careers.
Presentations by computer science professionals. Offered on a satisfactory-fail grading
basis only.
Com S 207. Programming I
(3-1) Cr. 3. F.S. Prereq: Math 150 or placement into Math 140/141/142 or higher. An
introduction to computer programming using an object-oriented programming language.
Emphasis on basics of good programming techniques and style through extensive practice in
top-down design, writing, running, and debugging small programs. Procedural abstraction.
Use of abstract data types. This course is designed for nonmajors. Credit may not be
applied toward graduation for both 207 and 227.
Com S 208. Programming II
(3-1) Cr. 3. F.S. Prereq: 207, credit or enrollment in Math 151, 160, or 165. An
introduction to data structures and algorithm analysis. Recursion. List and file
processing. Dynamic data structures. Data abstraction and implementation. Emphasis on
design, writing, documenting and testing medium-sized programs. This course is designed
for nonmajors. Credit may not be applied toward the major.
Com S 227. Introduction to
Object-oriented Programming
(3-1) Cr. 3. F.S. Prereq: 104 or 107 or prior programming experience, credit or
enrollment in Math 165. An introduction to object-oriented design and programming
techniques. Symbolic and numerical computation. Recursion and iteration. Modularity
procedural and data abstraction, specifications and subtyping. Object-oriented techniques.
Imperative programming. Emphasis on principles of programming and object-oriented design
through extensive practice in design, writing, running, debugging, and reasoning about
programs. This course is designed for majors. Credit may not be applied toward graduation
for both 207 and 227.
Com S 228. Introduction to Data
Structures
(3-1) Cr. 3. F.S. Prereq: 227, Math 165, credit or enrollment in 104 and Math 166. An
object-oriented approach to data structures and algorithms. Object-oriented analysis,
design, and programming, with emphasis on data abstraction, inheritance and subtype
polymorphism. Abstract data type specification and correctness. Collections and associated
algorithms, including stacks, queues, trees, searching, sorting, graphs and file
processing. Analysis of algorithms. Emphasis on object-oriented design, writing and
documenting medium-sized programs. This course is designed for majors.
Com S 290. Independent Study
Cr. arr. F.S. Prereq: Permission of instructor. Offered on a satisfactory-fail grading
basis only.
H. Honors
Com S 309.
Software Development Practices
(3-1) Cr. 3. F.S. Prereq: 228, Engl 104. A practical introduction to methods for
managing software development. Process models, requirements analysis, structured and
object-oriented design, coding, testing, maintenance, cost and schedule estimation,
metrics. Programming projects. Nonmajor graduate credit.
Com S 311. Design and Analysis of
Algorithms
(3-1) Cr. 3. F.S. Prereq: 228, Math 166, Engl 104, and either 330 or Cpr E 310. Basic
techniques for design and analysis of efficient algorithms. Sorting, searching, graph
algorithms, computational geometry, string processing and NP-completeness. Design
techniques such as dynamic programming and the greedy method. Asymptotic, worst-case,
average-case and amortized analyses. Data structures including heaps, hash tables, binary
search trees and red-black trees. Programming projects. Nonmajor graduate credit.
Com S 321. Introduction to
Computer Architecture and Machine-Level Programming
(3-1) Cr. 3. F.S. Prereq: 228, Cpr E 210 and Engl 104. Introduction to computer
architecture and organization with emphasis on instruction sets, memory-hierarchy design,
and performance. Machine level programming including assembly language. Input/output and
interrupts. Nonmajor graduate credit.
Com S 330. Discrete Computational
Structures
(3-1) Cr. 3. F.S. Prereq: 228, Math 166 and Engl 104. Concepts in discrete mathematics
as applied to computer science. Logic, proof techniques, set theory, relations, graphs,
combinatorics, discrete probability and number theory. Nonmajor graduate credit.
Com S 331. Theory of Computing
(Same as Ling 331.)
(3-1) Cr. 3. F.S. Prereq: Math 166, Engl 104, and either 330 or Cpr E 310. Models of
computation: finite state automata, pushdown automata and Turing machines. Study of
grammars and their relation to automata. Limits of digital computation, unsolvability and
Church-Turing thesis. Chomsky hierarchy and relations between classes of languages.
Nonmajor graduate credit.
Com S 342. Principles of
Programming Languages
(3-1) Cr. 3. F.S. Prereq: 321, Engl 104, 330 or Cpr E 310, and either 309, 362 or 363.
Organization of programming languages emphasizing language design concepts and semantics.
Study of language features and major programming paradigms, especially functional
programming. Programming projects. Nonmajor graduate credit.
Com S 352. Introduction to
Operating Systems
(3-1) Cr. 3. F.S. Prereq: 321, Engl 104, and either 362 or 363. Survey of operating
system issues. Introduction to hardware and software components including: processors,
peripherals, interrupts, management of processes, threads and memory, deadlocks, file
systems, protection, virtual machines and system organization, and introduction to
distributed operating systems. Programming projects. Nonmajor graduate credit.
Com S 362. Object-Oriented
Analysis and Design
(3-0) Cr. 3. F.S. Prereq: 228. Object-oriented requirements analysis and systems
design. Design notations such as the United Modeling Language. Design Patterns. Group
design and programming with large programming projects. Nonmajor graduate credit.
Com S 363. Introduction to
Database Management Systems
(3-0) Cr. 3. Prereq: 228 and Engl 104. Relational, object-oriented, and semistructured
data models and query languages. SQL, ODMG, and XML standards. Database design using
entity-relationship model, data dependencies and object definition language. Application
development in SQL-like languages and general purpose host languages with application
program interfaces. Information integration using data warehouses, mediators and wrappers.
Programming Projects. Nonmajor graduate credit.
Com S 398. Cooperative Education
Cr. R. Required of all cooperative students. Prereq: Permission of department chair.
Students must register for this course prior to commencing each work period.
Com S 401.
Computer-Based Information Systems
(2-2) Cr. 3. F. Prereq: Engl 105, Sp Cm 212, an additional 9 credits in Com S at the
200 level or above and either 362 or 363. Systems concepts and implementations for
supporting production-oriented information systems; data and terminal access methods;
operating systems implementations; data base management systems implementations; data
dictionary considerations; data communication considerations; lab experiments and
implementations. Oral and written reports. Nonmajor graduate credit.
Com S 410. Research Projects
(3-0) Cr. 3. Prereq: Engl 105, Sp Cm 212, 21 credits in Com S, and permission of
instructor. Students enrolling in this course will work individually or in a small group
with a faculty member on mutually agreed-upon projects and research. Oral and written
reports. Intended primarily for students interested in graduate school or with a strong
interest in corporate research.
Com S 411. Specification and
Design in Software Engineering
(3-1) Cr. 3. Alt. F., offered 2001. Prereq: 311 or Cpr E 305, Engl 105, Sp Cm 212.
Principles and techniques for methodical construction of quality software. Software
requirements specification; programming paradigms; module specification techniques;
testing and validation procedures; proof of program correctness. Emphasis on team
projects. Written reports. Nonmajor graduate credit.
Com S 418. Introduction to
Computational Geometry (Dual-listed with 518.)
(3-0) Cr. 3. Alt. F., offered 2002. Prereq: 311. Introduction to data structures,
algorithms and analysis techniques for computational problems that involve geometry. Line
segment intersection. Polygon triangulation and visibility problems. Range queries. Point
location. Arrangements and duality. Voronoi diagrams and Delaunay triangulation. Convex
hulls. Other selected topics. Programming assignments.
Com S 421. Logic for Mathematics
and Computer Science (Same as Math 421.)
See Mathematics.
Com S 425. High Performance
Computing for Scientific and Engineering Applications (Same as Cpr E 425.)
(3-1) Cr. 3. Alt. S., offered 2002. Prereq: 311, 330, Engl 105, Sp Cm 212. Introduction to
high performance computing using different computing platforms including parallel
computers and workstation clusters. Discussion of performance, visualization, and software
development issues. Sample applications from science and engineering. Practical issues in
high performance computing will be emphasized via a number of programming projects and
case studies. Oral and written reports. Nonmajor graduate credit.
Com S 426. Practical Introduction
to Parallel Programming (Dual-listed with 526, same as Cpr E 426.)
See Computer Engineering. Nonmajor graduate credit.
Com S 430. Advanced Programming
Tools
(3-1) Cr. 3. Alt. F., offered 2002. Prereq: 311, 361, Engl 105, Sp Cm 212. Topics in
advanced programming techniques and tools widely used by industry (e.g., event-driven
programming and graphical user interfaces, standard libraries, client/server architectures
and techniques for distributed applications). Emphasis on programming projects in a modern
integrated development environment. Oral and written reports. Nonmajor graduate credit.
Com S 440. Principles and Practice
of Compiling (Dual-listed with 540.)
(3-1) Cr. 3. S. Prereq: 331, 342, Engl 105, Sp Cm 212. Theory of compiling and
implementation issues of programming languages. Programming projects leading to the
construction of a compiler targeting the Java Virtual Machine. Projects with different
difficulty levels will be given for 440 and 540. Topics: lexical, syntax and semantic
analyses, syntax-director translation, runtime environment and library support. Written
reports. Nonmajor graduate credit.
Com S 454. Distributed and Network
Operating Systems (Dual-listed with 554; same as Cpr E 454.)
(3-1) Cr. 3. Alt. S., offered 2003. Prereq: 311, 352, Engl 105, Sp Cm 212. Laboratory
course dealing with practical issues of design and implementation of distributed and
network operating systems and distributed computing environments (DCE). The client server
paradigm, inter-processes communications, layered communication protocols, synchronization
and concurrency control, and distributed file systems. Graduate credit requires additional
in-depth study of advanced operating systems. Written reports. Nonmajor graduate credit.
Com S 461. Database Systems
Concepts and Internals
(3-1) Cr. 3. F. Prereq: 311, Engl 105, Sp Cm 212 and either 362 or 363. Introduction
to database concepts. Data models. Algebraic, first order calculus based, and user
oriented query languages. Data storage, access methods, query execution, and transaction
management. Parallel and distributed databases. Special purpose databases. Information
integration using data warehouses, mediators, wrappers, and data mining. Oral and written
reports. Nonmajor graduate credit.
Com S 471. Computational Linear
Algebra and Fixed Point Iteration (Same as Math 471.)
See Mathematics. Nonmajor graduate credit.
Com S 472. Principles of
Artificial Intelligence (Dual-listed with 572.) (3-1) Cr. 3. F. Prereq: 311, Engl 105,
Sp Cm 212, Com S 330 or Cpr E 310, Com S 342, or comparable programming experience.
Specification, design, implementation, and selected applications of intelligent software
agents and multi-agent systems. Algorithmic models of problem solving, knowledge
representation, reasoning, planning, decision making, learning, perception, action,
communication and interaction. Reactive, deliberative, rational, adaptive, learning and
communication and interaction. Artificial intelligence programming. Graduate credit
requires a research project and a written report. Oral and written reports. Nonmajor
graduate credit.
Com S 474. Elements of Neural
Computation
(3-1) Cr. 3. S. Prereq: Engl 105, Sp Cm 212, Math 165, 330 or Cpr E 310 and Com S 228.
Introduction to theory and applications of neural computation with emphasis on machine
learning, data mining and knowledge discovery. Computational models of neurons and
networks of neurons. Neural associative memories, pattern classifiers, function
approximators, and learning algorithms. Bayesian learning, prototype based learning,
decision-tree learning, and related techniques. Reinforcement learning, stochastic search,
and genetic algorithms. Applications in Artificial Intelligence, intelligent agents,
cognitive and neural modeling, computational biology, data mining and knowledge discovery.
Hands-on experience is emphasized through the use of simulation tools and laboratory
projects. Oral and written reports. Nonmajor graduate credit.
Com S 476. Motion Strategy:
Algorithms and Applications (Dual-listed with 576.)
(3-1) Cr. 3. S. Prereq: Engl 105, Sp Cm 212, Com S 311 or M E 519, or consent of
instructor. Recent techniques for developing algorithms that automatically generate
continuous motions while satisfying geometric constraints. Applications in areas such as
robotics and graphical animation. Basic path planning. Kinematics, configuration space,
and topological issues. Collision detection. Randomized planning. Nonholonomic systems.
Optimal decisions and motion strategies. Coordination of Multiple Bodies. Representing and
overcoming uncertainties. Visibility-based motion strategies. Implementation of software
that computes motion strategies. Written reports. Nonmajor graduate credit.
Com S 481. Numerical Solution of
Differential Equations and Interpolation (Same as Math 481.)
See Mathematics. Nonmajor graduate credit.
Com S 484. Advanced Digital
Systems Design (Same as Cpr E 484.)
See Computer Engineering. Nonmajor graduate credit.
Com S 490. Independent Study
Cr. arr. F.S. Prereq: 6 credits in computer science, permission of instructor. No more
than 9 credits of 490 may be counted toward graduation. Offered on a satisfactory-fail
grading basis only.
H. Honors
Com S 495. Seminar
Cr. arr. F.S. Prereq: Permission of instructor. Offered on a satisfactory-fail grading
basis only.
Courses Primarily
for Graduate Students, Open to Qualified Undergraduate Students
Com S 502. Complex Adaptive
Systems Seminar (Same as CAS 502, E E 502.)
(1-0) Cr. 1. F.S. Prereq: Admissions to CAS minor. Understanding core techniques in
artificial life are based on basic readings in complex adaptive systems. Understand
techniques of complex system analysis methods including: Evolutionary computation, Neural
nets, Agent based simulations (Agent based Computational Economics). Large-scale
simulations are to be emphasized, e.g. power grids, whole ecosystems.
Com S 503. Complex Adaptive
Systems Concepts and Techniques (Same as CAS 503, E E 503.)
(3-0) Cr. 3. S. Prereq: Admission to CAS minor. Understanding of Computer Modeling of
Complex Systems, Complex adaptive systems approach to the study of evolutionary
computation, neural computation, cellular computation, computational models of immune
systems, complexity theory, computational economics, and other fields of application.
Com S 507. Numerical Solution of
Ordinary Differential Equations (Same as Math 507.)
See Mathematics.
Com S 511. Design and Analysis of
Algorithms
(3-0) Cr. 3. F. Prereq: 311, 330. A study of basic algorithm design and analysis
techniques. Advanced data structures, amortized analysis and randomized algorithms.
Applications to sorting, graphs, and geometry. NP-completeness and approximation
algorithms.
Com S 512. Formal Methods in
Software Engineering
(3-0) Cr. 3. S. Prereq: 311, 330. A survey of formal topics relevant to the software
life-cycle process including requirements, specifications, design, implementation,
testing, and maintenance. Implications of formal results for software prototyping and
automated testing.
Com S 518. Introduction to
Computational Geometry (Dual-listed with 418.)
Cr. 3. Alt. F., offered 2002. Prereq: 311 or permission of instructor. Introduction to
data structures, algorithms, and analysis techniques for computational problems that
involve geometry. Line segment intersection. Polygon triangulation and visibility
problems. Range queries. Point location. Arrangements and duality. Voronoi diagrams and
Delaunay triangulation. Convex hulls. Other selected topics. Programming assignments. A
scholarly report must be submitted for graduate credit.
Com S 524. Computer System
Architecture
(3-0) Cr. 3. F. Prereq: 352, or Cpr E 305. Fundamentals of computer design,
performance and cost, instruction set design, basic processor implementation techniques,
pipelining, memory design, caches, I/O systems, multiprocessor systems, interconnection
networks.
Com S 525. Numerical Analysis of
High Performance Computing (Same as Cpr E 525, Math 525.)
See Computer Engineering or Mathematics.
Com S 526. Introduction to
Parallel Algorithm and Programming (Dual-listed with 426, same as Cpr E 526.)
See Computer Engineering.
Com S 531. Theory of Computation
(3-0) Cr. 3. S. Prereq: 331. A systematic study of the fundamental models and
analytical methods of theoretical computer science. Computability, the Church-Turing
thesis, decidable and undecidable problems, and the elements of recursive function theory.
Time complexity, logic, Boolean circuits, and NP-completeness. Finite-state and pushdown
computation.
Com S 540. Principles and Practice
of Compiling. (Dual-listed with 440.)
(3-1) Cr. 3. S. Prereq: 331, 342, Engl 105, So Cm 212. Theory of compiling and
implementation issues of programming languages. Programming projects leading to the
construction of a compiler targeting the Java Virtual Machine. Projects with different
difficulty levels will be given for 440 and 540. Topics: lexical, syntax and semantic
analyses, syntax-director translation, runtime environment and library support. Written
reports.
Com S 541. Programming Languages I
(3-1) Cr. 3. F. Prereq: 342 or 440. Survey of the goals and problems of language
design. Formal and informal studies of a wide array of programming language features
including type systems, naming, state, and control. Creative use of functional,
object-oriented and declarative, concurrent, and other programming paradigms.
Com S 542. Programming Languages
II
(3-0) Cr. 3. Alt. F., offered 2001. Prereq: 440. Compilation theory and techniques,
emphasis on high-level software tools to facilitate compiler construction. Lexical
analysis, parsing, attribute grammars, code generation and optimization for traditional
and nontraditional languages and architectures.
Com S 549. Advanced Algorithms in
Computational Biology (Same as BCB 549, Cpr E 549.)
(3-0) Cr. 3. S. Prereq: 311 and either 228 or 208. Design and analysis of algorithms for
applications in computational biology, pairwise and multiple sequence alignments,
approximation algorithms, string algorithms including in-depth coverage of suffix trees,
semi-numerical string algorithms, algorithms for selected problems in fragment assembly,
phylogenetic trees and protein folding. No background in biology is assumed. Also useful
as an advanced algorithms course in string processing.
Com S 552. Principles of Operating
Systems
(3-0) Cr. 3. S. Prereq: 352. A comparative study of high-level language facilities for
process synchronization and communication. Formal analysis of deadlock, concurrency
control and recovery, and system performance. Protection issues including capability-based
systems, access and flow control, encryption, and authentication.
Com S 554. Distributed and Network
Operating Systems (Dual-listed with 454, same as Cpr E 554.)
(3-1) Cr. 3. Alt. S., offered 2003. Prereq: 311, 352, Engl 105, Sp Cm 212. Laboratory
course dealing with practical issues of design and implementation of distributed and
network operating systems and distributed computing environments (DCE). The client server
paradigm, inter-processes communications, layered communication protocols, synchronization
and concurrency control, and distributed file systems. Graduate credit requires additional
in-depth study of advanced operating systems. Written reports.
Com S 561. Principles of Database
Systems
(3-0) Cr. 3. S. Prereq: 311, 363. Introduction to database system concepts. Database
design. Data models. Algebraic, first order calculus based, and user oriented query
languages. Data storage and access methods. Query processing and optimization. Transaction
management, concurrency control, and crash recovery. Database security. Parallel and
distributed databases. Special purpose databases. Data warehousing and data mining.
Com S 572. Principles of
Artificial Intelligence (Dual-listed with 472.)
(3-1) Cr. 3. F. Prereq: 311, 330 or Cpr E 310, Com S 342 or 362 or comparable programming
experience. Specification, design, implementation, and selected applications of
intelligent software agents and multi-agent systems. Algorithmic models of problem
solving, knowledge representation, reasoning, planning, decision making, learning,
perception, action, communication and interaction. Reactive, deliverative, rational,
adaptive, learning and communicative agents. Artificial intelligence programming. Graduate
credit requires a research project and a written report. Oral and written reports.
Com S 573. Machine Learning
(3-1) Cr. 3. Alt. S., offered 2003. Prereq: 311, 362 or 363. Algorithmic models of
learning. Design, analysis, implementation and applications of learning algorithms.
Learning of concepts, classification rules, functions, relations, grammars, value
functions, models, skills, behaviors and programs. Agents that learn from observation,
examples, instruction, induction, deduction, reinforcement and interaction. Computational
learning theory. Data mining and knowledge discovery using artificial neural networks,
decision trees, Bayesian learning, association rules, genetic algorithms, dimensionality
reduction, feature selection and visualization. Learning from heterogeneous, distributed,
dynamic data and knowledge sources. Learning in multi-agent systems. Selected applications
in automated knowledge acquisition, pattern recognition, program sentences, bioinformatics
and Internet-based information systems.
Com S 576. Motion Strategy:
Algorithms and Applications (Dual-listed with 476.)
(3-1) Cr. 3. Alt. S., offered 2002. Prereq: Engl 105, Sp Cm 212, Com S 311 or M E 519, or
consent of instructor. Recent techniques for developing algorithms that automatically
generate continuous motions while satisfying geometric constraints. Applications in areas
such as robotics and graphical animation. Basic path planning. Kinematics, configuration
space, and topological issues. Collision detection. Randomized planning. Nonholonomic
systems. Optimal decisions and motion strategies. Coordination of multiple bodies.
Representing and overcoming uncertainties. Visibility-based motion strategies.
Implementation of software that computes motion strategies. Written reports.
Com S 586. Computer Network
Architectures
(3-0) Cr. 3. F. Prereq: 511, 552 or Cpr E 489. Design and development of advanced
computer communication networks: distributed and failsafe routing in large and dynamic
networks, gateways and interconnection of heterogeneous networks, flow control and
congestion avoidance techniques, network architectures, communication protocol standards,
formal specification and verification of protocols, implementation and conformance testing
of protocol standards, network security and web computing.
Com S 590. Special Topics
Cr. arr. Prereq: Permission of instructor. Offered on a satisfactory-fail grading
basis only.
Com S 591. Graduate Orientation
Seminar
(1-0) Cr. 1. F. Prereq: Graduate classification. Topics include an introduction to ISU
computing facilities, M.S. and Ph.D. degree requirements, career choices, ethics,
literature searching, technical presentations, technical writing, ethics in writing, and
discussion of research interests and projects by members of the graduate faculty. Required
by the M.S. degree and is taken during the first semester of a normal M.S. program.
Offered on a satisfactory-fail grading basis only.
Com S 594. Computational Molecular
Biology (Same as Gen 594.)
See Genetics.
Com S 596. Genomic Data Processing
(Same as Gen 596.)
See Zoology and Genetics.
Courses for Graduate Students
Com S 610. Seminar
Cr. arr. Offered on a satisfactory-fail grading basis only.
Com S 611. Advanced Topics in
Analysis of Algorithms
(3-0) Cr. 3. Alt. S., offered 2003. Prereq: 511, 531. Advanced algorithm analysis and
design techniques. Graph algorithms, algebraic algorithms, NP-completeness, probabilistic
and parallel algorithms, intractable problems.
Com S 612. Parallel and
Distributed Algorithms
(3-0) Cr. 3. Alt. S., offered 2002. Prereq: 511 or 531. An advanced course in the
theory of parallel and distributed computation. Models of computation, Algorithm paradigms
and analysis, Lower bounds and impossibility results. Parallel sorting, graph, geometric,
algebraic and number-theoretic algorithms. The parallel computation Thesis. P-complete
problems and the class NC. Synchronous, asynchronous, partially timed distributed systems.
Consensus, mutual exclusion, and resource allocation. Wait-free register implementations.
Shared memory and network models. Fault-tolerance. Randomized computation.
Com S 624. Advanced Topics in
Computer Architecture
(3-0) Cr. 3. Alt. S., offered 2002. Prereq: 524. Current topics in computer
architecture design and implementation. Advanced pipelining, cache and memory design
techniques. Interaction of algorithms with architecture models and implementations.
Tradeoffs in architecture models and implementations.
Com S 625. Issues in Parallel
Programming and Performance
(3-0) Cr. 3. Alt. S., offered 2003. Prereq: 511, 524. Parallel solutions of numerical
and non-numerical problems, implementation of parallel programs on parallel machines,
performance and other computational issues in parallel programming.
Com S 631. Computational
Complexity
(3-0) Cr. 3. Alt. F., offered 2002. Prereq: 531. Advanced study in the quantitative
theory of computation. Time and space complexity of algorithmic problems. The structure of
P, NP, PH, PSPACE, and other complexity classes, especially with respect to
resource-bounded reducibilities and complete problems. Complexity relative to auxiliary
information, including oracle computations and relativized classes, randomized algorithms,
advice machines and Boolean circuits. Kolmogorov complexity and randomness.
Com S 632. Circuit Complexity and
Parallel Complexity
(3-0) Cr. 3. Alt. S., offered 2003. Prereq: 531. An advanced course in the complexity
of Boolean functions and parallel computation. General circuits, bounded-depth circuits,
threshold circuits and monotone circuits. Parallel complexity, including uniform circuits,
alternating Turing machines and parallel RAMs. Additional topics chosen from communication
and sorting networks, communication complexity, VLSI complexity, cellular automata, neural
networks and general purpose parallel architectures.
Com S 633. Randomness in
Computation
(3-0) Cr. 3. Alt. S., offered 2002. Prereq: 531. Advanced study of the role of
randomness in computation. Randomized algorithms, random oracles, and probabilistic
complexity classes. One-way functions and pseudorandom generators. Kolmogorov complexity,
algorithmic information theory and algorithmic randomness. Applications chosen from
cryptography, interactive proof systems, computational learning, lower bound arguments,
mathematical logic and the organization of complex systems.
Com S 641. Semantic Models for
Programming Languages
(3-0) Cr. 3. Alt. S., offered 2002. Prereq: 531, 541. Operational and other
mathematical models of programming language semantics. Type systems and their soundness.
Application of semantics to program correctness, language design and translation.
Com S 652. Topics in Distributed
Operating Systems
(3-0) Cr. 3. Alt. F., offered 2001. Prereq: 552. Concepts and techniques for network
operating systems: high-level languages and communication protocols, name and object
management, concurrency control for consistent distributed data, design of reliable
software, protection, performance analysis.
Com S 661. Advanced Topics in
Database Systems
(3-0) Cr. 3. Alt. F., offered 2002. Prereq: 461 or 561. Advanced topics chosen from
the following: Database design. Data models. Query systems. Query optimization. Incomplete
information. Logic and databases. Multimedia databases. Temporal, spatial and belief
databases. Semistructured data. Concurrency control. Parallel and distributed databases.
Information retrieval. Data warehouses, wrappers, mediators, and data mining.
Com S 672. Computational Models of
Learning
(3-0) Cr. 3. Alt. S., offered 2002. Prereq: 572 or 472 or 474. Advanced study of
artificial intelligence, neural, statistical, syntactic, evolutionary models and
algorithms for machine learning. Inductive learning, classification, grammar induction,
function approximation, program induction, inductive logic programming. Computational
learning theory (PAC, maximum likelihood, minimum description length and related
frameworks). Deductive learning, reinforcement learning, discovery and data mining.
Selected applications.
Com S 673. Advanced Topics in
Artificial Intelligence and Cognitive Modeling
(3-0) Cr. 3. Alt. S., offered 2003. Prereq: 572 or 472 or 474. Advanced study of
selected topics from among the following: distributed intelligent information networks,
intelligent systems in computational biology and bioinformatics, intelligent agents in
multi-agent systems, neural and evolutionary computation.
Com S 699. Research
Offered on a satisfactory-fail grading basis only.
|