1301 Computer Literacy (3-0). Overview of concepts, terminologies, hardware and software used in computers and networking.
1341 Fundamentals of Programming (3-0). For non-majors, introductory computer programming techniques using a modern, object-oriented programming language.
1351 Java Programming (3-0). Programming concepts and development in the Java language.
1361 Computer Science I (3-0). The concepts and properties of algorithms for solving numerical and non-numerical problems. Introduction to computer and programming systems, including the development, debugging, and verification of programs, representation of data, computer characteristics and organization.
1362 Computer Science II (3-0). Continuation of CS 1361. Problem solving and program development techniques emphasizing modular design. Includes advanced programming topics such as class design, records, strings, pointers, and bit manipulation. Prerequisite: Computer Science 1361.
1371 Introduction to Computer Game Development (3-0) . An introduction to computer game development. Topics include the history of game development, player motivation, game elements, storytelling, characters, game play, level design, interface design, audio, project management, production, marketing and maintenance.
2305 Data Structures & Algorithms (3-0). Study of basic data structures and their applications such as: linear structures (arrays, lists, stacks, queues) and non-linear structures (trees, graphs); sequential and linked storage representation methods; sorting and searching algorithms; and techniques of algorithmic analysis. Prerequisite: Computer Science 1362.
2324 3D Modeling and Animation I (3-0). Introduction to three-dimensional (3D) modeling and animation utilizing industry standard software. The course includes the modeling and modification of 3D geometric shapes, as well as introduction to camera techniques, light sources, textures, rigging, weight-mapping models and rendering for animation.
2325 3D Modeling and Animation II (3-0). Intermediate methods for three-dimensional (3D) modeling and animation, including spline drawing, dynamic object emitters, surface mapping, skelegons, inverse kinematics, and extended lighting, texturing, and camera techniques. Prerequisite: Computer Science 2324.
3304 Computer Organization and Programming (3-0). Basic computer organization with emphasis on machine representation of data and instructions; programming in assembly and machine-oriented languages for real and simulated computers. Prerequisite: Computer Science 1362.
3311 Data Base Management (3-0). Basic data base concepts, organization, and definitions; data description languages; relational data base concepts and examples; comparison of data base systems. Prerequisite: Computer Science 1362
3331 Programming Languages (3-0). An introduction to the syntax and semantics of programming languages. Actual programming languages may be used to illustrate the language concepts. Prerequisite: Computer Science 2305.
3344 Computer Architecture (3-0). Study of the hardware components of a computer system and survey of various computer architectures. Topics may include instruction set design, computer arithmetic, and microprogramming. Prerequisite: Computer Science 3304.
3352 Theory of Algoirthms (3-0). An in-depth study of computer algorithms, including those for hash tables, trees and graphs; analysis of time and space requirements of algorithms; NP-completeness and undecidability of problems. Prequisite: Computer Science 2305. Co-requisite: Mathematics 2305.
3371 Computer Game Development I (3-0). Introduction to the design and implementation of computer games, including real-time graphics, audio and interactive multimedia programming techniques. Prerequisite: Computer Science 2305.
3372 Handheld Game Development (3-0). Computer game development for one or more handheld computing devices. Programming topics include graphics, audio, user interfaces and development tools. Other topics may include content creation, developer workflow, hardware acceleration and power management. Prequisite: Computer Science 2305.
4091 Research: 1 to 6. A specialized course providing research opportunities for superior students majoring in computer science. Prerequisite: Senior standing and consent of the program director is required.
4171 Internship. The student will participate in a part-time computing position with a cooperating business or government agency whose program has been approved by the CS program. The internship requires a minimum of ten hours per week. The course may be repeated twice for credit. Grading will be on a pass/fail basis. Prerequisite: Junior or senior CS major with at least 18 semester hours in CS, 12 of which must be in residence. Additionally, consent of the program director is required.
4301 Algorithmic Languages and Compilers (3-0). Formal description of algorithmic languages, compilation techniques, syntactic analysis, code generation, storage allocation, syntax-directed compilers, compiler-building systems. Prerequisites: Computer Science 2305, 3304.
4302 Operating Systems (3-0). A study of the design and implementation of operating systems; analysis of system resource management, including the memory, processor, device, and information management functions. Prerequisites: Computer Science 2305, 3304.
4306 Software Engineering (3-0). Introduction to the fundamental concepts of computer software development; programming methodology; software reliability; performance and design evaluations, software project management; program development languages, tools and standards. Prerequisites: Senior standing and Computer Science 2305.
4307 Ethical Issues in Computing (3-0). Seminar style with discussion of the concern for the way in which computers pose new ethical questions or pose new versions of standard moral problems and dilemmas; study of ethical concepts to guide the computer professional; and computer professional codes of ethics. Case studies will be used to relate to ethical theory. Discussion will include ethical and legal use of software and conflicts of interest. Prerequisite: Junior standing.
4308 Computer Graphics (3-0). Study of hardware and software found in graphics systems. Topics such as line and curve drawing, text generation, transformation methods for two and three dimensional systems, fill algorithms, fractal curves and hiddenline algorithms. Prerequisites: Computer Science 2305, Mathematics 1321 or 1362.
4312 Internet Technologies (3-0). Technologies that make up the Internet including servers, clients, protocols, browsers and mechanisms for executable content. Prerequisite: Computer Science 2305.
4314 Computer Networking (3-0). Introduction to the principles and basic concepts of computer networking, including the Internet. Networking concepts, protocols and technologies are broken down into layers. Prerequisite: Computer Science 2305.
4316 Visual Programming (3-0). Programming in and for a visual or GUI environment. Event-driven objects including mouse and window events. Prerequisite: Computer Science 1341.
4318 Artificial Intelligence (3-0). Fundamental concepts and techniques of intelligent systems; representation and interpretation of knowledge on a computer; search strategies and control. Prerequisites: Senior standing and Computer Science 2305.
4320 Computer and Network Security (3-0). In-depth look at the security risks and threats to an organization’s electronic assets, and an overview of components used in an enterprise security infrastructure. Topics will include theoretical background as well as practical techniques to secure an enterprise network.
4371 Computer Game Development II (3-0). Continuation of CS 3371. Advanced game programming techniques, including 3-D graphics, 3-D audio, game physics and networking for multi-player games. Prerequisite: Computer Science 3371.
4381 Special Topics in Computer Science (3-0). Contemporary applications and theory in computer science. (May be repeated once for credit when the topics vary.) Prerequisite: Computer Science 2305.