Computer Science, BS

Program Description

The computer science degree program is applied in nature and is designed to prepare students to begin or advance computing careers in business, industry, government, or education, or to pursue further study in computer science. The curriculum is thorough, current, and oriented toward the technical competencies required of a modern computer professional with emphasis on the development, evaluation, and integration of software systems.

Mission

The mission of the Computer Science program is to educate undergraduate and graduate students in the principles of computer science and to extend the understanding and use of those principles by conducting research and service in support of the people and economy of south Texas, the state of Texas as a whole, and the nation, consistent with the program’s function within a Hispanic-serving institution. 

Program Educational Objectives

Based on the mission statements of the university, college, department, and program, we have derived the following objectives for the computer science undergraduate program. The objectives are to graduate students from the baccalaureate program in computer science who:

  1. Contribute productively in a computer science discipline using state of the art technologies and progress towards their career goals and/or pursue their academic goals in graduate education.
  2. Communicate effectively and interact or collaborate productively with team members of diverse backgrounds, such as race, religion, culture, ethnicity, and gender.
  3. Continually improve their knowledge and skills in technical areas and broadening their global perspective of the field of computer science.
  4. Uphold and enhance their sense of professional ethics and responsibilities towards individuals, organizations, and society.

Student Learning Outcomes

In order to prepare students to attain the program educational objectives, the BS CS degree program has been structured to ensure that all students, by the time of their graduation, will have been enabled to meet the following outcomes:

  1. Analyze a complex computing problem, and to apply principles of computing and other relevant disciplines to identify solutions.
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
  3. Communicate effectively in a variety of professional contexts.
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions.

Fast Track from Bachelor's Degree to Master's Degree

The university allows the opportunity for high-achieving students to count a select number of graduate credits toward their undergraduate degree and thereby obtain a graduate degree at an accelerated pace. For more information, see Fast Track Computer Science, BS and Computer Science, MS

General Requirements

The requirements for a Bachelor of Science degree in Computer Science include a total of 120-122 semester hours. The total is divided among the following groups: University Core Curriculum, Major Curriculum, and Electives.

There are four options for the degree, the Systems Programming Option, the Cyber Security and Infrastructure Option, the Computer Game Programming Option, and the Computer Information Systems Option. Besides the University Core Curriculum, all options also share a common major curriculum that consists of 38 semester hours in computer science and mathematics.

For information about the minor, please see the Computer Science Minor section.

Requirements Credit Hours
First-Year Seminars (when applicable)1 0-2
Core Curriculum Program 42
Major Curriculum for All Options 38
Courses Specific to Each Option 39-40
Electives as needed to fulfill university graduation minimum requirements 1
Total Credit Hours 120-123
1

Full-time, first time in college students are required to take the first-year seminars.

Program Requirements

The specific requirements for each option of the Bachelor of Science degree in Computer Science follow.

Full-time, First-year Students
First year seminars0-2
University Seminar I
University Seminar II
Core Curriculum Program
University Core Curriculum 142
Computer Science majors must take:
Calculus I
Major Curriculum for All Options
COSC 3100Skills for Computing Professionals I1
COSC 1435Introduction to Problem Solving with Computers I4
COSC 1436Introduction to Problem Solving with Computers II4
COSC 2334Computer Architecture3
COSC 2437Data Structures4
COSC 3336Introduction to Database Systems3
COSC 3346Operating Systems3
COSC 3370Software Engineering3
COSC 4100Skills for Computing Professionals II1
COSC 4354Senior Capstone Project3
ENGL 3310Technical and Professional Writing for Computer Science3
MATH 2305Discrete Mathematics I 23
Calculus I (included in University Core) 2
Select one of the following:3
Applied Probability and Statistics 2
Statistical Modeling and Data Analysis 2
Courses Specific to Each Option
Select one of the following Options:39-40
Electives
Electives as needed to fulfill university graduation minimum requirements1
Total Hours120-123
1

All Computer Science options require one or more courses that also satisfy the University Core curriculum.  Before choosing a course to satisfy your University Core, verify that you will not be satisfying that part of the core with a required course.

2

These are supporting courses that can be used toward a Mathematics Minor.

Systems Programming Option

This option is for those who intend to pursue careers as systems programmers or pursue advanced study in computer science. The degree program has an emphasis in system software programming and requires a one-year sequence in a physical science with a laboratory component.

