Computer Science Requirements for the B.S. degree with a major in Computer Science
Requirements for a minor in Computer Science
Honors Program
Student Organizations
Pass/No Credit Option
Courses of Instruction


Computer Science is available as a major on the B.S. degree and as a minor on the B.A. and B.S. degrees.

The program in computer science is accredited by the Computing Accreditation Commission of ABET.

Requirements for the B.S. degree with a major in Computer Science

45 semester hours of Computer Science, of which 39 hours must be COSC 10403, 20203, 20803, 30203, 30253, 30353, 30403, 30603, 40203, 40603, 40943, and 40993 and CITE 30533; and six hours of approved Computer Science electives shall be selected from courses at the 30000 level or above. Mathematics and science: 32 hours which must include (1) 17 hours of Mathematics (MATH 10123, 10143, 10524, 30224, and 30803), and (2) a two-semester science sequence (including laboratories) plus two additional one-semester science courses. All science courses must be selected from Biology, Chemistry, Environmental Science, Geology, or Physics. Courses for non-science majors may not be counted in this category. A minimum of 132 semester hours is required. A Computer Science major must have a minimum 2.2 GPA in all Computer Science course work to graduate.

Requirements for a minor in Computer Science

18 hours of Computer Science including: 10403, 20203, 20803, 30203, and an additional 6 hours selected from 30000 and 40000 level courses.

Honors Program

Computer Science and Computer Information Technology majors who are members of the Honors Program and who have a minimum 3.5 GPA in the major may pursue Departmental Honors by enrolling in COSC 50970 during the fall of their senior year and preparing a Senior Honors Project.

Student Organizations

Association for Computing Machinery. The department sponsors a student chapter of the Association for Computing Machinery (ACM), an international organization for computer scientists.

IEEE/CS. The department sponsors a student chapter of the Institute of Electrical and Electronics Engineers/Computer Society, an international organization for computer scientists.

Upsilon Pi Epsilon. The department sponsors a chapter of Upsilon Pi Epsilon, the International Honor Society for the Computing Sciences.

Sigma Xi. The department is a sponsor of the TCU chapter of Sigma Xi, the Honor Society for Research in the Natural Sciences.

Pass/No Credit Option

Students declaring a major in Computer Science may not elect the Pass/No Credit option in any Computer Science course. There are no restrictions on the minor.

Courses of Instruction

COSC 10203 Computer Literacy. Two hours lecture and one and a half hours of laboratory per week. Introduction to the history of computers, computer organization, and principles of operation. Hands-on experience utilizing a variety of computer software tools including word processing, database management, graphics, spreadsheet, and Internet applications.

COSC 10403 Introduction to Programming. Prerequisite: Two years of high school algebra or Math 10023. Introduction to computers, problem solving, algorithm design, and programming techniques. Includes what a computer is and is not, problem organization, data representation, and how to utilize the computer to solve problems. Numerical and non-numerical problems are solved in a high-level programming language.

COSC 10433 Freshman Seminar in Computer Science. Topics may vary each time it is offered.

COSC 10503 Introduction to Programming for Engineering and Science. Prerequisite: MATH 10524 or concurrent. Introduction to computer programming and to problem solving techniques using computer programs with applications in engineering and the physical sciences.

COSC 10533 Freshman Seminar in Computer Science. Topics may vary each time class is offered.

COSC 20101 Assembler Fundamentals. Prerequisite: COSC 10403. Computer structure, machine language, instruction execution, addressing modes, and internal representation of data. Several assembler language programming assignments are required.

COSC 20203 Techniques in Programming. Prerequisites: COSC 10403 or equivalent and MATH 10052 or equivalent. A study of program design, development and programming techniques. Structured programming with problems selected from list processing, string processing, and file manipulation.

COSC 20803 Data Structures. Prerequisites: COSC 20203. Basic concepts of data. Linear lists, strings, and arrays. Representation of trees and graphs. Storage systems and structures. Symbol tables and searching techniques, sorting techniques. Formal specification of data structures and data structures in programming languages.

COSC 20970 Topical Studies in Computer Science. Prerequisites: COSC 20203. Courses dealing with a particular area of investigation in computer science. The topics will be changed from semester to semester and the course may be repeated when the topic is different. (1 - 3 semester hours.)

COSC 30203 Computer System Fundamentals. Prerequisite: COSC 20803. Introduction to assembly language and the corresponding machine representation, assemblers, linkers, and loaders. Study of the design and implementation of 2-pass assemblers with special attention to symbol tables and the problems of resolving forward and external references.

COSC 30253 Computer Organization. COSC Prerequisites: COSC 30203 (may be concurrent) and MATH 10123, or, ENGR prerequisites: ENGR 30444. Corequisite: COSC 20101. Treatment of sequential and combinatorial circuits including flip-flops, multiplexers, decoders, adders, registers, counters. Design of functional components, of a computer including memory, ALU, control unit, busses. The tradeoffs of alternative architectural features such as word size, instruction sets, addressing modes. (Offered as COSC or ENGR credit.)

COSC 30353 Microprocessor Based Digital Systems. Prerequisite: COSC 30253. Introduction to the design of microprocessor based digital systems including the study of processor control signals, address decoding and memory interfacing, interfacing to serial and parallel ports, A/D conversion, and interrupt processing. Features of state-of-the-art microprocessors will be discussed. Both hardware and software assignments will be required. (Offered as COSC 30353 or ENGR 30583.)

COSC 30403 Programming Language Concepts. Prerequisite: COSC 20803. A study and comparison of the concepts and constructs of major programming language paradigms. Topics include evolution of programming languages, formal definition (syntax and semantics), data types, scope, subprograms, data abstraction. Students will review a published paper in the area of programming languages. Lab assignments are given in languages selected to illustrate paradigms.

