Skip to Search Skip to Navigation Skip to Content

Computer Science (CS) Course Descriptions

Department of Computer Science, College of Sciences


NOTE: All prerequisites for Computer Science (CS) courses must be completed with a grade of “C-” or better.

CS 1023  Cultural Implications of the Information Society [TCCN: COSC 1300.]
(3-0) 3 hours credit.
This course offers an examination of the modern information society and the influences of technological advances on society and culture. The emphasis is on information and its management from ethical, social, and legal perspectives. Students will make extensive use of the World Wide Web. May be applied toward the core curriculum requirement in World Society and Issues.

CS 1033  Microcomputer Applications
(3-0) 3 hours credit.
Study of the uses of the computer and the organization and visualization of data. Topics will be selected from library searching, networking, e-mail, spreadsheets, databases, authoring packages, multimedia and hypertext applications, presentation graphics, and legal/ethical issues. May not be applied toward a major in computer science. (Formerly CS 2083. Credit cannot be earned for both CS 1033 and CS 2083.)

CS 1053  Professional Computer Certification
(3-0) 3 hours credit. Prerequisite: Permission in writing (form available) from the instructor and the Department Chair.
This course is designed to allow students the opportunity to obtain a professional certification in one of several possible computer certification programs. Credit is awarded based on successfully obtaining the certification. Certifications allowed include Microsoft® and CISCO professional certifications, but others may be allowed at the discretion of the instructor and Department Chair. May be repeated for credit when certifications vary. May not be applied toward a major in computer science.

CS 1063  Introduction to Computer Programming I [TCCN: COSC 1336.]
(3-0) 3 hours credit. Prerequisite: MAT 1073 or the equivalent.
An introduction to computer programming using a modern object-oriented computer language. Topics include assignment, decisions, loops, methods and arrays using objects.

CS 1073  Introductory Computer Programming for Scientific Applications
(3-0) 3 hours credit. Prerequisite: MAT 1073 or the equivalent.
Introductory programming. Data representation, problem-solving methods, algorithm development and implementation, arrays and list structures, searching and sorting. May not be applied toward a major in computer science.

CS 1143  Web Design
(3-0) 3 hours credit. Prerequisite: Computer literacy.
Introduction to the process of planning, designing, and building a Web site. Concepts required to design and build interactive Web sites, including page design using XHTML, tables, CSS, and JavaScript. Design tools will be used to design and maintain Web sites.

CS 1153  Game Programming
(3-0) 3 hours credit. Prerequisite: Computer literacy.
Introduction to game design and programming. Common practices used in the video game industry today will also be introduced. Students will learn the basics of creating a PC game through lecture material, hands-on laboratories, and a final project in which the students will build a simple game.

CS 1173  Data Analysis and Visualization using MATLAB
(3-0) 3 hours credit. Prerequisite: MAT 1023.
Introduction to computation for data analysis and visualization using MATLAB. Programming concepts including functions, scripting, loops and logic, handling of vectors and structured data are explored in the context of working with and plotting real data. (Formerly titled “Computation for Scientists and Engineers.”)

CS 1711  Introduction to Computer Programming II Recitation [TCCN: COSC 1437.]
(1-0) 1 hour credit. Prerequisite: CS 1063. Concurrent enrollment in CS 1713 is required.
Recitation to accompany CS 1713. (Formerly titled “Introduction to Computer Science Recitation.”)

CS 1713  Introduction to Computer Programming II [TCCN: COSC 1437.]
(3-0) 3 hours credit. Prerequisite: CS 1063. Concurrent enrollment in CS 1711 is required.
Extended programming concepts including multidimensional arrays, pointers, dynamic memory allocation/deallocation and recursion. Problem solving methods, algorithm development and implementation. (Formerly titled “Introduction to Computer Science.”)

CS 2073  Computer Programming with Engineering Applications
(3-0) 3 hours credit. Prerequisites: MAT 1214 and completion of or concurrent enrollment in MAT 1224.
Algorithmic approaches to problem solving and computer program design for engineers. Engineering and mathematically-oriented problem sets will be emphasized, including nonnumeric applications. Searching, sorting, linked lists, and data typing will be introduced. May not be applied toward a major in computer science.