Systems Programming Option Required Courses
COSC 3301Cyber Security3
COSC 3324Object-oriented Programming3
COSC 3353Survey of Programming Languages3
COSC 3373Software Project Management3
COSC 3385Numerical Methods3
COSC 4342Computer Networks3
COSC 4343Algorithms3
COSC 4348Systems Programming3
12 hours of approved upper-division Computer Science electives12
MATH 2414Calculus II (3 hours included in University Core)1
Select one of the following:3
Compiler Construction
Theory of Programming Languages
Models of Computation
Science sequence (included in University Core)
Select one sequence from the following:
Biology
Biology I
and Biology II
Chemistry
General Chemistry I
and General Chemistry II
Geology
Physical Geology
and Historical Geology
Physics
University Physics I
and University Physics II
Total Hours40

Cyber Security and Infrastructure Option

This option is for those who intend to pursue careers in network administration, system administration, web administration and cyber security experts. The degree program has an emphasis on gaining these skills.

Cyber Security and Infrastructure Option Required Courses
COSC 2348Introduction to Scripting3
COSC 2465Linux Systems4
COSC 2466Network Systems4
COSC 3351Internet Programming3
COSC 3372Network Security3
COSC 3474Cyber Defense I4
COSC 4310Digital Forensics3
COSC 4365Windows Security3
COSC 4367Firewall and Intrusion Detection Systems3
COSC 4368Penetration Testing3
6 hours of approved upper-division Computer Science electives6
Total Hours39

Computer Game Programming Option

This option is for those who intend to pursue careers as game programmers. The degree program has an emphasis on the skills necessary for creating and programing computer games.

Computer Game Programming Option Required Courses
COSC 2325Game Design3
COSC 3301Cyber Security3
COSC 3324Object-oriented Programming3
COSC 3325Game Programming3
COSC 3385Numerical Methods3
COSC 4325Advanced Game Programming3
COSC 4328Computer Graphics3
COSC 4330Introduction to Artificial Intelligence3
COSC 4342Computer Networks3
COSC 4343Algorithms3
MATH 2414Calculus II (3 hours included in University Core)1
MATH 3311Linear Algebra3
University Physics I (included in University Core)
University Physics II (included in University Core)
3 hours of approved upper-division Computer Science electives3
Select one of the following:3
Compiler Construction
Theory of Programming Languages
Models of Computation
Total Hours40

Computer Information Systems Option

The Computer Information Systems option is intended for those who want to develop and maintain information systems. In this option, the student learns to develop software systems and function as a computer professional. The student should choose electives to link the application-independent foundations and processes of computing and information systems to the needs of a particular application area.  The student will gain knowledge of the particular application area by choosing a minor in an academic discipline highly related to the application area.

The minor should be appropriate as an application area for computer information systems and must consist of at least 18 semester hours. The coursework that satisfies the minor is determined by the faculty in the minor subject.

Computer Information Systems Option Required Courses
COSC 2470COBOL Programming4
COSC 3324Object-oriented Programming3
COSC 4342Computer Networks3
12 hours of approved upper-division Computer Science electives12
18 hours of Minor Courses18
Total Hours40

Course Sequencing

Systems Programming

Plan of Study Grid
First Year
FallHours
UNIV 1101 University Seminar I 1
ENGL 1301 Writing and Rhetoric I 3
COSC 1435 Introduction to Problem Solving with Computers I 4
COSC 3100 Skills for Computing Professionals I 1
MATH 2413 Calculus I 4
Social and Behavioral Sciences Core Requirement 3
 Hours16
Spring
UNIV 1102 University Seminar II 1
ENGL 1302
Writing and Rhetoric II
or Foundation of Communication
3
COSC 1436 Introduction to Problem Solving with Computers II 4
COSC 3301 Cyber Security 3
MATH 2305 Discrete Mathematics I 3
 Hours14
Second Year
Fall
COSC 2334 Computer Architecture 3
COSC 2437 Data Structures 4
MATH 2414 Calculus II 4
POLS 2305 U.S. Government and Politics 3
Creative Arts Core Requirement 3
 Hours17
Spring
ENGL 3310 Technical and Professional Writing for Computer Science 3
COSC 3324 Object-oriented Programming 3
COSC 3353 Survey of Programming Languages 3
POLS 2306 State and Local Government 3
Approved Upper-Division COSC Course 3
 Hours15
