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.

© 2009 Texas Southern University, all rights reserved
3100 Cleburne Street, Houston, TX 77004
Phone: 713-313-7011