COSC 30453 Computer Architecture. Prerequisite: COSC 30253. The logical organization and functional behavior of digital computers are studied. Fundamental principles in the design of the CPU, memory, I/O devices, and bus structures are presented. Performance enhancement topics such as caching, memory interleaving, interconnection schemes, pipelining, memory management, reduced instruction sets (RISC) and multiprocessing are discussed. (Offered as COSC 30453 or ENGR 30593.)

COSC 30503 Advanced Systems Programming. Prerequisite: COSC 30203. Introduction to the systems software features provided by a modern operating system. The techniques and problems associated with the use of concurrent execution of multiple tasks (spawning new tasks from within a task; intertask communications, synchronization, and termination; the use of low-level I/O primitives; and methods for dealing with mutual exclusion, race conditions, and deadlock). Students will be required to develop command language procedures and write programs which invoke operating system services.

COSC 30603 Database Systems. Prerequisite: COSC 20803, and MATH 10123. Introduction to the design, implementation, and use of relational database systems. Topics include entity-relationship modeling, dataflow modeling, relational algebra and tuple calculus, normalization, SQL, external data structures, query optimization, and transaction processing.

COSC 30703 ADA Software Development and Programming. Prerequisite: COSC 20803. Introduction to the problems associated with the development of large software systems and the features of the Ada programming language that can be used to attack many of these problems. Emphasis will be on those features of Ada that distinguish it from most other programming languages including the use of packages, formal specifications of interfaces, use of private types, operator overloading, tasking, representation clauses, exception handlers, and generics.

COSC 30803 Simulation Techniques. Prerequisites: COSC 20803. Discrete event simulation programming and analysis techniques for simulation experiments. Includes experimental sampling and model development in a special purpose simulation language.

COSC 40003 Computer Networks. Prerequisite: COSC 30253. Introduction to basic data communications concepts, including hardware and software aspects of protocols, asynchronous and synchronous communication, network configurations, and error detection. This course includes the study of both local area networks and long haul networks, the 7 layer ISO network model, the architecture of networks, and network communication protocols. Local and wide area networks including the internet and world wide web will be discussed.

COSC 40103 Graphics. Prerequisites: COSC 30253 and a knowledge of linear algebra MATH 30224. A basic course in graphics systems. Considers the equations of lines, planes, and surfaces; hidden line algorithms; rotations, scaling, and cutaway transformations; 3-D images and the use of shading and perspective; animation; and color graphics.

COSC 40203 Operating Systems. Prerequisites: COSC 30253 and MATH 10143. Introduction to operating systems principles. Includes management of CPU, memory, peripherals, and information; the problems associated with communications and controlling concurrent processes; and the differences in batch, time-sharing, and real-time operating systems.

COSC 40403 Analysis of Algorithms. Prerequisites: COSC 20803, MATH 10143, and a knoweldege of probability and statistics. Topics concerning what can and cannot be proven about computational complexity, including algorithm design methodology, techinques for analysis of space and time requirements, and P and NP completeness.

COSC 40503 Artificial Intelligence. Prerequisite: COSC 30603. Introduction to knowledge representation and methods for intelligent search. Fundamental topics include state space search, logic, and inference engines. AI languages Prolog, Lisp, and Clips will be used to explore additional topics selected from two-person games, expert systems, automated theorem proving, planning, and machine learning.

COSC 40603 Compiler Theory. Prerequisites: COSC 30203, COSC 30403, and MATH 10143. Formal description of algorithmic languages, such as Pascal, and the techniques used in writing compilers for such. Topics include syntax, semantics, storage allocation, code generation, error handling and diagnostics, code optimization, etc. Includes the definition and writing of a compiler for a simple programming language.

COSC 40803 Advanced Topics in Computer Hardware. Prerequisite: Permission of instructor. Advanced topics of current interest in computer hardware, such as computer design, computer networks, advanced computer graphics. Students will study current literature. May be repeated for credit when topic changes.

COSC 40903 Advanced Topics in Computer Software. Prerequisite: Permission of instructor. Advanced topics of current interest in computer software, such as natural language programming, advanced operating systems, advanced compiler design, file structures, advanced database. Students will study current literature. May be repeated for credit when topic changes.

COSC 40943 Software Engineering. Prerequisite: Senior standing. Stages of the software development lifecycle (requirements analysis, specification, design, implementation, testing), evolution, and quality assurance. Classical and alternative process models and techniques are described and discussed. Management issues, professional responsibilities, and ethics of the profession are covered. Includes team projects and individual requirements analysis effort.

COSC 40993 Senior Design Project. Prerequisite: COSC 40943. Senior computer science majors are required to demonstrate their mastery of several computer science topics and their ability to communicate the results of their efforts to others. They are required to identify and analyze a computer science problem, develop and implement a workable solution to the problem, and then document the results of their efforts.

COSC 50123 Object-Oriented Design and Programming. Prerequisite: COSC 30403 or permission of instructor. Introduction to object-oriented techniques including design methodologies and programming language support. Survey of new languages and extensions to existing languages which provide support for encapsulation, inheritance, and polymorphism.

COSC 50133 Formal Languages. Prerequisites: COSC 40603. Languages and grammars which can be characterized in formal terms, for the purpose of constructing models for artificial (computer) languages. Topics will include finite automata, push down automata, Turing machines, solvable and unsolvable problems, etc.

COSC 50970 Special Topics in Computer Science. Prerequisite: Permission of instructor. (1-6 semester hours).

Texas Christian University