Third Year
Fall
MATH 3342
Applied Probability and Statistics
or Statistical Modeling and Data Analysis
3
COSC 3336 Introduction to Database Systems 3
COSC 3370 Software Engineering 3
COSC 3385 Numerical Methods 3
Science Sequence 4
 Hours16
Spring
COSC 3346 Operating Systems 3
COSC 3373 Software Project Management 3
Approved Upper-Division COSC Course 3
American History Core Requirement 3
Science Sequence 4
 Hours16
Fourth Year
Fall
COSC 4100 Skills for Computing Professionals II 1
COSC 4342 Computer Networks 3
COSC 4343 Algorithms 3
COSC 4353
Compiler Construction
or Theory of Programming Languages
or Models of Computation
3
Approved Upper-Division COSC Course 3
American History Core Requirement 3
 Hours16
Spring
COSC 4354 Senior Capstone Project 3
COSC 4348 Systems Programming 3
Approved Upper-Division COSC Course 3
Language, Philosophy & Culture Core Requirement 3
 Hours12
 Total Hours122

Cyber Security and Infrastructure

Plan of Study Grid
First Year
FallHours
UNIV 1101 University Seminar I 1
ENGL 1301 Writing and Rhetoric I 3
COSC 1435 Introduction to Problem Solving with Computers I 4
COSC 3100 Skills for Computing Professionals I 1
MATH 2413 Calculus I 4
Social and Behavioral Sciences Core Requirement 3
 Hours16
Spring
UNIV 1102 University Seminar II 1
ENGL 1302
Writing and Rhetoric II
or Foundation of Communication
3
COSC 1436 Introduction to Problem Solving with Computers II 4
COSC 2348 Introduction to Scripting 3
MATH 2305 Discrete Mathematics I 3
 Hours14
Second Year
Fall
COSC 2334 Computer Architecture 3
COSC 2437 Data Structures 4
COSC 2465 Linux Systems 4
POLS 2305 U.S. Government and Politics 3
Creative Arts Core Requirement 3
 Hours17
Spring
COSC 2466 Network Systems 4
COSC 3336 Introduction to Database Systems 3
POLS 2306 State and Local Government 3
American History Core Requirement 3
Component Area Option Core Requirement 3
 Hours16
Third Year
Fall
COSC 3351 Internet Programming 3
ENGL 3310 Technical and Professional Writing for Computer Science 3
COSC 4365 Windows Security 3
MATH 3342
Applied Probability and Statistics
or Statistical Modeling and Data Analysis
3
COSC 3346 Operating Systems 3
 Hours15
Spring
COSC 3370 Software Engineering 3
COSC 3372 Network Security 3
COSC 4310 Digital Forensics 3
Component Area Option Core Requirement 3
Approved Upper-Division COSC Course 3
 Hours15
Fourth Year
Fall
COSC 4367 Firewall and Intrusion Detection Systems 3
COSC 3474 Cyber Defense I 4
COSC 4100 Skills for Computing Professionals II 1
American History Core Requirement 3
Life & Physical Science Core Requirement 3
 Hours14
Spring
COSC 4354 Senior Capstone Project 3
COSC 4368 Penetration Testing 3
Approved Upper-Division COSC Course 3
Life & Physical Science Core Requirement 3
Language, Philosophy & Culture Core Requirement 3
 Hours15
 Total Hours122

Computer Game Programming

Plan of Study Grid
First Year
FallHours
UNIV 1101 University Seminar I 1
ENGL 1301 Writing and Rhetoric I 3
COSC 1435 Introduction to Problem Solving with Computers I 4
COSC 3100 Skills for Computing Professionals I 1
MATH 2413 Calculus I 4
Social and Behavioral Sciences Core Requirement 3
 Hours16
Spring
UNIV 1102 University Seminar II 1
ENGL 1302
Writing and Rhetoric II
or Foundation of Communication
3
COSC 1436 Introduction to Problem Solving with Computers II 4
COSC 2325 Game Design 3
COSC 3301 Cyber Security 3
MATH 2305 Discrete Mathematics I 3
 Hours17
Second Year
Fall
COSC 2334 Computer Architecture 3
COSC 2437 Data Structures 4
PHYS 2425 University Physics I 4
MATH 2414 Calculus II 4
 Hours15
