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.