CS 2121  Data Structures Recitation [TCCN: COSC 2436.]
(1-0) 1 hour credit. Prerequisites: CS 1711 and CS 1713. Concurrent enrollment in CS 2123 is required.
Recitation to accompany CS 2123. (Formerly CS 1721. Credit cannot be earned for both CS 2121 and CS 1721.)

CS 2123  Data Structures [TCCN: COSC 2436.]
(3-0) 3 hours credit. Prerequisites: CS 1711 and CS 1713. Concurrent enrollment in CS 2121 is required.
Abstract data structures (stacks, queues, lists, trees), recursion, sorting, and searching. Implementation of data structures using explicit memory management, and introduction to abstract data type design and encapsulation. (Formerly CS 1723. Credit cannot be earned for both CS 2123 and CS 1723.)

CS 2153  Game Design
(3-0) 3 hours credit. Prerequisites: CS 1153.
This course builds upon the lessons learned in CS 1153 Game Programming to examine in more detail the design and development of electronic games. The fundamentals of game design and development of electronic games. The fundamentals of game design will be examined in detail and the students will be responsible for building a game using a popular game engine.

CS 2211  Advanced Programming Recitation
(1-0) 1 hour credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 2213 is required.
Recitation to accompany CS 2213.

CS 2213  Advanced Programming
(3-0) 3 hours credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 2211 is required.
An implementation level view of data structures in a specific language with an emphasis on pointers and memory management. Dynamic data structures such as dynamic lists, heaps, 23-trees, graphs, etc. are considered.

CS 2231  Discrete Mathematical Structures Recitation
(1-0) 1 hour credit. Prerequisites: CS 1711, CS 1713, and MAT 1214. Concurrent enrollment in CS 2233 is required.
Recitation to accompany CS 2233. (Formerly CS 3231. Credit cannot be earned for both CS 2231 and CS 3231.)

CS 2233  Discrete Mathematical Structures
(3-0) 3 hours credit. Prerequisites: CS 1711, CS 1713, and MAT 1214. Concurrent enrollment in CS 2231 is required.
Survey and development of theoretical tools suitable for describing algorithmic applications. Propositional and predicate calculus, proofs, induction, order notation, recurrences and discrete structures. (Formerly 3233. Credit cannot be earned for both CS 2233 and CS 3233.)

CS 3323  Topics in Programming Languages
(3-0) 3 hours credit. Prerequisites: CS 3421 and CS 3423.
Study of two or three languages important to the computer science curriculum.

CS 3331  Mathematical Foundations of Computer Science Recitation
(1-0) 1 hour credit. Prerequisites: CS 1711, CS 1713, and MAT 1224. Concurrent enrollment in CS 3333 is required.
Recitation to accompany CS 3333.

CS 3333  Mathematical Foundations of Computer Science
(3-0) 3 hours credit. Prerequisites: CS 1711, CS 1713, and MAT 1224. Concurrent enrollment in CS 3331 is required.
Survey and development of mathematical and statistical tools suitable for describing algorithmic applications. Vectors, matrices, combinatorics, probability and statistical models.

CS 3341  Analysis of Algorithms Recitation
(1-0) 1 hour credit. Prerequisites: CS 2121, CS 2123, CS 2231, CS 2233, CS 3331, and CS 3333. Concurrent enrollment in CS 3343 is required.
Recitation to accompany CS 3343.

CS 3343  Analysis of Algorithms
(3-0) 3 hours credit. Prerequisites: CS 2121, CS 2123, CS 2231, CS 2233, CS 3331, and CS 3333. Concurrent enrollment in CS 3341 is required.
Analysis of the performance of algorithms; discussion of programming techniques and data structures used in the writing of effective algorithms.

CS 3393  Numerical Linear Algebra
(3-0) 3 hours credit. Prerequisites: CS 1073, or CS 1711 and CS 1713, or CS 2073; and CS 3331 and CS 3333, or MAT 2233.
A study of the numerical techniques involved in matrix operations, systems of linear equations, linear least squares, eigenvalue and singular value problems, with an emphasis on practical implementations using existing mathematical software.