Spring
PHYS 2426 University Physics II 4
MATH 3311 Linear Algebra 3
COSC 3325 Game Programming 3
COSC 3336 Introduction to Database Systems 3
Language, Philosophy & Culture Core Requirement 3
 Hours16
Third Year
Fall
COSC 3324 Object-oriented Programming 3
COSC 3346 Operating Systems 3
COSC 3385 Numerical Methods 3
COSC 4328 Computer Graphics 3
POLS 2305 U.S. Government and Politics 3
 Hours15
Spring
MATH 3342
Applied Probability and Statistics
or Statistical Modeling and Data Analysis
3
COSC 3370 Software Engineering 3
COSC 4342 Computer Networks 3
COSC 4325 Advanced Game Programming 3
ENGL 3310 Technical and Professional Writing for Computer Science 3
 Hours15
Fourth Year
Fall
COSC 4330 Introduction to Artificial Intelligence 3
COSC 4343 Algorithms 3
COSC 4100 Skills for Computing Professionals II 1
Theory Group 3
Approved Upper-Division COSC Course 3
American History Core Requirement 3
 Hours16
Spring
COSC 4354 Senior Capstone Project 3
POLS 2306 State and Local Government 3
American History Core Requirement 3
Creative Arts Core Requirement 3
 Hours12
 Total Hours122

Computer Information Systems

Plan of Study Grid
First Year
FallHours
UNIV 1101 University Seminar I 1
ENGL 1301 Writing and Rhetoric I 3
COSC 1435 Introduction to Problem Solving with Computers I 4
COSC 3100 Skills for Computing Professionals I 1
MATH 2413 Calculus I 4
Social and Behavioral Sciences Core Requirement 3
 Hours16
Spring
UNIV 1102 University Seminar II 1
ENGL 1302
Writing and Rhetoric II
or Foundation of Communication
3
COSC 1436 Introduction to Problem Solving with Computers II 4
MATH 2305 Discrete Mathematics I 3
Creative Arts Core Requirement 3
 Hours14
Second Year
Fall
COSC 2334 Computer Architecture 3
COSC 2437 Data Structures 4
COSC 2470 COBOL Programming 4
Minor Course 3
POLS 2305 U.S. Government and Politics 3
 Hours17
Spring
COSC 3336 Introduction to Database Systems 3
Approved Upper-Division COSC Course 3
Minor Course 3
American History Core Requirement 3
POLS 2306 State and Local Government 3
 Hours15
Third Year
Fall
MATH 3342
Applied Probability and Statistics
or Statistical Modeling and Data Analysis
3
COSC 3346 Operating Systems 3
COSC 3324 Object-oriented Programming 3
Minor Course 3
American History Core Requirement 3
 Hours15
Spring
COSC 3370 Software Engineering 3
ENGL 3310 Technical and Professional Writing for Computer Science 3
Approved Upper-Division COSC Course 3
Life & Physical Science Core Requirement 3
Component Area Option Core Requirement 3
 Hours15
Fourth Year
Fall
COSC 4100 Skills for Computing Professionals II 1
COSC 4342 Computer Networks 3
Approved Upper-Division COSC Course 3
Minor Course 3
Minor Course 3
Life & Physical Science Core Requirement 3
 Hours16
Spring
COSC 4354 Senior Capstone Project 3
Approved Upper-Division COSC Course 3
Minor Course 3
Language, Philosophy & Culture Core Requirement 3
Component Area Option Core Requirement 3
 Hours15
 Total Hours123

Courses

COSC 1315  Computer Literacy  
3 Semester Credit Hours (3 Lecture Hours)  

A balanced introduction to the use and application of computers in modern society involving both descriptive information and hands-on laboratory participation. Includes a discussion of the general principles of operation of a computer and a brief history of the development of computing. The use of a personal computer operating system, common application software, and simple computer programming concepts are introduced. Satisfies university computer literacy requirement.

TCCNS: COSC 1301  
COSC 1320  C Programming  
3 Semester Credit Hours (3 Lecture Hours)  

Introduces the fundamental concepts of structured programming in the C language. Topics include data types; control structures; functions, structures, arrays, pointers, pointer arithmetic, unions, and files; the mechanics of running, testing, and debugging programs; introduction to programming; and introduction to the historical and social context of computing.

Prerequisite: (MATH 1314).

COSC 1330  Programming for Scientists, Engineers, and Mathematicians  
3 Semester Credit Hours (3 Lecture Hours)  

