> Academics > Course
Descriptions > Undergraduate
COSC 1301 (3-3-0) Introduction to Computers
An introduction to the science of computing, with emphasis on the history and terminology of computer construction, operation, and data processing. Ethical standards for computing are stressed. Homework assignments develop skills in computer operation, Word processing, Spreadsheets, Databases, and Presentation software, and can be completed on either the student's personal computer or an on-campus laboratory computer. Fall, Winter, Spring, Summer, Online.
COSC 1302 (3-3-0) Introduction to Computer Science and Programming
An introduction to the discipline of computer science. Topics include algorithms, data representation and storage, hardware and software organization, networking, the Internet, computer security, ethical and social issues, and fundamental problem solving and programming skills. This course also includes an introduction to programming concepts and skills with a modern programming language such as Python.
COSC 1405 (4-3-2) Foundations of Computer Science I
Computer programming in a high-level, block structured language. Basic concepts: the role of algorithms in the problem-solving process, basic data types and variables, memory usage, control structure (sequential, selection, repetition, functions and parameter passing), recursion, console and file input/output. Lab fee. Fall.
Prerequisite: MATH 1303 or Math Advising Tool for entrance into MATH 1405.
COSC 1408 (4-3-2) Foundations of Computer Science II
Introduction to object-oriented programming. Basic concepts: abstract data types; encapsulation; classes; inheritance, polymorphism, dynamic function binding, strings, stacks, queues, lists, and trees, event handling in modern languages, introduction to modern APIs. Lab fee. Spring.
Prerequisite: COSC 1405.
COSC 2306 (3-3-0) Data Structures and Introduction to Algorithms
Design and analysis of algorithms with an emphasis on data structures. Basic concepts including: identifying differences among best, average, and worst case behaviors; algorithmic strategies such as brute-force and divide-and-conquer; fundamental computing algorithms, including searching, sorting, and recursive algorithms; and data structures such as lists, trees, hash tables, and graphs.
Prerequisite: COSC 2403.
COSC 2403 (4-3-2) Object-Oriented Analysis and Design
Provides practical skills in the latest object-oriented analysis and design methods using the Unified Modeling Language (UML) and Java programming language. Basic concepts: Use case diagrams, object models, packages and subsystems, classes, object behavior and attributes, encapsulation and interfaces, inheritance and composition, polymorphism and collections. Lab fee. Fall.
Prerequisite: COSC 1408.
COSC 2405 (4-3-2) Programming Languages
An introduction to the syntax and semantics of programming languages. Basic concepts: evolution of procedural languages, object-oriented paradigm and languages, declarative (non-algorithmic) languages, scripting paradigm and languages. Actual programming languages are used to illustrate the concepts and virtual architectures of procedural, functional, and object-oriented languages. Lab fee. Offered periodically.
Prerequisite: COSC 1408.
COSC 3301 (3-3-0) Database Systems
Introduction to the design and implementation of database systems. Topics include data modeling, database normalization, SQL database definition/manipulation language, stored procedures, transaction management, database applications, and database security. Fall.
Prerequisite: COSC 2306
COSC 3305 (3-3-0) Computer Organization and Architecture
Basic structure of digital computer hardware and hardware-software interface. Computer organization, including simple digital logic building blocks, such as logic gates, flip-flops, registers, logic expressions, and computer arithmetic. Fundamentals of computer design, such as main memory organization, memory hierarchy, instruction set architectures, assembly languages, multiprocessing and multicore, and pipelining. Basics of input and output, including interrupts, buses, DMA (Direct Memory Access), and storage technologies. Fall.
Prerequisite: COCS 1408.
COSC 3306 (3-3-0) Networks and Telecommunication
Design and analysis of computer networks. Basic concepts: background and architecture of the Internet; five-layer and seven-layer reference models; TCIP/IP; packet switching; transport protocols; flow control; congestion control; local area networks; routing; network application architectures such as client/server.
Prerequisite: COSC 3305.
COSC 3310 (3-2-2) Computer Graphics
Survey of present display and input technology. Basic concepts: raster and vector graphics systems: video display devices; physical and logical input devices; issues facing the developer of graphical systems; hierarchy of graphics software; user interface design and use of graphics software packages; virtual reality; multimedia data technologies. Concepts will be reinforced through the design and implementation of an application using available hardware and software. Lab fee. Offered periodically.
Prerequisite: COSC 3405 or permission of instructor.
COSC 3408 (4-3-2) Computer Security I
This course provides an introduction to principles and practices of computer security, from the perspective of both system designers and system maintainers. Topics include network security, intrusion detection, attack types, system vulnerabilities and exploits, securing and hardening individual systems, and password security. Labs will include material such as network scanning, vulnerability exploitation, intrusion detection systems, and password attacks. Lab fee.
Prerequisite: COSC 2306 or instructor approval. COSC 3306 or concurrent enrollment recommended.
COSC 3410 (4-3-2) Web Site Development and Programming
Prerequisite: COSC 2403.
COSC 4011 (0-3-0) Computer Science 8-12 Seminar
This required course is designed to help students prepare for the Texas Examination of Educator Standards (TExES). The course will focus on content and sample questions from state authorized preparation manuals distributed by the Educational Testing Service. Information will also be gleaned from the state publication Proficiencies for Teachers in Learner-Centered Schools and other appropriate sources. Students must score a minimum of 85% on the TExES post-test in order to be authorized by the College of Education to take the TExES examination. Fall, Spring.
COSC 4305 (3-3-2) Computers for the Teacher
A study of computers and their role in education, including design of curriculum materials for courses in computer science and computer-related mathematics; paradigms for teaching essential elements; and evaluation and selection of hardware and software. Lab fee. Offered periodically.
Prerequisite: COSC 2306.
COSC 4308 (3-0-6) Senior Project in Computer Science (S-L)
Detailed design, implementation, and testing of a system or component under the guidance of a faculty member. Specific technical requirements will be set up by the individual faculty member teaching/supervising the course. All students must submit a written report and make an oral presentation at the culmination of the project. This course contains a field-based service-learning component. Spring, Fall.
Prerequisite: Completion of COSC core courses and senior standing.
COSC 4401 (4-3-2) Operating Systems
An introduction to fundamental concepts in operating systems, their design, implementation, and usage. Basic concepts: process management - concurrency and scheduling; main memory management; virtual memory; input/output and device drivers; file systems; secondary storage management, security and protection; real-time systems. Lab fee. Spring, Periodically.
Prerequisite: COSC 2403.
COSC 4402 (4-3-2) Software Engineering (S-L)
Introduction to software life cycle models, software requirements engineering, formal specification and validation. Basic concepts: software metrics (product and process metrics); introduction to software standards and documentation; software quality assurance; configuration management and control Project planning and risk management; software estimation; software maintenance and re-engineering. Lab Fee. This course contains a field-based service-learning component. Spring.
Prerequisite: COSC 2403.
COSC 4403 (4-3-2) Mobile Cloud Computing
Introduction to the mobile and cloud computing technologies. Topics include mobile device apps development, basic concepts and service models of cloud computing technologies including Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), and examples of cloud computing platform such as Google Cloud Platform and Amazon Web Service.
Prerequisite: COSC 3301.
COSC 4408 (4-3-2) Computer Security II
This course provides detailed coverage and understanding of principles, technologies, and practices of computer security. In depth coverage of topics such as network and wireless network security, system vulnerabilities and exploits, cryptography, and hardening computer systems. Introduction to recent topics such as mobile device security. Labs will include material such as network scanning, vulnerability exploitation, wireless security, forensic analysis, and intrusion detection systems.
Prerequisite: COSC 3408 (Security I), COSC 3306 (Networking), and COSC 4401 (Operating Systems) completion or concurrent enrollment.
COSC 4409 (4-3-2) Big Data Technologies
This course explores data mining methodologies and algorithms for big data analytics including introduction of Big Data, Association Rules, Classification, Clustering, and PageRank. The primary tools introduced and used in this course include MongoDB, NoSQL, R, Python for data sciences, and particularly Hadoop platform and its associated components and technologies including MapReduce, HDFS, PIG, and Hive. Lab Fee. Spring, Periodically.
Prerequisite: COSC 3301, Python recommended.