Table of Contents
Computer Science (COSC)
Department of Computer Science
COSC 1303 Computer Science I
An introduction to the field of computer science. Problem solving strategies, basic data structures, and an introduction to algorithms in the context of a modern programming language. A first course in programming with an emphases on scientific and engineering applications. Class 2. Lab 1.
COSC 2033 Programming for Information Systems
A second course in computer programming focusing on the use of object-oriented language features and commonly used data structures and algorithms. Topics include the appropriate choice of data structures, recursive algorithms, computational complexity, and search and sorting techniques. Course assignments emphasize program design using the problem domain of information systems. Class 3. Prerequisite: COSC 1303.
COSC 2103 Computer Science II
A second semester study of computing principles. Abstract data types, object-oriented programming concepts, and introductory topics of graphical-user interfaces, unit testing, and file structures. Students hone their problem solving skills through a variety of programming assignments. Class 3. Prerequisite: COSC 1303 or consent of instructor.
COSC 2203 Data Structures
A second-year course in data structures and algorithms. Topics include commonly used data structures, recursive algorithms, computational complexity, sorting and searching techniques, and an introduction to run-time storage management. Course assignments emphasize both program design and implementation. Class 3. Prerequisites: COSC 2103 and MATH 1803.
COSC 3023 Information Systems
An overview of the five components of modern computerized information systems: hardware, software, procedures, people, and data. A study of existing systems and the strategic roles they play in business. An introduction to business data processing using modern applications and programming languages. Class 3. Prerequisite: COSC 2203. (Spring, Odd years)
COSC 3303 Computer Architecture
A study of design alternatives in computer architecture. Topics include machine organization, memory subsystem organization, interfacing concepts, issues that arise in managing communication with the processor, and alternative computer architectures. Assembly language is studied and used to implement a variety of small programs. Class 3. Prerequisites: COSC 2203 and either EEGR 3213 or EETC 3213. (Spring)
COSC 3403 Software Engineering I
The application of object-oriented analysis and design methods to develop commercial software. Emphasis is placed on software process maturity, software development life cycles, software documentation, and team projects. Class 3. Prerequisite: COSC 2203. (Spring)
COSC 3453 Web Development
An introduction to programming Internet applications. This course is a study of contemporary web-based technologies and development techniques, including scripting languages and server-side databases as well as development support systems. Class 3. Prerequisite: COSC 2203. (Fall, Odd years)
COSC 3503 Operating Systems
An introduction to the principles and concepts of operating systems to include process management, memory management, and storage management. Emphasis is placed on learning the principles and then applying them in various systems programming exercises. Class 3. Prerequisite or Corequisite: COSC 2203 (Spring)
COSC 3523 Analysis Of Algorithms
The analysis, design, and implementation of popular algorithms methods. Topics include specific algorithms for searching, sorting, set operations, and graph-related operations. Emphasis on empirical and theoretical measures of the space and time efficiency. Class 3. Prerequisite: COSC 2203. (Fall)
COSC 3603 Networks And Data Communications
An introduction to the principles and concepts of network-based communication between software processes. This includes the organization of WANs and LANs, the function of gateways and routers, and the use of protocols at the application, transport and network layers. Emphasis is placed on the TCP/IP protocol suite. Exercises focus on studying network traffic and developing TCP- and UDP-based client/server programs. Class 3. Prerequisite or Corequisite: COSC 2203 (Fall)
COSC 3653 Network Security
An introduction to network security emphasizing authentication applications, electronic mail security, IP security, web security, network management security, and firewalls. Students are exposed to the tools and techniques used by malicious network attackers for reconnaissance, scanning, gaining and maintaining access and covering their tracks. Prerequisites: COSC 3603. (Fall, Odd years)
COSC 3843 Game Development
This course is an introduction to the field of computer game development. Topics include an overview of the game industry and the process of game development. Students are instructed in programming for modern computer games, including real-time, event-driven, and multimedia programming techniques, using game development applications. Students work on the design of preliminary concept game projects, and implement prototypes in parallel with course content. Prerequisite: COSC 2203. (Fall, Odd years)
COSC 4103 Computer Graphics
A combined study of computerized visualization techniques and image enhancement methodologies, which includes three dimensional issues of modeling transformations, viewing, visible-surface detection, illumination, and surface-rendering approaches along with computer animation. Class 3. Prerequisites: COSC 2203 and either MATH 1603 or MATH 1903. (Fall)
COSC 4153 Programming Languages
A survey of language classes, such as imperative, functional, logic, concurrent and object- oriented paradigms, as well as their run-time structures. The student will gain experience writing programs in a variety of languages and develop an appreciation of the strengths and weaknesses of each language. Includes historical precedents and current trends in design and philosophy of languages. Formal approaches to defining the syntax and semantics are used to describe the fundamental concepts underlying programming languages. Class 3. Prerequisite: COSC 2103. (Spring)
COSC 4203 Database Management
A study of data modeling, relational databases, normalizing techniques, query languages, managerial aspects of database administration, and trends in database administration. Programming is done in a 4GL language. Class 3. Prerequisite: COSC 2203. (Fall)
COSC 4303 Software Engineering II
Application of software project management, requirements analysis, design, implementation, and testing to the development of large software systems. Emphasis is on software process improvement, requirements management, software testing techniques, quality assurance, configuration management, risk management and group projects. Class 3. Prerequisite: COSC 3403. (Fall)
COSC 4453 Artificial Intelligence
An introduction to the field of artificial intelligence studying basic techniques such as heuristic search, deduction, learning, problem solving, knowledge representation, uncertainty reasoning, and symbolic programming languages such as LISP. Application areas may include intelligent agents, data mining, natural language, machine vision, planning, and expert systems. Class 3. Prerequisite: COSC 2203. (Spring, Even years)
COSC 4503 Program Translation
A study of language design and translation, including the various types of compilers, LL and LR parsing, support mechanisms for access and storage of translation data, scoping concerns, lifetime, visibility, and overloading mechanisms; all within the context of the program translation stages. Class 3. Prerequisites: COSC 3303 and COSC 3403. (Spring)
COSC 4553 Information Security
Principles and concepts of information security to include cryptography, access control, protocols, secure software, and forensics. Emphasis is on learning the principles and then applying them in various programming or hands-on scenarios. Class 3. Prerequisite: COSC 2203. (Spring, Even years)
COSC 4603 Computer Theory
A study of the computational and linguistic theory on which the field of computer science is based. Topics include finite state automata, context-free grammars, push-down automata, Turing machines, undecidability, computability, and complexity theory. Class 3. Prerequisites: COSC 3523 and MATH 1803 or consent of instructor. (Spring)
COSC 4653 Advanced Networks
A second course in computer networking covering design and implementation of networks, computer network management, and performance evaluation. Instruction includes routing protocols, switching basics, intermediate routing, subnetting, and contemporary server installation and configuration and network programming. Prerequisites: COSC 3603. (Spring, Odd years)
COSC 4843 Game Project
This course is a project-based continuation of COSC 3843 Game Development. The benefits and challenges of developing games for various console platforms are considered along with the components of entertainment technology and interactive multimedia. Design issues of 3D hardware, object and camera motion, collision detection, and character animation are also presented. Students will become familiar with gaming systems architecture and game design production cycles, including reusable game technology and usage of game industry tools and platforms. Teams of students will collaborate on the design and development of a complete game document and prototype. Prerequisites: COSC 3603, COSC 3843 , COSC 4453, PHIL 2063, and PSYC 2013.
COSC 4853 Network Security Project
This is the capstone course in the concentration of network security. The format of the course consists of the planning, design, implementation, testing and documentation of a student-initiated project. Projects may consist of such things as hands-on involvement with an on-campus or off-campus office, applied research in some information security or network security discipline, or preparation for certification as an information security or network security professional. Prerequisites: COSC 3653 and COSC 4553.
COSC 4901-4903 Project/Internship in Computing
Students may work at an internship in a business, a non-profit organization, or an on-campus research or design project, under the supervision of a computing professional. Students are required to apply their skills in a real-world setting. Class 1-3. Prerequisites: COSC 3403 and departmental approval. (On Demand)
COSC 4941-4993 Special Topics
This course consists of one or more topics from current areas in computer science. This would include topics such as storage technologies, computer vision, and emerging technologies. This course may be taken more than one time when the topics are different. Class 1-3. Prerequisites: COSC 2203 and consent of instructor.