Introduction to computer programming for solving discipline specific problems using computers. Emphasis on the fundamentals of structured design, development, testing, implementation, and documentation.   Includes coverage of language syntax, data and file structures, input/output devices, and disks/files.

TCCNS: ENGR 2304  
COSC 1435  Introduction to Problem Solving with Computers I  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course introduces the fundamental concepts of problem solving and algorithms. A brief introduction to computers and the programming life cycle is covered. The C++ programming language is used to develop basic computer programs demonstrating data types, fundamental control structures, functions, and arrays. MATH 1314 or placement beyond MATH 1314. Offered Fall, Spring, Summer.

Prerequisite: MATH 1314.

TCCNS: COSC 1436  
COSC 1436  Introduction to Problem Solving with Computers II  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course is a continuation of COSC 1435. An introduction to abstract data types and object-oriented programming is covered. Topics include basic searching and sorting algorithms, dynamic allocation, linked lists, inheritance, polymorphism, and recursion.

Prerequisite: COSC 1435.

TCCNS: COSC 1437  
COSC 2325  Game Design  
3 Semester Credit Hours (2 Lecture Hours, 2 Lab Hours)  

This course will teach students the techniques for computer game design and how to work as part of a game development team from initial conception through release, including the game design process, game concepts, how and why we play games, character development, storytelling, user experience, game play, and core mechanics of games.

COSC 2334  Computer Architecture  
3 Semester Credit Hours (3 Lecture Hours)  

A concentrated study of internal computer concepts. Computer organization, machine and assembly language are emphasized.

Prerequisite: (COSC 1435 and MATH 2305).

COSC 2348  Introduction to Scripting  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces students to Windows and Unix/Linux shell scripting. The course covers basic scripting concepts including decision statements, control statements, functions and files manipulation. Advanced scripting tools such as grep, awk and sed are covered in this course.

Prerequisite: (COSC 1435).

COSC 2390  Selected Topics I  
1,3 Semester Credit Hours (1,3 Lecture Hours)  

Variable content. May be repeated for credit depending on topic. Offered on sufficient demand. Does not count toward total hours required for BS in Computer Science.

COSC 2391  Selected Topics II  
1-3 Semester Credit Hours (1-3 Lecture Hours)  

This is a selected topics course with no lab component. Variable content. May be repeated for credit depending on topic. Offered on sufficient demand. Does not count toward total hours required for BS in Computer Science.

COSC 2437  Data Structures  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course provides a thorough study of standard structures used in the storing and retrieving of data and the processes by which these structures are created and manipulated. Topics include: object oriented design, linked lists, classes, trees, graphs, hashing, stacks, queues, sorting, searching, and recursion. A grade of C or better is required in the course to receive credit towards the Computer Science BS program.

Prerequisite: (COSC 1436) and (MATH 2305 or 2305*).
* May be taken concurrently.

TCCNS: COSC 2436  
COSC 2465  Linux Systems  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course focuses on providing students with essential knowledge and skills to implement, administer, and troubleshoot servers in a networked environment. Operating system concepts, such as installing a standalone system, file systems authentication, and user support services are explored. Topics will include security issues, user and group administration, active directory services, DHCP, DNS, SSH, backup and restoration strategies and techniques, integrated mass storage technologies and alternative client technologies.

Prerequisite: COSC 2348.

COSC 2466  Network Systems  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course focuses on the standards and technologies used to establish inter-network structures that will support a TCP/IP data stream for higher-level services to operate over. This course introduces local area networks (LAN) and wide area networks (WAN). Topics include the TCP/IP and open system interconnection (OSI) models, cabling, switches, routers, protocols, subnetting, and networking hardware and software. Initial switch and router configuration will be examined and evaluated.

Prerequisite: COSC 2465.

COSC 2470  COBOL Programming  
4 Semester Credit Hours (4 Lecture Hours)  

A concentrated study of the COBOL language as applied to fundamental business computing problems and other data management applications.

Prerequisite: COSC 1435.

COSC 3100  Skills for Computing Professionals I  
1 Semester Credit Hour (2 Lab Hours)  

This course focuses on beginning to develop professional skills that computer scientists will need to be successful in their careers and lives. Communication skills will include writing and giving oral presentations. Ethical issues will be explored. This is a class for computing professionals. As such, professional decorum will be required at all times.

