CS - Computer Science (CS)
CS 135. Computer Skills for Problem-Solving. (3 Credits)
Using personal computers as effective problem-solving tools, this course will enhance analytical thinking and abstraction skills. Topics include problem specification, problem-solving techniques, and the interpretation of results to problems from scientific, business, and social domains. Students will utilize productivity software, the Internet, and programming principles to foster an understanding of the impact of computing technology on society and culture. (Fall, Spring, Summer)
CS 155. Computer Science I. (3 Credits)
An introduction to the theoretical foundations of computer science, the components of algorithms and the representation of these components using a high-level programming language. Special emphasis on software development and an introduction to object-oriented programming. Prerequisites: CS 135 and MA 112, or CS 135 and MA 115, or MA 125 w/min grade of B, or ACT Math 28 or higher (Fall, Spring, Summer)
CS 245. Introduction to Discrete Structures. (3 Credits)
Sets, functions and relations, basic logic, proof techniques, basics of counting, graphs and trees, discrete probability and number systems with applications to various areas of computer science. Prerequisite: MA 112; Prerequisite or Correquisite: CS 155.(Fall).
CS 249. Introduction to Information Security. (3 Credits)
An introduction to both the technical and management aspects of information security. The course will provide a foundation for understanding the principles of protecting information assets, determining the levels of protection required, response, forensics, and recovery from security incidents, and developing a useful information security system with appropriate defenses, intrusion detection, auditing, and reporting. Also cross-listed as CIS 249 but creditable only in the field for which registered. Prerequisites: CS 135 and MA 112 or any Area lll math included in the General Education Component listed under Requirements for the Bachelor of Business Administration Degree. (Fall, Spring).
CS 255. Computer Science II. (3 Credits)
Continuation of CS 155 with emphasis on advanced programming techniques, including recursion and pointers. Introduction to elementary data structures such as queues, stacks, lists, strings, and trees. Discussion of professional ethics. Programming methodology with emphasis on object-oriented programming. Prerequisite: C or higher in CS 155. (Fall, Spring; Summer on sufficient demand)
CS 310. Computer Organization and Assembly Language Programming. (3 Credits)
Overview of computer hardware organization, machine representation of numbers and characters, memory system organization and architecture. Overview of system software. Programming experience in assembly language. Prerequisite: CS 245. (Spring).
CS 311. computer Architecture. (3 Credits)
Review of Boolean algebra and the elements of logic design including a laboratory experience. Study of the theory and design of register transfer, bus structure, arithmetic unit, control unit and memory. Consideration of design options including array processors, stack-based processors, pipelining, multiprocessing and distributed systems. Prerequisite: CS 310. (Fall)
CS 315. Graphical User Interface Programming. (3 Credits)
Introduction to programming for modern graphical user interfaces using a visual programming tool. Topics include integrated development environments, object-oriented design, use of components and rapid application development. Prerequisite: CS 255. (Spring, even-numbered years).
CS 325. Programming for the Web. (3 Credits)
Introduction to programming for the World Wide Web, using current technology. Prerequisite: CS 255. (Fall, odd-numbered years).
CS 335. New Developments in Programming. (3 Credits)
An introduction to a topic of current interest in the field of Computer Science. Prerequisite: CS 255. (Spring, odd-numbered years).
CS 355. Data Structures and Algorithms. (3 Credits)
Introduction to the analysis of algorithms with regard to time and space. Methods of sorting and searching. Basic design techniques like divide and conquer, dynamic programming and backtracking. Algorithms for manipulating trees and graphs with platform independent implementation. Prerequisite: C or higher in CS 255. (Fall, Spring)
CS 360. Computer Networking. (3 Credits)
Introduction to computer networking including basic networking concepts and components, architecture, protocols, server types, network operating systems and network security. Prerequisites: CS 245 and CS 255. (Spring, odd-numbered years).
CS 390. Software Development in Ada. (3 Credits)
A study of software development techniques with the use of the programming language Ada. Emphasis on abstraction, generic subprograms and packages. Prerequisite: CS 255. (Offered on sufficient demand)
CS 410W. Programming Languages. (3 Credits)
Formal study of programming language concepts: syntax; characteristics of grammars such as context-free and ambiguous; Backus-Naur Form; organization of programming languages such as block structure, list processing, etc. Prerequisite: CS 355. (Spring)
CS 420. Operating Systems. (3 Credits)
History, overview, and principles of operating systems with emphasis on process, memory and device management, concurrency, system performance, file systems, and security. Contemporary operating systems will be investigated. Multi-processors, real-time and embedded systems, and distributed processing will also be presented. Prerequisites: CS 310, Prerequisite or Corequisite CS 355 and MA 345. (Fall)
CS 421. Automata Theory and Compiler Construction. (3 Credits)
Definition of formal grammars, mathematical machines and their relationships. Description of compiler writing techniques and their application on a simple language. Prerequisite: CS 355. (Spring, even-numbered years).
CS 430. Design and Analysis of Algorithms. (3 Credits)
Advanced asymptotic analysis of algorithms utilizing mathematical modeling with an emphasis on efficient methods for searching, sorting, trees, and graphs. Classic algorithm design techniques such as greedy, divide and conquer, dynamic programming, backtracking, and randomized algorithms will be investigated and analyzed. Study of the classification of the computational difficulty of problems: i.e. NP, intractable, and unsolvable. Pre-requisites: C or higher in both CS 245 and CS 355. (Fall odd-numbered years)
CS 447. Theory and Applications of Database Systems. (3 Credits)
Introduction to database systems, including the history of the development and basic concepts of the major types of database systems, inquiry systems and experience with a database model. Prerequiste: CS 255. (Fall, even-numbered years).
CS 455. Software Engineering. (3 Credits)
A study of all the phases in a software systems life cycle including analysis, specification, design, implementation, testing, and maintenance. A continued emphasis on problem solving concepts integrated within the treatment of the software life cycle, requirements specifications, and verification and validation issues. Prerequisite: CS 355 and Senior standing. (Spring)
CS 470. Artificial Intelligence. (3 Credits)
A survey of topics including knowledge representation and reasoning, expert systems, informed and uniformed search algorithms, search and constraint satisfaction, and the use of artificial intelligence languages. Prerequisite: CS 355. (Fall, even-numbered years)
CS 480. CS Internship. (3 Credits)
A minimum 150-hour work related experience in the University or other public or private organization where the student will have hands-on experience in the day-to-day operation, development, or management of computer systems. The internship must occur in a work environment related to the computer science discipline. Application process is coordinated through Career Center. Must be a junior or senior and have a 3.0 overall grade point average. Prerequisites: CS 255 (with a grade of C or higher) and departmental approval.(Fall, Spring, Summer).
CS 490. Senior Seminar. (3 Credits)
Computer science topics selected according to the needs of the students. Prerequisite: departmental approval. (Offered on sufficient demand)