CS 3413  Data Communications
(3-0) 3 hours credit. Prerequisites: CS 3841 and CS 3843 or consent of instructor.
Concepts, principles, and terminology concerning the standards, equipment, interfaces, protocols, architectures, transmission alternatives, and regulatory issues involved in the design and use of data communications systems.

CS 3421  Systems Programming Recitation
(1-0) 1 hour credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 3423 is required.
Recitation to accompany CS 3423. (Formerly CS 2411. Credit cannot be earned for both CS 3421 and CS 2411.)

CS 3423  Systems Programming
(3-0) 3 hours credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 3421 is required.
A study of systems-level programming in a specific system (at present, Unix). Focus on concepts and tools to support the construction of systems programs. (Formerly CS 2413. Credit cannot be earned for both CS 3423 and CS 2413.)

CS 3433  Principles of Computer and Information Security
(3-0) 3 hours credit. Prerequisites: CS 3421 and CS 3423.
An introduction to the protection of computer systems and networks. Topics will include authentication, access controls, malicious software, formal security methods, firewalls, intrusion detection, cryptography and information hiding, risk management, computer forensics, and ethics.

CS 3443  Application Programming
(3-0) 3 hours credit. Prerequisites: CS 2121 and CS 2123.
Advanced application development in a current object-oriented language. Introduction to the software life cycle, best programming practices, and modern development tools.

CS 3713  C++ Programming
(3-0) 3 hours credit. Prerequisites: CS 2073, or CS 2121 and CS 2123.
An introduction to standard C++ and key programming and design techniques supported by C++. Topics include C++ types and expressions, class abstractions, name spaces, exception handling, operator overloading, templates, and the standard template library.

CS 3721  Programming Languages Recitation
(1-0) 1 hour credit. Prerequisites: CS 2231, CS 2233, and CS 3443. Concurrent enrollment in CS 3723 is required.
Recitation to accompany CS 3723.

CS 3723  Programming Languages
(3-0) 3 hours credit. Prerequisites: CS 2231, CS 2233, and CS 3443. Concurrent enrollment in CS 3721 is required.
An introduction to high-level procedural, functional, and object-oriented programming languages, their theoretical foundations, organization, and implementation. Topics include formal syntax, compilers and interpreters, type systems, scoping and activation records, control structures, and data abstraction.

CS 3731  Operating Systems Recitation
(1-0) 1 hour credit. Prerequisites: CS 3421, CS 3423, CS 3443, CS 3841, and CS 3843. Concurrent enrollment in CS 3733 is required.
Recitation to accompany CS 3733.

CS 3733  Operating Systems
(3-0) 3 hours credit. Prerequisites: CS 3421, CS 3423, CS 3443, CS 3841, and CS 3843. Concurrent enrollment in CS 3731 is required.
An introduction to the functions and major techniques of a modern multiprogramming operating system. Includes exposure to the fundamentals of processor management, process synchronization, memory management, and peripheral management.

CS 3743  Introduction to Database Systems
(3-0) 3 hours credit. Prerequisites: CS 2231, CS 2233, CS 3421, and CS 3423.
Study of fundamentals of database systems. Topics include basic concepts, various data models, database design, storage systems, indexing and hashing, database application design and implementation, and commercially available database systems.

CS 3773  Software Engineering
(3-0) 3 hours credit. Prerequisite: CS 3443.
Introduction to different aspects of software engineering with the concentration on processes, methods, and tools for developing reliable software-centered systems. Study of software development process models, project management, a variety of modeling notations, requirement analysis, architecture design methods, and testing techniques.

CS 3793  Introduction to Artificial Intelligence
(3-0) 3 hours credit. Prerequisites: CS 3341 and CS 3343.
Discussion of theorem-proving by machine; includes computational linguistics, psychological modeling, and computer games.

CS 3841  Computer Organization Recitation
(1-0) 1 hour credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 3843 is required.
Recitation to accompany CS 3843. (Formerly CS 2731. Credit cannot be earned for both CS 3841 and CS 2731.)