COSC 3301  Cyber Security  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces students to cyber security. A broad range of cyber security issues will be covered, including social engineering attacks, secure coding, computer security, Internet of Things (IoT) security, mobile security, data security, network security, physical security and forensics.  This course will cover the concepts of prevention, detection, and response to cyber security threats.

Prerequisite: COSC 1435.

COSC 3324  Object-oriented Programming  
3 Semester Credit Hours (3 Lecture Hours)  

A study of concepts, terminology, and methodologies used in object-oriented systems, languages, and applications. Students will design and implement software systems using object-oriented analysis and design techniques.

Prerequisite: COSC 2437.

COSC 3325  Game Programming  
3 Semester Credit Hours (3 Lecture Hours)  

This course will introduce the student to techniques and tools used for all aspects of programming games.  Topics will include game graphics, game physics, game AI, and sound. The course will contain lectures and hands-on labs. Students will work independently and in teams.

Prerequisite: COSC 2437.

COSC 3335  Programming for Unmanned Aircraft Systems  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces software development for Unmanned Systems (US). Students will be introduced to a variety of relevant topics including the different US platforms, design and implementation of algorithms for US, user interface for US, and state-of-the-art US applications, challenges & solutions.

Prerequisite: (COSC 1435 or 1330) and (MEEN 3335).

COSC 3336  Introduction to Database Systems  
3 Semester Credit Hours (3 Lecture Hours)  

A study of contemporary database management system concepts, terminology, and methodology for use and implementation. Commercially available systems are discussed and used with emphasis upon the relational model.

Prerequisite: COSC 2437.

COSC 3346  Operating Systems  
3 Semester Credit Hours (3 Lecture Hours)  

Introduction to operating systems concepts, principles, and design. Topics include: processes and threads, CPU scheduling, mutual exclusion and synchronization, deadlock, memory management, file systems, security and protection, networking, and distributed systems. Selected existing operating systems are discussed, compared, and contrasted.

Prerequisite: (COSC 2437 and 2334).

COSC 3351  Internet Programming  
3 Semester Credit Hours (3 Lecture Hours)  

Study of prominent web technologies with a focus on creating interactive web applications. Both client-side and server-side programming will be covered. Students will design and implement a web based project using technologies covered in class.

Prerequisite: COSC 3336 or 3336*.
* May be taken concurrently.

COSC 3352  Mobile Programming  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces software development for mobile platforms. Students will learn skills for creating and deploying mobile applications. Includes software engineering topics as related to mobile programming, primarily in how software design differs on mobile platforms.

Prerequisite: COSC 2437.

COSC 3353  Survey of Programming Languages  
3 Semester Credit Hours (3 Lecture Hours)  

A study of selected programming languages for students familiar with programming. Students will write programs in a variety of languages.

Prerequisite: COSC 2437.

COSC 3360  Human-computer Interaction  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces concepts and techniques for Human Computer Interaction. Particular emphasis will be placed on vision, audio, and language solutions for use in human-computer interactive systems. In addition, the students will learn how to apply the methods to solve simple HCI problems.

Prerequisite: COSC 1436.

COSC 3370  Software Engineering  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces students to software engineering principles for the development and maintenance of high quality large software systems. Topics include: software life cycle, delivering on time and within budget, and the development and application of processes and tools for managing the complexities inherent in creating these systems.

Prerequisite: COSC 2437.

COSC 3371  Computer Information Systems Economics  
3 Semester Credit Hours (3 Lecture Hours)  

An introduction to concepts in information technology and software engineering with a focus on economics and managerial issues. Topics include cost benefit analysis, software and effort estimation, feasibility analysis, information systems proposals, software team coordination, and project management. May not be used as a CS elective for CS majors.

COSC 3372  Network Security  
3 Semester Credit Hours (2 Lecture Hours, 2 Lab Hours)  

This course provides an introduction to the fundamentals of computer and network security and security laws and ethics, topics include, identification of vulnerabilities, forms of attack, appropriate countermeasures, and the detection and defense of the same. Techniques for the securing of hardware, software and data, including physical security are covered.

Prerequisite: COSC 2466.

COSC 3373  Software Project Management  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces students to the principles for software project management for small and medium-size projects. Many aspects of software project management, including management process, scope definition, time and cost estimation, quality control, human resources, communication, risks and project procurement management will be discussed. A number of applications and tools will be used to implement a class project.

Prerequisite: (COSC 3370).

