- CS 403 - Independent Study
Provides an opportunity for qualified students to pursue special topics under the guidance of a department staff member. Prerequisite: permission of the department. (U-G)(3)
- CS 411 - Internship
Supervised work experience directly related to major area of study. Prerequisites: junior or senior standing and permission of department. (U)(3)
- SE 411 - Internship
Supervised work experience in software engineering. Prerequisites: SE361, SE461, CS485, and one of SE462 orCS382 or CS383. (U)
- CS 431 - Theory of Operating Systems
Introduces the major concept areas of operating systems principles, including the study of process, storage, and processor management; performance issues; distributed systems; and protection and security. Prerequisites: CS 248, CS 252, and CS 321. (U-G) (3)
- CS 433 - Database Systems
An introduction to the theory, design and use of modern database management systems. Topics include the relational, entity-relationship, and object-oriented data models, query languages such as SQL, file systems, concurrency and deadlock, reliability, security, and query optimization. Prerequisites: CS 248, CS 252, and CS 321. (U-G) (3)
- CS 435
An introduction to computer networks from a layered point of view beginning with the physical and data link layers, and progressing through the medium access layer, the network layer, the transport layer, and the applications layer. Specific content includes Ethernet, TCP/IP, and the Web. Students will write client/server programs that communicate across a network. Prerequisite: CS 321. (U-G) (3)
- CS 441
Emphasizes the principles and programming paradigms that govern the design and implementation of contemporary programming languages. Includes the study of language syntax, processors, representations, and paradigms. Prerequisites: CS 252, CS 321, and SE 361. (U-G) (3)
- CS 451 - Theory of Computation
Basic theoretical principles of computer science that are embodied in formal languages, automata, computability and computational complexity. Includes regular expressions, context-free grammars, Turing machines, Church's thesis, and unsolvability. Prerequisites: CS 252, CS 321 and CS 351. (U-G)(3)
- CS 455
Solutions of equations and systems, error analysis, numerical differentiation and integration, interpolation, least squares approximation, numerical solution of ordinary differential equations. Prerequisites: MA 107 and CS 142 or equivalent. (U/G)(3)
- SE 461
Techniques, principles, and processes for developing large, complex software systems: Systems analysis and specification, modeling, design patterns, implementation, validation and verification, quality assurance and project management. A team-based software project is required. Prerequisite: SE361. (U-G)(3)
- SE 462
Fundamental concepts, principles, techniques and tools for the maintenance and evolution of legacy software systems. Software maintenance and evolution process models, reengineering, reverse engineering, and program comprehension tools. A modernization project is required. Prerequisite: SE361. (U-G)(3)
- CS 473 - Topics in Computer Science: User Interfaces
In-depth study of special topics not covered in regular courses. Prerequisite: permission of department. (U-G) (3)
- SE 473
In-depth study of special topics not covered in regular courses. Prerequisite: Permission of the department. (U-G)
- CS 482
- CS 485 - Computer Ethics
Ethical and social issues in computing with emphasis on professional responsibilities, risks and liabilities, and intellectual property. Prerequisite: CS 142 and sophomore standing. (U-G)(1)
- CS 490
An introduction to research methodology in computer science, including an overview of computer science literature and techniques for presenting and evaluating research results. Prerequisites: CS321, CS351, and SE361, or junior standing and permission of the department. (U)(2)
- CS 491
Techniques for giving oral presentations of research results in computer science. Prerequisite: CS490 or permission of the department. (U)(1)
- CS 499 - Honors Thesis
(U)(3)