| CS 4120 |
Professional Field Experience |
1-3 hrs. |
|
This course allows students to receive academic credit for professional work experience in the computing field. The work activities must require significant computer science knowledge and education. This course may not be taken for work already completed and may not be used for computer science major or minor elective. It is a credit/no credit course and may be taken for a maximum of three credit hours.
|
|
|
CS 4310 |
Design and Analysis of Algorithms |
3 hrs. |
|
A continuation of the study of data structures and algorithms. It provides a theoretical foundation in designing algorithms. The focus is on the advanced analysis of algorithms and on how the selections of different data structures affect the performance of algorithms. Algorithmic paradigms such as divide and conquer, greedy method, dynamic programming, backtracking and branch, and bound are covered. B-trees and 2-3 search trees and a variety of graph structures are discussed along with their applications to algorithm implementation. Algorithms will be analyzed for their complexity. NP-completeness will be introduced.
|
|
|
CS 4430 |
Database Management Systems |
3 hrs. |
|
This course presents the fundamental concepts and practices of database management systems. The database environment and administration are defined along with the roles of the database administrator and the data dictionary. Conceptual and logical models are discussed. The three approaches — relational, hierarchical and network — are briefly described. Data access techniques such as sequential and multi-level sequential indexes, linked lists, inverted files and hashing are briefly reviewed. A few commercial systems will be surveyed. Security, reliability and integrity will be studied. Students will acquire experience with the various topics by applying them to an actual database system. Students will also write application programs which use the data base system. Not for computer science majors/minors. A student may not receive credit for both CS 4430 and CS 5430.
|
|
|
CS 4540 |
Operating Systems |
3 hrs. |
|
The internal and external views of computer operating systems are presented. A historical survey of the development and growth of operating systems is given. Fundamentals of systems and system design are stressed. Basic concepts and terminology are emphasized. Processes, communication and synchronization, shared resources, resource allocation, memory management, file management, and protection are discussed. Applications to real systems are investigated to motivate the ideas presented. Students build or run simulations and modify the internals of a working operating system.
|
|
|
CS 4800 |
Theory of Computation |
3 hrs. |
|
Provides an introduction to the theory of computation in the framework of programming languages. Basic definition and concepts dealing with algorithms, sets, relations, functions, induction, operations on functions and cardinality are covered. Primitive and partial recursive functions are defined and their properties treated with application to coding techniques. The chomsky hierarchy of languages including recursive and recursively enumerable sets and their acceptors, is introduced. Students are assigned theoretical as well as implementation-oriented problems.
|
|
|
CS 4850 |
Programming Language |
3 hrs. |
|
Properties of various programming languages including scope of declarations, storage allocation, control structures and formal parameters will be studied, as well as run time representation of programs and data structures. A study of compilers and interpreters will be made. This will include loading, execution, storage allocation, symbol tables, lexical scan, parsing and object code generation. The relation of automata to formal languages and grammars will be discussed.
|
|
|
CS 4900 |
Software Systems Development I: Requirements & Design |
3 hrs. |
|
This course is the first of a capstone project sequence required for all computer science majors. Software engineering and its methodologies are explained. Various software life cycle models are introduced. Students are placed into teams and assigned to a client and project. The teams create a project plan, analyze and specify requirements for their project and develop a design. Prototype demonstrations and periodic oral and written progress reports are required to help assure steady progress. Individuals and teams produce a variety of documents throughout the course. Documents include a management plan, project abstracts, a requirements specification, a user interface prototype document, and a design document consisting of architectural and detailed design elements. This course is approved as a writing-intensive course, which may fulfill the baccalaureate-level writing requirement of the student’s curriculum. Course prerequisite CS 3310.
|
|
|
CS 4910 |
Software Systems Development II: Implementation & Testing |
2 hrs. |
|
This course is the second of a capstone project sequence required for all computer science majors. Students are placed into teams and assigned to complete an existing project for a client. The teams implement and debug code according to a design produced earlier. They produce a testing plan, carry out testing, record test results and summarize them. Prototype demonstrations and periodic progress reports are required to help assure steady progress. Individuals and teams produce a variety of documents throughout the course. These documents include a testing plan, a testing log, a summary of testing, a maintenance manual and a user manual. Teams also deliver a public demonstration at the end of the course. Course prerequisite CS 4900.
|
|
|
CS 4950 |
Topics in Computer and Information Science |
3 hrs. |
|
The content of this course varies. It is intended to introduce the student to significant topics which are not normally offered as separate courses. This course may be taken more than once with the approval of the student’s advisor.
|
|
|
CS 4980 |
The Computer Science Profession |
1 hrs. |
|
This course examines the role of the computer scientist in society. Topics covered are designed to promote awareness of professional, ethical, and societal issues in the field of computer science.
|
|
|
CS 4990 |
Undergraduate Research in Computer Science |
1-3 hrs. |
|
There is no description available for this course at this time.
|
|
|
CS 5250 |
Computer Architecture |
3 hrs. |
|
Covers general topics in computer architecture, memory systems design and evaluation, pipeline design techniques, RISC architectures, vector computers, and VLSI systems architecture.
|
|
|
CS 5260 |
Parallel Computations I |
3 hrs. |
|
Covers architecture, synchronization, and communication aspects of parallel and distributed systems. This course will focus on the design and analysis of algorithms which have a prototype treatment on current machines. These algorithms may include parallel sorting, combinatorial search, graph search and traversal, applications in graphics, 2-d finite differences, 2-d finite element techniques, matrix algorithms, and the Fast Fourier Transform.
|
|
|
CS 5270 |
Theory of Computer Graphics |
3 hrs. |
|
A first course in the design of interactive computer graphics systems. Currently available hardware and software systems are described. Emphasis is on theoretical considerations in the design of interactive computer graphics software systems.
|
|
|
CS 5300 |
Artificial Neural Systems |
3 hrs. |
|
An introduction to neural net concepts, algorithms, and applications. A history of neural nets will be presented along with some discussion of models of biological neural systems. The salient features of a neural net (architecture, activation functions, weighting scheme) will be characterized. Standard algorithms will be presented including hopfield nets, linear associative models, bidirectional associative memories, and adaptive resonance models. The student will use neural net software to experiment with standard models and to develop an application for a project.
|
|
|
CS 5400 |
Designing the User Interface |
3 hrs. |
|
An introduction to the specification, development, and evaluation of user interfaces. This course provides an overview of human capabilities, technological possibilities, interaction design, and interface evaluation. The course presents both the theoretical foundations of interaction design and practical case studies of good and bad interface design. During the course, students will design and test one or more interfaces. *Prerequisites: CS 3400 or permission of instructor for undergraduate students.
* No prerequisite for graduate students in Computer Science. |
|
|
CS 5410 |
Game Programming |
3 hrs. |
|
This is a first course in game programming, emphasizing an overview of the field and an examination of core techniques, algorithms and technologies used to program games. The course will cover most areas of game programming, ranging from AI techniques to graphics. Prerequisite: CS 3310 with a grade of “C” or better.
|
|
CS 5430 |
Principles of Database Management Systems |
3 hrs. |
|
The fundamental concepts of database design and efficient usage are presented. Topics include: an overview of databases; the three data models — relational, hierarchical, and network; conceptual, logical, and physical database design and evaluation. The design theory of relational data models will be emphasized. Query languages, query optimization, security, integrity, and concurrency protocols will also be covered. A student may not receive credit for both CS 4430 and CS 5430.
|
|
|
CS 5550 |
Computer Networks and Distributed Systems |
3 hrs. |
|
The design and evaluation of computer networks using current hardware and software are explained. Various types of computer buses, local area networks, and long haul networks are defined. Case studies of popular networks are presented. Layered network models are studied. There is lab work with local area and long haul networks.
|
|
CS 5600 |
Software Requirements Analysis and Design |
3 hrs. |
|
This course provides in-depth study of notations, methodologies, and tools for analysis and design of software requirements. This course includes object-oriented requirement development and design, the relationships between object-oriented design concepts and software engineering principles. The course concentrates on the techniques used in the early stages of software development. Prerequisite: CS 3310.
|
|
|
CS 5700 |
Computer Security and Information Assurance |
3 hrs. |
|
This course is an introduction to computer/network security and information assurance. The topics include cryptographic techniques; network security – threats, controls, and tools; program security; and legal, ethical and privacy issues in computer security. Students will learn fundamental concepts of security applicable to computer programming and computer system design. Assignments will improve students’ practical skills in using computer networks and systems. Prerequisite: CS 5550 with a grade of “C” or better.
|
|
CS 5800 |
Theory of Comoputation II: Formal Languages |
3 hrs. |
|
An introduction to the theory of computation emphasizing grammars and computational complexity. Prerequisite: CS 4800.
|
|
CS 5810 |
Compiler Design and Implementation |
3 hrs. |
|
Students are introduced to major aspects of compiler design. These include lexical analysis, parsing, and translation. Each student will implement a small compiler using modern compiler writing tools.
|
|
|
CS 5950 |
Advanced Topics in Computer Science |
1-3 hrs. |
|
The content of this course varies. It is intended to introduce the student to advanced topics which are normally offered as separate courses. The course may be taken more than once with approval of the student’s advisor.
|
|
|
CS 5990 |
Independent Study in Computer Science |
1-3 hrs. |
|
Advanced students with good scholastic records may elect to pursue, independently, the study of some topic of special interest. Topics are chosen and arrangements are made to suit the needs of each particular student.
|
|