COSC 3385  Numerical Methods  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces concepts for solving problems numerically using computers. Students will learn about number systems, errors of finite representation, and iteration.  A survey of basic numerical methods including: solutions to nonlinear equations, solutions to linear systems, approximation, interpolation, zeros of functions, numerical differentiation and integration, and Monte-Carlo methods.

Prerequisite: MATH 2413 and (COSC 1330 or 1435).

COSC 3400  Skills for Computing Professionals  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course focuses on the professional skills that computer scientists will need to be successful in their careers. There are two key areas of study, communication skills needed by computer scientists and their ethical responsibilities. Communication skills will include: technical writing from a computer science perspective, presentation skills, client interviewing, and reading technical articles. Ethical issues will be explored from a computer science perspective.

Prerequisite: ENGL 1302.

COSC 3474  Cyber Defense I  
4 Semester Credit Hours (3 Lecture Hours, 2 Lab Hours)  

This course covers cryptographic tools, cryptographic algorithms, types of malicious software, forms of attacks and software security.  Strengths and weaknesses of cryptographic systems are covered as well as the types of attacks on cryptographic systems. Malicious activity signatures, analysis as well as detection will be covered. This course will also cover secure coding principles and types of software issues.

Prerequisite: COSC 3372.

COSC 4100  Skills for Computing Professionals II  
1 Semester Credit Hour (2 Lab Hours)  

This course focuses on technical writing, workplace scenarios and professional skills that computer scientists will need to be successful in their careers and lives. This is a class for computing professionals. As such, professional decorum will be required at all times.

Prerequisite: (COSC 3100 or 1100) and ENGL 3310.

COSC 4310  Digital Forensics  
3 Semester Credit Hours (3 Lecture Hours)  

This course will introduce undergraduate students to the fundamentals of computer forensics and cyber-crime scene analysis. The various laws and regulations dealing with computer forensic analysis will be discussed. Students will be introduced to the emerging international standards for computer forensic analysis, as well as a formal methodology for conducting computer forensic investigations. Several Forensics tools such as Encase and FTK will be used to conduct digital forensics investigations.

Prerequisite: COSC 2437.

COSC 4324  Image Processing  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces concepts and techniques for image processing. The objective of this course is to introduce the fundamental techniques and algorithms used for processing and extracting useful information from digital images. The students will learn how to apply the image processing methods to solve real-world problems.

Prerequisite: COSC 2437.

COSC 4325  Advanced Game Programming  
3 Semester Credit Hours (3 Lecture Hours)  

This course will introduce advanced concepts for game programming to the student. Topics will include game physics, game AI, advanced shaders, 3D techniques, multiplayer techniques, and networking. The course will contain lectures and hands-on labs.

Prerequisite: COSC 3325.

COSC 4328  Computer Graphics  
3 Semester Credit Hours (3 Lecture Hours)  

Basic principles and techniques for computer graphics on modern graphics hardware. Students will gain experience in interactive computer graphics using the OpenGL API. Topics include: 2D viewing, 3D viewing, perspective, lighting, and geometry.

Prerequisite: COSC 2437 and MATH 2413.

COSC 4330  Introduction to Artificial Intelligence  
3 Semester Credit Hours (3 Lecture Hours)  

Foundations, directions, and applications of artificial intelligence including search algorithms, knowledge acquisition, representation, and processing. Students will gain practical experience by implementing many of the basic algorithms.

Prerequisite: COSC 2437.

COSC 4342  Computer Networks  
3 Semester Credit Hours (3 Lecture Hours)  

Computer-based communication systems. Topics include: advanced computer network architectures, protocols, and programming.

Prerequisite: (COSC 2437 and MATH 2413).

COSC 4343  Algorithms  
3 Semester Credit Hours (3 Lecture Hours)  

Advanced programming techniques for algorithmic and heuristic solutions of problems. Topics include: analysis and design of algorithms, testing of algorithms, optimum and exhaustive solutions, and recursion.

Prerequisite: (COSC 2437 and MATH 2413).

COSC 4345  Introduction to Machine Learning  
3 Semester Credit Hours (3 Lecture Hours)  

This course gives a broad introduction to machine learning with more emphasis on intelligent system design. Topics to be covered include linear and logistic regression, neural networks, clustering, classification, decision tree, evolutionary computation, feature selection, and reinforcement learning. The courses will explore various applications of machine learning to computer science, process modeling, pattern and speech recognition, data mining, and bioinformatics.

