Computer Science Courses
-
Elementary algorithmic problem solving: computational models; sequential, iterative, and conditional operations; parameterized procedures; array and list structures; basic efficiency analysis.
-
Formulation of problems and top-down design of programs in a modern structured language for their solution on a digital computer.
-
Advanced programming techniques, data structures, recursion, sorting and searching, and basics of algorithm analysis.
-
Advanced data structures, object oriented programming concepts, concurrency, and program design principles.
-
Debugging tools, scripting languages, UNIX programming tools, introduction to graphical user interface programming.
-
Comprehensive programming practice using C.
-
Computer systems architecture; logic, data representation, assembly language, memory organization and trends.
-
Finite automata, regular sets, pushdown automata, context-free language, Turing machines and the halting problem.
-
Software Engineering Principles I. Introduction to software engineering; requirements analysis, definition, specification including formal methods; prototyping; design including object and function oriented design.
-
Programming Language Design. Credit 3. Design concepts of high-level programming languages; survey of existing languages, experience using some languages; formal specification of syntax and semantics.
-
Implementation of systems programs, concepts of computer operating systems; laboratory experience in using operating system facilities.
-
A study of the ethical and societal issues related to computers and computer networks. Computers as enabling technology, computer crime, software theft, privacy, viruses and worms.
-
A study of the ethical and societal issues related to computers and computer networks. Computers as enabling technology, computer crime, software theft, privacy, viruses and worms.
-
Laboratory/group for large-scale software development, including: Requirements analysis, estimation, design, verification, and project management.
-
Dependable software systems; software verification and validation, testing; CASE environments; software management and evolution.
-
Laboratory/Group Design Project for large scale software development, requirements analysis, estimation, design, verification techniques.
-
Practical topics in network security; policy and mechanism, malicious code; intrusion detection, prevention, response; cryptographic techniques for privacy and integrity; emphasis on tradeoffs between risk of misuse, cost of prevention, and societal issues; concepts implemented in programming assignments.
-
Computer security concepts, models and mechanisms, encryption technology, formal models, policy and ethical implications. Credit not granted for both Cpt S 427 and 527.
-
Fundamentals of numerical computation; finding zeroes of functions, approximation and interpolation; numerical integration (quadrature); numerical solution of ordinary differential equations.
-
Hands-on experience with neural network modeling of nonlinear phenomena. Application to classification, forecasting, identification and control.
-
Basic issues of knowledge representation and automated problem solving; introduction to the theory and applications of expert systems technology.
-
Raster operations; transformations and viewing; geometric modeling; visibility and shading; color.
-
Concepts and methodologies of engineering, social and behavioral sciences to address ergonomic, cognitive, social and cultural factors in the design and evaluation of human-computer systems.
-
Introduction to computer animation production, animation programming techniques, simulation, and dynamic visualization.
-
Analysis of data structures and algorithms; computational complexity and design of efficient data-handling procedures.
-
Introduction to database concepts, data models, database languages, database designs, implementation issues.
-
Design of lexical analyzers, syntactic analyzers, intermediate code generators, code optimizers and object code generators.
-
Concepts and implementation of computer networks; architectures, protocol layers, internetworking and addressing case studies.
-
Mobile wireless networks; threat models, authentication, and detection mechanisms for security attacks, network architecture requirements of security, performance analysis of the impact of security management on the quality of service of the network.
-
Operating systems, computer architectures, and their interrelationships in micro, mini and large computer systems.
-
Concepts of distributed systems; naming, security, networking, replication, synchronization, quality of service; programming middleware.
-
The design and development of real-time and dedicated software systems with an introduction to sensors and actuators. Cooperative course taught by WSU, open to UI students (CS 404).
-
Fundamentals of biological sciences and biotechnology for engineers and computer scientists
-
Intensive introduction to the python language; user interface, building and using extension modules; C interfacing; construction of a major project.
-
Current topics in Computer Science or Software Engineering.
-
1 Faculty research interests, departmental computer systems, computer science research, report preparation. S, F grading.
-
Categories as theories; formal approaches to specifications and homomorphisms of computational structures.
-
Discrete structures, automata, formal languages, recursive functions, algorithms, and computability.
-
Syntax; operational and denotational sematics. Cooperative course taught by WSU, open to UI students (CS 510).
-
Basic principles of software reuse, compositional and generative reuse, with specific topics selected from current literature, reverse engineering.