CS 3843  Computer Organization
(3-0) 3 hours credit. Prerequisites: CS 2121 and CS 2123. Concurrent enrollment in CS 3841 is required.
Organization of a computer system is introduced at block diagram level. Programming in assembly language and understanding the macroarchitecture of a computer is emphasized. Fundamentals of digital systems are introduced and the designs of various components used are investigated. (Formerly CS 2733. Credit cannot be earned for both CS 3843 and CS 2733.)

CS 3851  Computer Architecture Recitation
(1-0) 1 hour credit. Prerequisites: CS 3421, CS 3423, CS 3841, and CS 3843. Concurrent enrollment in CS 3853 is required.
Recitation to accompany CS 3853. (Formerly CS 4751. Credit cannot be earned for both CS 3851 and CS 4751.)

CS 3853  Computer Architecture
(3-0) 3 hours credit. Prerequisites: CS 3421, CS 3423, CS 3841, and CS 3843. Concurrent enrollment in CS 3851 is required.
Instruction set architecture, datapath and control unit design, advanced computer arithmetic, pipelining, memory hierarchy and I/O subsystem, performance issues. (Formerly CS 4753. Credit cannot be earned for both CS 3853 and CS 4753.)

CS 3873  Computer Networks
(3-0) 3 hours credit. Prerequisites: CS 3841 and CS 3843.
Network architecture, TCP/IP protocol suite, routing, data-link layer protocols, medium access control protocols, error detection and recovery, local area networks, wireless and mobile networks. (Formerly CS 4873. Credit cannot be earned for both CS 3873 and CS 4873.)

CS 4213  Computing for Bioinformatics
(3-0) 3 hours credit. Prerequisite: CS 1173 or another programming course.
Emphasizes computing tasks common in bioinformatics: variables, flow control, input/output, strings, pattern matching, arrays, hash tables, functions, access to databases, and parsing data from queries for common bioinformatics tasks. SQL, XML, and BioPerl. May not be applied to the 24 hours of required electives for computer science majors, but may be included for a computer science minor.

CS 4313  Automata, Computability, and Formal Languages
(3-0) 3 hours credit. Prerequisites: CS 3341 and CS 3343.
Discussion of abstract machines (finite state automata, pushdown automata, and Turing machines), formal grammars (regular, context-free, and type 0), and the relationship among them.

CS 4353  Unix and Network Security
(3-0) 3 hours credit. Prerequisite: CS 3433.
A technical survey of the fundamentals of computer and information security. Issues include cryptography, authentication, attack techniques at both the OS and network level, defense techniques, intrusion detection, scan techniques and detection, forensics, denial of service techniques and defenses, libpcap, libdnet and libnet programming.

CS 4363  Cryptography
(3-0) 3 hours credit. Prerequisites: CS 3341, CS 3343, and CS 3433.
A course in pure and applied cryptography, with emphasis on theory. Topics may include conventional and public-key cryptosystems, signatures, pseudo-random sequences, hash functions, key management, and threshold schemes.

CS 4383  Computer Graphics
(3-0) 3 hours credit. Prerequisites: CS 2121, CS 2123, CS 3341, and CS 3343.
An introduction to two- and three-dimensional generative computer graphics. Display devices, data structures, mathematical transformations, and algorithms used in picture generation, manipulation, and display.

CS 4393  User Interfaces
(3-0) 3 hours credit. Prerequisite: CS 3443.
Study of advanced user interface issues. User interface design, human factors, usability, GUI programming models, and the psychological aspects of human-computer interaction.

CS 4413  Web Technologies
(3-0) 3 hours credit. Prerequisites: CS 3421 and CS 3423.
Fundamentals of Web and component technology: markup languages, layout design, client and server side programming, database and Web integration.

CS 4593  Topics in Computer Science
(3-0) 3 hours credit. Prerequisite: Consent of instructor.
Advanced topics in an area of computer science. May be repeated for credit when topics vary.

CS 4633  Simulation
(3-0) 3 hours credit. Prerequisites: CS 3341 and CS 3343.
Design, execution, and analysis of simulation models, discrete event simulation techniques, input and output analysis, random numbers, and simulation tools and languages.

