Computer Science Courses (CS)
See Course & Instructor Information for current offerings and syllabus listings.
1191 Freshman Research I. Freshman research for students selected for a freshman research grant. This course satisfies the first semester of that research requirement.
Prerequisite: Approval from department chair is required prior to enrollment.
1314 Introduction to Programming and Problem Solving (3-0). Basic competency in computer programming, ability to solve problems by writing computer programs, knowledge of the Python language and an introductory knowledge of object-oriented programming.
1315/COSC 1315 Fundamentals of Programming (3-0). Introductory computer programming techniques using a modern, object-oriented programming language.
1336/COSC 1336 Computer Science I (3-0). Fundamental concepts
of structured computer programming and a comprehensive introduction
to programming for computer science and technology majors. Topics include software development methodology, data types, control structures, functions, use of common data structures, and the mechanics of running, testing, and debugging computer programs.
1337/COSC 1337 Computer Science II (3-0). Object-oriented
programming paradigm, emphasizing the definition and use of classes
along with fundamentals of object-oriented design. Basic analysis of
algorithms, searching and sorting techniques, and an introduction to
software engineering processes. Students will apply techniques for testing and debugging software.
Prerequisite: Computer Science 1336.
1351 Java Programming (3-0). Programming concepts and development in the Java language.
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.
1391 Freshman Research II. Freshman research for students selected for a freshman research grant. This course satisfies the second semester of that research requirement.
Prerequisite: Approval from department chair is required prior to enrollment.
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.
2336/COSC 2336 Data Structures and Algorithms (3-0). Fundamental concepts of data structures and algorithms. Topics include data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), searching, sorting, recursion, and algorithmic analysis. Programs will be implemented in an appropriate object oriented language.
Prerequisite: Computer Science 1337.
3304 Computer Organization (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 1337.
3310 Principles of Linux (3-0). This course will introduce the students to UNIX and systems programming. Students will use a Linux environment to learn user and administrative commands, create scripts using shell scripting languages, and program using C language, implementing UNIX concepts such as processes, inter-process communication and sockets.
Prerequisite: Computer Science 1337.
3311 Database Systems (3-0). Introduction to database systems,
including the relational data model, query languages, database design,
index and file structures, query processing and optimization, concurrency and recovery, transaction management and database design, and database security. Students acquire hands-on experience in working with database systems and in building web-accessible database applications.
Prerequisite: Computer Science 1337.
3312 Web Programming (3-0). Developing interactive web applications. Learning front-end and back-end web development, focusing on technologies like HTML, CSS, JavaScript, and frameworks for building responsive user interfaces. Server-side programming using contemporary languages and working with databases. Web security, APIs, and deployment practices. Creating full-stack web applications and deploying on the web.
Prerequisite: Computer Science 3311 or Management 4344.
3313 Cloud Computing (3-0). This course introduces the cloud
computing concepts from both a technical and business standpoint. Topics covered include cloud architecture, services, security, server and storage virtualization, mobile cloud computing, compliance, and technical support, as well as cloud principles, administration, and data center relocation. Preparing for industry certifications is included in coverage.
Prerequisite: Computer Science 2336.
3325 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.
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 2336.
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 Analysis of Algorithms (3-0). Algorithm analysis, review of
basic data structures, binary search trees, balanced binary search trees, priority queues and heaps, hash tables, sorting and selection algorithms, greedy algorithms, divide-and-conquer, dynamic programming, graph algorithms, shortest paths, minimum spanning trees, network flow, NP-completeness, approximation algorithms, randomized algorithms.
Prerequisite: Computer Science 2336.
Prerequisite or Corequisite: Mathematics 2305
3371 Computer Game Development I (3-0). Introduction to the design and implementation of computer games, including realtime graphics, audio and interactive multimedia programming techniques.
Prerequisite: Computer Science 2336.
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.
Prerequisite: Computer Science 2336.
4071 Internship: 1 to 3. Supervised internship with an approved cooperating business or government entity. The internship requires a minimum of ten hours per week. May be repeated for a total of three credits.
Prerequisites: Junior or Senior Computer Science major. Approval from the department chair is required prior to enrollment.
4091 Research: 1 to 6. Supervised research with a faculty member for students majoring in computer science. May be repeated for a total of six credits.
Prerequisites: Junior or Senior Computer Science major. Approval from the department chair is required prior to enrollment.
4301 Automata Theory and Formal Languages (3-0). An introduction
to the formal study of automata and of related formal languages with applications in computer science.
Prerequisite: Computer Science 2336.
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 2336.
4303 Operating System Security (3-0). Modern operating systems security concepts. Access control fundamentals, security in ordinary operating systems, security kernels, securing commercial operating systems, case studies, secure capability systems, secure virtual machine systems, and system assurance.
Prerequisite: Computer Science 4320.
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.
Prerequisite: Computer Science 2336.
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 2336 and Mathematics 2312.
4310 Database Security (3-0). An overview of database security concepts and techniques and will discuss new directions of database security. The topics will cover database application security models, database and data auditing, XML access control, trust management, and privacy protection.
Prerequisite: Computer Science 4320.
4312 Internet Technologies (3-0). Technologies that make up the Internet including servers, clients, protocols, browsers and mechanisms for executable content.
Prerequisite: Computer Science 2336.
4314 Computer Networks (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.
4318 Artificial Intelligence (3-0). Fundamental concepts and techniques of intelligent systems; representation and interpretation of knowledge on a computer; search strategies and control.
Prerequisite: Computer Science 2336.
4319 Machine Learning (3-0). Introduction to machine learning and statistical pattern recognition. Supervised and unsupervised learning and reinforcement learning of algorithms. Application of machine learning algorithms using open-source software libraries.
Prerequisite: Computer Science 2336.
4320 Introduction to 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.
4321 Deep Learning (3-0). This course introduces the fundamental
concepts and techniques of deep learning. Topics include neural networks, backpropagation, convolutional networks, recurrent networks, and practical applications in areas such as computer vision and natural language processing. Students will implement deep learning models using frameworks like TensorFlow or PyTorch.
Prerequisite: Computer Science 4319.
(Pending THECB approval)
4322 Image Processing (3-0). This course focuses on the fundamentals of image processing and analysis. Topics include image enhancement, filtering, edge detection, image segmentation, and morphological operations. Students will implement techniques in Python and apply them to tasks such as object recognition and image restoration. (Pending THECB approval)
4325 Robotics (3-0). This course covers the principles and technologies behind robotics systems, including sensors, actuators, kinematics, control algorithms, and robot vision. Students will learn to design and program autonomous robots capable of navigating and interacting with their environment. (Pending THECB approval)
4327 Reinforcement Learning (3-0). This course covers the core
principles of reinforcement learning, including Markov decision processes, dynamic programming, Q-learning, and policy gradient methods. Students will learn how to design agents that can learn and adapt to dynamic environments, with practical applications in AI game design and robotics. (Pending THECB approval)
4330 Introduction to Data Science (3-0). Utilize tools and writing programs for acquiring, cleaning, analyzing, exploring, and visualizing data; making data-driven inferences and decisions; and effectively communicating results. Learning data manipulation, data analysis with statistics and machine learning, data communication with information visualization, working with big data using scalable techniques.
Prerequisite: Computer Science 2336.
4333 Data Mining (3-0). This course explores techniques for discovering patterns and insights from large datasets. Topics include classification, clustering, association rule mining, and anomaly detection. Students will apply algorithms such as decision trees, k-means, and Apriori using tools to solve real-world data problems.
Prerequisite: Computer Science 3311.
(Pending THECB approval)
4335 Big Data (3-0). This course introduces students to the challenges and techniques of handling large-scale data. Topics include distributed data processing, Hadoop, MapReduce, Spark, and NoSQL databases. Students will work with big data tools to process and analyze massive datasets in real-world scenarios.
Prerequisite: Computer Science 3311.
(Pending THECB approval)
4338 Knowledge Engineering in AI (3-0). This course explores
the techniques of knowledge representation and reasoning in AI systems. Topics include ontologies, expert systems, rule-based reasoning, and semantic web technologies. Students will apply knowledge engineering methods to build intelligent systems capable of solving complex problems.
Prerequisite: Computer Science 3311.
(Pending THECB approval)
4339 AI Systems and Applications (3-0). This course covers
the design and implementation of AI systems across various domains. Topics include search algorithms, optimization, intelligent agents, and decision-making systems. Students will build AI applications in fields such as healthcare, finance, and robotics, integrating AI techniques into practical solutions.
Prerequisite: Computer Science 4318.
(Pending THECB approval)
4340 Offensive Security Techniques (3-0). This course will introduce cybersecurity practices of penetration testing and malware analysis. In virtual machine environments, the students will freely but safely exploit system vulnerabilities by deploying offensive security techniques, such as reconnaissance and backdoor, and determine how to avoid such problems.
Prerequisites: Computer Science 1314, 3310, 4314, 4320.
4341 Natural Language Processing (3-0). This course introduces
the foundational methods in natural language processing (NLP),
including text preprocessing, syntactic and semantic analysis, machine translation, and sentiment analysis. Students will implement NLP algorithms using libraries for real-world language-based applications. (Pending THECB approval)
4350 Advanced Offensive Security Techniques (3-0). This is the second course in the offensive security series. Some of the topics that will be discussed: malware development strategies such as shellcode payloads and buffer overflow exploitations, reverse engineering approaches for locating software flaws and malware analysis, and scripting techniques for attacking web applications.
Prerequisites: Computer Science 3304, 4340.
4360 Host and Device Security (3-0). This course will discuss methods used to ensure confidentiality, integrity and availability of information using host and device-based security techniques. Topics covered are operating systems security configuration, access control and malware defense on individual hosts, security techniques on networking devices such as switches and routers, firewall designs and implementations, intrusion detection and prevention systems, and public facing security techniques, such as demilitarized zones.
Prerequisites: Computer Science 3310, 4314, 4320.
4370 Software Security (3-0). This course is a study of the foundation of software security. Students will learn the characteristics of secure software, the role of security in the development life cycle, designing secure software, best security programming practices, security for web applications, static analysis techniques, and software security testing.
Prerequisite: Computer Science 2336, 4320.
4371 Computer Game Development II (3-0). Continuation of Computer Science 3371. Advanced game programming techniques, including designing game mechanics, concepts of emergence and progression, and the use of visual design tools.
Prerequisite: Computer Science 3371.
4375 Cybersecurity Risk Management (3-0). An overview of cyber risk management concepts and techniques. Risk identification, assessment, and management. An overview of frameworks, relevant regulations, and available tools. Risk-based assessment, including reporting audit issues, and designing internal controls. Risk management with governance models and risk management techniques.
Prerequisite: Computer Science 4320.
4380 Ethical Issues in Software Security (3-0). An introduction of ethics in software development and security, enabling students to reason about the consequences of security-related choices and effects in software development, testing and vulnerability disclosure. Topics will include code reuse (licensing), professional responsibility, codes of ethics, liability aspects of software, regulations, compliance and ethical implications of testing.
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.)
4389 Digital Forensics (3-0). Introduction to the topics of computer forensics, computer crimes, response to security incidents, cybercrime investigation and prosecution. Students will learn about legal issues, investigatory process, digital forensic tools, acquisition, preservation, analysis and authentication of evidence. Optional topic will include mobile forensics.
Prerequisite: Computer Science 2336, 4320.
4390 Cryptography (3-0). An introduction to important cryptographic concepts and techniques. Topics will include classical cryptography (codes, substitution ciphers, transposition ciphers), block and stream ciphers, secret-key ciphers (Feistel, DES, AES), public-key cryptography (RSA, key agreement, signature schemes), hash functions (such as MD6 and SHA-2). Optional topics will include cryptanalysis, steganography and quantum cryptography.
Prerequisites: Computer Science 2336 and Mathematics 2305.
4392 Cloud Security (3-0). Industry is increasingly adopting to run its IT and applications in the cloud. But off-premises on-demand infrastructures give rise to new security concerns. This course first addresses detecting risks and vulnerabilities of current cloud platforms using penetration-testing techniques. This course then focuses on securing the cloud by deploying security mechanisms such as isolation, data protection, identity and access management. This course will also cover governance, audit, legal issues and meeting regulatory compliance in a cloud environment.
Prerequisite: Computer Science 4314, 4320.
4399 Senior Design Project (3-0). Capstone project experience in designing, implementing, and testing an assigned hardware and/or software application in a team setting using techniques, methods, and skills learned in earlier classes. Students report progress via documentation, meetings and demonstrations. Class concludes with a presentation and demonstration of the completed product to students, faculty and project sponsors.
Prerequisite: Senior standing (Computer Science, Cybersecurity,
or Artificial Intelligence majors only).
Game Development Sequence
Students electing an emphasis in game development take the following courses:
- 1371 Introduction to Computer Game Development
- 3371 Computer Game Development I
- 3372 Handheld Game Development
- 4318 Artificial Intelligence
- 4371 Computer Game Development II
Earlier Course Descriptions
For a list of course descriptions prior to fall 2008, contact the computer science program.