COSC 4348  Systems Programming  
3 Semester Credit Hours (3 Lecture Hours)  

The design and implementation of system software such as device drivers, application support libraries, and interprocess communication. Students will study and use systems programming tools.

Prerequisite: COSC 3346 and (COSC 3353 or 3324).

COSC 4353  Compiler Construction  
3 Semester Credit Hours (3 Lecture Hours)  

This course introduces the basic concepts and mechanisms traditionally employed in language translators, with emphasis on compilers. Topics include: strategies for syntactic and semantic analysis, techniques of code optimization and approaches toward code generation.

Prerequisite: COSC 3353.

COSC 4354  Senior Capstone Project  
3 Semester Credit Hours (3 Lecture Hours)  

Teamwork and formal methods of systems analysis and design are emphasized. Students will complete a large team project. Fall, Spring.

Prerequisite: (COSC 3370, 3336 and 4100).

COSC 4360  Theory of Programming Languages  
3 Semester Credit Hours (3 Lecture Hours)  

The study of programming language design including syntax, semantics, behavior, and implementation issues in imperative, functional, logic, and object-oriented languages. Other topics include type theory, concurrency, data dependency, and nondeterminism.

Prerequisite: COSC 2437.

COSC 4365  Windows Security  
3 Semester Credit Hours (3 Lecture Hours)  

This course focuses on advanced system administration topics. An in depth understanding of various concepts such as operating systems, servers, file systems authentication, and user support services are explored. Topics include security issues, user and group administration, server and work-station integration, central repositories for updates, Active directory, DMZ, web servers, email servers, electronic system update and maintenance, backup and restoration strategies and techniques, integrated mass storage technologies and alternative client technologies.

Prerequisite: (COSC 2348) and (COSC 2465).

COSC 4367  Firewall and Intrusion Detection Systems  
3 Semester Credit Hours (3 Lecture Hours)  

This is an applied course which focuses on the standards and technologies used to establish inter-network structures that will support a TCP/IP data stream for higher-level services to operate over.  This course introduces firewalls, Intrusion Prevention Systems (IPS), and Intrusion Detection Systems (IDS) technology.  Topics include Windows, Linux, Check Point and Cisco firewalls, TCP/IP and open system interconnection (OSI) models, attack traffic analysis, and network based and host based hardware and software.  Device configuration will be examined and evaluated with appropriate exercises.

Prerequisite: (COSC 4365) and COSC 3372.

COSC 4368  Penetration Testing  
3 Semester Credit Hours (3 Lecture Hours)  

This course focuses to increase the students understanding of how to recognize a potential cyber attacker and identify vulnerabilities through the use of vulnerability analysis tools. Students will audit, monitor, and revise system security to ensure appropriate levels of protection are achieved. Incident response and handling, security log analysis, attacker identification, system recovery and postmortem procedures will be addressed.

Prerequisite: COSC 3474.

COSC 4369  Incident Response  
3 Semester Credit Hours (3 Lecture Hours)  

This course focuses on the standards and technologies used to establish organization structures that will support information technology incident response, business continuity and disaster recovery efforts.  This course introduces incident response, business continuity and disaster recovery planning concepts as well as tools and techniques.  Topics include the development and implementation of incident response, business continuity and disaster recovery plans, attack traffic analysis, and network-based and host-based hardware and software.  Concepts will be examined and evaluated with appropriate exercises.

Prerequisite: COSC 3372.

COSC 4370  Models of Computation  
3 Semester Credit Hours (3 Lecture Hours)  

A study of formal languages, grammars, and associated abstract machine models. Topics include regular and context-free languages and grammars, finite state automata, Turing machines, and the Chomsky hierarchy.

Prerequisite: COSC 4343.

COSC 4396  Directed Independent Study  
3 Semester Credit Hours  

See College description. Offered on sufficient demand.

COSC 4590  Selected Topics  
1-5 Semester Credit Hours (1-5 Lecture Hours)  

Variable content. May be repeated for credit depending on topic. Offered on sufficient demand.

Prerequisite: COSC 4365.

COSC 4690  Contracted Field Experience in Computer Science  
1-6 Semester Credit Hours (6 Lecture Hours)  

Individual contract agreement involving student, faculty, and cooperating agency to gain practical experience in off-campus setting.