CS 4713  Compiler Construction
(3-0) 3 hours credit. Prerequisites: CS 3341, CS 3343, CS 3841, and CS 3843.
An introduction to implementation of translators. Topics include formal grammars, scanners, parsing techniques, syntax-directed translation, symbol table management, code generation, and code optimization. (Formerly titled “Compiler Writing.”)

CS 4723  Software Validation and Quality Assurance
(3-0) 3 hours credit. Prerequisite: CS 3443.
Study of software validation techniques. Introduction to static analysis and software testing approaches (functional testing, structural testing, integration testing and regression testing). Overview of test planning and test case design. Review of topics in quality assurance.

CS 4733  Project Management
(3-0) 3 hours credit. Prerequisite: CS 3443.
Introduction to principles and best practices for software project management. Topics include software process models, capability maturity model, metrics, cost estimation, software project planning, risk management, software configuration management, people management, and software management CASE tools.

CS 4763  Multimedia Systems
(3-0) 3 hours credit. Prerequisites: CS 3731 and CS 3733.
Multimedia hardware capabilities. Sound and video generation and editing. Multimedia applications development and toolkits. Analysis of operational characteristics of multimedia systems.

CS 4773  Object-Oriented Systems
(3-0) 3 hours credit. Prerequisite: CS 3443.
An introduction of principles and methodologies of good software design. Study of object-oriented concepts and techniques, encapsulation, inheritance mechanisms, polymorphism, and programming in one or more object-oriented languages. Examination of design patterns that provide reusable solutions to problems in object-oriented design.

CS 4793  Introduction to Artificial Neural Networks
(3-0) 3 hours credit. Prerequisites: CS 3341 and CS 3343.
Analysis of biological nervous systems, supervised and unsupervised training algorithms, perceptrons and threshold logic-based systems, associative memories, nonlinear regression, and backpropagation learning methods.

CS 4823  Introduction to Parallel Programming
(3-0) 3 hours credit. Prerequisites: CS 3341, CS 3343, CS 3421, and CS 3423.
Parallel programming concepts (partitioning, synchronization and communication, programming models-shared memory based and message based), programming tools and languages, performance issues.

CS 4833  Embedded Systems
(3-0) 3 hours credit. Prerequisites: CS 3341, CS 3343, CS 3731, CS 3733, CS 3851, and CS 3853.
Concepts and design principles of embedded systems. Microprocessor and hardware architecture, sensors and actuators, basic feedback control theory. Real-time scheduling, programming in embedded systems.

CS 4913  Independent Study
3 hours credit. Prerequisites: Permission in writing (form available) from the instructor, the student’s advisor, the Department Chair, and the Dean of the College in which the course is offered.
Independent reading, research, discussion, and/or writing under the direction of a faculty member. May be repeated for credit, but not more than 6 semester credit hours, regardless of discipline, will apply to a bachelor’s degree.

CS 4933  Internship in Computer Science
3 hours credit. Prerequisites: Junior or senior standing, an overall 2.5 grade point average, and permission in writing from the instructor, the Department Chair, and the Dean of the College of Sciences.
The opportunity for a semester-long work experience in a private business or public agency in a computer science-related position. Not more than 3 semester credit hours of CS 4933, and not more than a total of 6 semester credit hours of CS 4933 and independent study courses may count toward the Bachelor of Science degree in Computer Science. The grade report for this course is either “CR” (satisfactory participation in the internship) or “NC” (unsatisfactory participation in the internship).

CS 4953  Special Studies in Computer Science
(3-0) 3 hours credit. Prerequisite: Consent of instructor.
An organized course offering the opportunity for specialized study not normally or not often available as part of the regular course offerings. Special Studies may be repeated for credit when topics vary, but not more than 6 semester credit hours, regardless of discipline, will apply to a bachelor’s degree.

CS 4993  Honors Research
3 hours credit. Prerequisites: Enrollment limited to candidates for College Honors during their last two semesters; approval by the College Honors Committee.
Supervised research and preparation of an honors thesis. May be repeated once with approval.


Back to Top