C S 102. Introduction to Computer Science. 3 Hours.
History of computers and of their applications in a variety of fields, both as PCs and as embedded systems. Overview of programming paradigms. Overview of today's most dynamic computer-related technologies, including communication networks and the Internet. A modern programming language is used to present types of problems that can be solved with computers, the underlying algorithms, and the fundamental limitations. We adopt early in this course the information-centric viewpoint, exploring the role of computers in all stages of the information life-cycle. Students apply their newly-acquired programming skills to performing basic information-processing tasks. Course fee $30. Lab fee $15.
C S 110. Procedural Programming. 3 Hours.
Introduces the fundamental concepts of structured programming. Topics include software development and methodology, data types, control structures, functions, arrays, and the mechanics of running, testing, and debugging. Prerequisite: two years of high school algebra or MATH 107. Lab fee $15, Course fee $30.
C S 221. Object Oriented Programming. 3 Hours.
Applies the object-oriented programming paradigm using one or more object oriented programming languages, focusing on the definition and use of classes, interfaces, data encapsulation, inheritance, and polymorphism. An introduction to object-oriented design is presented. Prerequisite: C S 110. Lab fee $15. Course fee $15.
C S 230. GUI Development. 3 Hours.
The principles and techniques used to develop GUI based applications are covered. These include such topics as window creation, dialog boxes, menus, and the use of controls. An introduction to basic graphic techniques will be presented. Prerequisites: C S 221. Course fee $15, Lab fee $15.
C S 231. Introduction to Java Programming. 3 Hours.
An introduction to the Java programming language. The core elements of programming are covered including control statements, primitive data elements and structures, program structure using methods, basic input and output, and the software development process. The essential object oriented programming language constructs are introduced, focusing on the definition and use of classes, interfaces, data encapsulation, inheritance, and polymorphism. Prerequisites: CS 102 or CS 110.
C S 241. Data Structures. 3 Hours.
Application of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Prerequisites: 3 hours of programming language and concurrent enrollment in MATH 310. Lab fee $15. Course fee $15.
C S 248. Introduction Digital System Design. 4 Hours.
Combinational and sequential digital system design techniques; design of practical digital systems. Prerequisite: PHYS 242 or concurrent registration. Credit for both C S 248 and ENPH 248 will not be awarded. Course fee $15. Lab fee $15.
C S 304. Topics in Computer Science. 3 Hours.
A study of selected topics in computer systems including programming languages, programming techniques, or other specialized topics. Normally only one major topic will be considered per offering. May be repeated once for credit as topics vary. Prerequisite: 6 hours of C S or approval of department head. Lab fee $15. Course fee $15.
C S 330. Game, Graphics and GUI Development. 3 Hours.
Covers the principles and techniques used to develop GUI-based applications: window creation, dialog boxes, menus and controls. Introduces 2D and 3D graphics. Introduces the main building-blocks of game design, from a programmer's perspective, such as character animation, scene navigation, shading, modeling, game rules. Prerequisites: 3 hours of object-oriented programming and CS 241.
C S 343. Computer Architecture. 4 Hours.
Hardware and software structures found in modern digital computers. Instruction set architecture, hardwired design of the processor, assembly language programming, microprogramming, I/O and memory units, analysis of instruction usage, and hardware complexity. Credit for both C S 343 and ENPH 343 will not be awarded. Prerequisite: C S 248 or ENPH 248. Course fee $15. Lab fee $15.
C S 344. Computer Applications in Analysis. 3 Hours.
Introduction to FORTRAN computer language, solutions to specific and general polynomial equations, iteration techniques, evaluation and approximation of limits, approximate integration, series, differential equations, error analysis, linear systems, or other selected numerical solution techniques. Prerequisite: MATH 209. Lab fee $15.
C S 345. Computer Graphics. 3 Hours.
Graphics architectures and data structures, color, matrix-based geometry in 2 and 3 dimensions, clipping, segmentation, interaction handling, visible surface determination, scene modeling and animation. Prerequisite: C S 241; Co-requisite: MATH 332. Lab fee $15.
C S 351. Embedded Systems. 3 Hours.
The design and development of embedded applications and systems. Hardware/software interface, embedded operating systems, and support software. Prerequisite: C S 343. Lab fee $15.
C S 361. Analysis of Algorithms. 3 Hours.
Mathematical tools for algorithm analysis, stacks, queues, lists, trees, heaps, dictionaries, sorting, sets, greedy method, divide-and-conquer, dynamic programming, graphs, network flow, distributed algorithms for networking, pattern matching. Prerequisites: C S 241, MATH 209. Lab fee $15.
C S 380. Operating Systems. 3 Hours.
Introduction to the design and development of operating systems. Analysis of current system software technology, including process management, memory organization, security, and file systems. Prerequisites: C S 241, 343. Lab fee $15.
C S 389. Introduction to Software Engineering. 3 Hours. [WI]
Object oriented software development process, requirements analysis, software design concepts and methodologies, object oriented programming, and debugging. Lab fee $15. Prerequisites: CS231 and CS241.
C S 401. Database Theory and Practice. 3 Hours.
Database concepts and structures. File and data management principles underlying database construction. Fundamental types of database models, with emphasis on relational databases as well as on major nonrelational forms. Practice in analysis, design, development, and optimization of working database applications on a variety of problems. Small and large system databases will be considered. Credit for both CIS 401 and C S 401 will not be awarded. Prerequisite: 3 hours programming language or approval of department head. Lab fee $15.
C S 441. Microprocessor System Design. 4 Hours.
Introduction to microprocessors; 8/16 bit single board computer hardware and software designs; chip select equations for memory board design, serial and parallel I/O interfacing; ROM, static and dynamic RAM circuits for no wait-state design; assembly language programming, stack models, subroutines and I/O processing. Credit for both C S 441 and ENPH 441 will not be awarded. Prerequisite: ENPH 248 or C S 248. Course fee $15. Lab fee $15.
C S 451. Distributed Applications. 3 Hours.
A study of the architecture and design of distributed applications. N-tier application and supporting technologies are investigated including client/server architecture, supporting languages, transaction processing, and distribution of processes. Prerequisites: C S 389, 401. Lab fee $15.
C S 478. Computer Networks. 4 Hours. [WI]
Bottom-up presentation of computer network hardware and protocols, going through the five main layers: physical, data link, network, transport, and application. Special emphasis is placed on the medium access control sub-layer for local area networks, IP routing, security and modern wireless access technologies. Prerequisite: C S 221, 241, and MATH 209. Lab fee $15. Course fee $50.
C S 486. Computer Science Problems. 1-4 Hours.
Special problems in computer science. Work may be either theory or laboratory. May be repeated with the approval of the department head for additional credit when fewer than four credits have been earned. Prerequisite: 9 hours of computer science.
C S 490. Advanced Topics in Computer Science. 3 Hours.
Special topics in computer science, such as artificial intelligence, security, robotics, human-computer interaction. May be repeated for additional credit with approval of the department head. Prerequisites: 9 hours of computer science. Lab fee $15.
C S 530. Simulation. 3 Hours.
Introduction to simulation with emphasis on simulation methodology, random number generation, time flow mechanisms, sampling techniques, and validation and analysis of simulation models and results. Simulation languages and their applications will be investigated. Prerequisites: MATH 131, C S 241, and Graduate standing. Lab fee $15.
C S 560. Artificial Intelligence. 3 Hours.
Introduces representations, algorithms and architectures used to build intelligent systems. Predicate calculus, state-space representation and search, heuristic search, knowledge-based problem-solving, symbol-based and connectionist machine learning, intelligent agents, robotics. Prerequisites: MATH 131, C S 241. Lab fee $15.