DEPARTMENT OF COMPUTER SCIENCE

Course Description

CS 116

Introduction to Computer Science I - NON MAJORS (3)
Study of fundamental concepts of computing: how computers work, what they can do, and how they can be used effectively. Topics covered: spreadsheets, word processing, databases, presentation software, multimedia/graphics software, program design and implementation, and fundamental computing theories. Three hours of lecture per week. Listed in the Texas Common Course Numbering System as COSC 1300.

CS 117

Introduction to Computer Science II - NON MAJORS (3)
Introduction to World Wide Web applications and design, including Web scripting languages and HTML editors. Three hours of lecture per week.

CS 120

Introduction to programming in C++ (3)
Introduction to principles of programming using the C++ programming language as a problem-solving tool. Analysis and formulation of problems for computer solutions. Systematic design, construction, and testing of programs. Required for computer science majors and minors. Programming lab sessions during which students acquire and stregthen their programming skills in C++ are an integral part of this course. Three hours of lecture per week.

CS 124

Fundamentals of Machine Computation (3)
Study of the theory and applications of discrete mathematical structures as a foundation for topics in computer science. Required for computer science majors and minors. Three hours of lecture per week. Prerequisite: MATH 136.

CS 140

Advanced Programming in C++ (3)
Extensive programming using concepts of structures, pointers, advanced file operations, classes, Inheritance, and polymorphism. Three hours of lecture per week. Prerequisite: CS 120.

CS 216

Advanced Applications I - NON MAJORS (3)
Designed for students interested in learning computer programming applications using VISUAL BASIC. Design, implementation, and testing of programs and graphical user interfaces. Process of using VISUAL BASIC to access object oriented model of other applications also considered. Three hours of lecture per week. Prerequisite: CS 117.

CS 241

Object Oriented Programming Using JAVA (3)
The use of modern object oriented programming methodologies such as class inheritance, polymorphism, multithreading, generics, GUI components, and exceptions. JAVA programming language is used. Required for computer science majors and minors. Three hours of lecture per week. Prerequisite: CS 140.

CS 243

Computer Organization (3)
Basic concepts of digital computers: Boolean algebra, combinatorial and sequential logic design, arithmetic/logic units, control units, memory units, and input/output units, flip flops, synchronized and asynchronized counters. Required for computer science majors and minors. Three hours of lecture per week. Prerequisites: CS 124.

CS 246

Data and File Structures (3)
Advanced programming techniques and data structures including tables, linked lists, queues and stacks. Abstract data types, recursion, searching and sorting, hashing, binary trees. External storage devices, file organization, file processing techniques. Required for computer science majors and minors. Three hours of lecture per week. Prerequisites:
CS 124, CS 140.

CS 248

Theory of Computation (3)
Introduction to automata and languages, computability and complexity of algorithms. This course covers graph theory, finite state automata, regular expressions, grammars, algorithm definition, algorithm complexity, class P, class NP algorithms and NP-completeness. Required for computer science majors. Three hours of lecture per week. Prerequisites: MATH 241, CS 243. Corequisite: CS 246.

CS 342

Programming Languages and Design (3)
Introduction to the structure and design of the programming language paradigm, formal specification of syntax, semantics, functional languages, logic languages, parallel languages, data types and interfacing procedures. Social implications of technology and safety issues are also covered. Required for computer science majors. Three hours of lecture per week. Prerequisites: CS 241, CS 248.

CS 343

Microprocessor Design (3)
Rigorous study of the architecture, applications, programming, and interfacing of current microprocessors, co-processors, and controllers. Hardware and software structures found in modern digital computer systems. A detailed case study using a commercial microprocessor or micocontroller will be covered. Required for computer science majors. Three hours of lecture per week. Prerequisite: CS 243.

CS 344

Compiler Design and Construction (3)
Concepts, design, implementation and construction techniques for programming language translators, simple one-pass compiler; lexical analysis; semantics analysis, top-down, bottom-up and operator precedence parsing, left-left and left-right parser techniques. Three hours of lecture per week. Prerequisite: CS 342.

CS 346

Database Management Systems (3)
Theory and current practices in database management systems, data organizational models, including hierarchical and networked, with relational and semantic models stressed. Required for computer science majors. Three hours of lecture per week.

Prerequisites: CS 246, CS 248.

CS 354

Logic Programming Using Prolog (3)
A thorough introduction to logic programming using Prolog. Includes a description of Prolog data objects and introduces the concepts of goal resolution though unification and negation as failure. Programming techniques using control, and predicates and arithmetic operations are also studied. Three hours of lecture per week. Prerequisite: CS 342.

CS 356  

Numerical Analysis (3)
Numerical solution of nonlinear equations, integration, interpolation and data smoothing, systems of linear and nonlinear equations. Three hours of lecture per week.

Prerequisites: MATH 242, MATH 330, CS 140.

CS 415

Computer Ethics and Society (3)
A study of the ethical and social issues related to computers and computer networks. Introduction to the legal, social, and ethical issues of information technology and to software testing and reliability standards. Safety and relevant legal cases will be covered. Required for computer science majors. Three hours of lecture per week. Prerequisite: Junior level standing.

CS 444

Operating Systems (3)
Introduction to the function, internal data structures, and operations of operating systems and their associated file systems. Required for computer science majors. Three hours of lecture per week. Prerequisites: CS 343, CS 346.

CS 448

Computer Networking (3)
Study of current practices in computer networking including ISO standards, layered models, and protocols. Required for computer science majors. Three hours of lecture per week. Prerequisite: CS 444.

CS 456

Software Engineering and Testing (3)
Study of the principles and practices of software engineering. Topics include software quality concepts, process models, and analysis of software requirements, design methodologies, software testing, and software maintenance. Required for computer science majors. Three hours of lecture per week. Prerequisite: CS 444.

CS 457

Artificial Intelligence (3)
Introduction to the fundamental theories, algorithms and representational structures underlying Artificial Intelligence and practice techniques for programming AI applications using Prolog. General areas covered include search techniques, production systems, planning, learning, and connectionist systems. Three hours of lecture per week. Prerequisites: CS 354, CS 346.

CS 460

Computer Graphics (3)
Basic concepts of computer graphics, including programming, hardware, display technology, and data structures for both micros and high-performance workstations. Three hours of lecture per week. Prerequisites: CS 248, CS 356.

CS 497

Advanced Topics (3)
Presentation of advanced topics in computer science by faculty and students. Three hours of lecture per week.

CS 499

Capstone Project (3)
A CS required capstone design course to encourage independent study, project design, and development. Proposal must be submitted and approved during term preceding enrollment. Three hours of lecture per week. Prerequisite: Consent of the Faculty Chair and Senior level standing.