TCU Computer Science Department
 
 TCU Web Site  |  Apply to TCU  |  Campus Calendar  |  Directions
arrow Degree Programs
  arrow Course Listing
  arrow Advising Information
arrow Faculty
arrow Facilities
arrow Resources
arrow Student Organizations
arrow Computer Science Society
CS Degree Programs
Computer Science Course Descriptions

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 20203 - TECHNIQUES IN PROGRAMMING
Prerequisite: COSC 10403 or equivalent and MATH 10052 or equivalent. A study of program development and programming techniques. Structured programming with problems selected from list processing, string processing, and file manipulation. Ethics of the profession will be discussed.


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 30203 - COMPUTER SYSTEM FUNDAMENTALS
Prerequisite: COSC 20803. Introduction to assembly language, linkers, and loaders. Study of the design and implementation of 2-pass assemblers with special attention to symbol tables and the problem of resolving forward and external references.


COSC 30253 - COMPUTER ORGANIZATION (ENGR 3573)
Prerequisites: COSC 30203 (may be concurrent) and MATH 10123 (may be concurrent). 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, buses. The tradeoffs of alternative architectural features such as word size, instruction sets, addressing modes.


COSC 30353 - MICROPROCESSOR BASED DIGITAL SYSTEMS (ENGR 30583)
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.


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 30603 - DATABASE SYSTEMS
Prerequisite: COSC 20803 and MATH 10123. Introduction to 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 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 interprocess communications and controlling concurrent processes; and the differences in batch, time-sharing, and real-time operating systems.


COSC 40603 - COMPILER DESIGN AND CONSTRUCTION
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 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 30453 - COMPUTER ARCHITECTURE (ENGR 30593)
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.


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 30803 - SYSTEM SIMULATION
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 communication 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 40403 - ANALYSIS OF ALGORITHMS
Prerequisites: COSC 20803, MATH 10143, and a knowledge of probability and statistics. Topics concerning what can and cannot be proven about computational complexity, including algorithm design methodologies, techniques 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 40703 - PROGRAMMING LANGUAGE DESIGN
Prerequisite: COSC 40603. Concentration on the issues of programming language design and implementation. Topics will include language constructs, data representation, sequence control structures, data control structures, storage management.


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 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
Prerequisite: 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).


CITE 20970 - TOPICS IN COMPUTER INFORMATION SCIENCE
Prerequisite: COSC 20203. Topics of current interest. May be repeated for credit when the topic changes. (1-3 sem. hrs.)


CITE 30103 - SYSTEM AND NETWORK ADMINISTRATION
Prerequisites: COSC 20203. Overview of operating system services and objectives. Installation and maintenance of Unix, Windows, and Macintosh operating systems. Issues in heterogeneous and homogeneous network maintenance and resource sharing. Introduction to scripting.


CITE 30153 -INTERFACE DESIGN AND SCRIPTING FUNDAMENTALS
Prerequisites: COSC 20203. Fundamental principles of interface design. Using scripts to assemble existing programs into new applications. Topics include GUI and web site design, and cgi-bin applications utilizing platform independent scripting languages.


CITE 30333 - DATABASE ADMINISTRATION
Prerequisites: COSC 30603. Introduction to the database adminstration in both small and large-scale database operations. Course focuses on the setup, analysis, and maintenance of relational databases used in modern applications.

CITE 30363 - WEB TECHNOLOGIES
Prerequisites: COSC 30603 or consent of instructor. This course will provide an overview of current web technologies. The student will study bot client-side and server-side technologies and will learn about web authoring, site management, and distributed web based application.

CITE 30533 - COMPUTERS, TECHNOLOGY, AND SOCIETY
Prerequisites: None. In addition to the benfits from the introduction of new technologies, the costs and risks of such changes should be considered. Class discussions will examine the social, political, legal, and ethical aspects of technology, with an emphasis on computer technology. Experimental activities and selected readings will provide a basis for the discussion. Credit will not be granted for both COSC 10433 and COSC 20533.


CITE 40353 - COMPUTER HARDWARE CONCEPTS
Prerequisites: COSC 20203 and MATH 10123. Introduction to the design and operation of hardware systems that include embedded microcontrollers and microprocessors, and the programming techniques required to control hardware systems.

CITE 40453 - COMPUTING INTERNSHIP
Prerequisites: Junior standing, 2.5 GPA in major, and approval of department chair. Practical experience in computer and information science. Must include a minimum of 260 work hours in approved practical experience situation. Includes 7-8 hours of class meetings. This course may only be taken pass/no credit. Open to CS and CIT majors only.


CITE 40773 - ADMINISTERING COMPUTING RESOURCES
Prerequisites: CITE 30103. Tasks of the computer center manager are studied in the context of the role of administrative decision maker. Management processes, models for tradeoff decisions, behavior concepts, leadership, team dynamics, and infrastructures are covered. Both centralized and distributed models with multiple platforms and networked delivery are considered.


CITE 40913 -ADVANCED TOPICS IN COMPUTER INFORMATION TECHNOLOGY
Prerequisite: Permission of the instructor. Advanced topics of current interest. Students will study current literature. May be repeated for credit when the topic changes.


COSC 10503 - INTRODUCTION TO PROGRAMMING FOR ENGINEERING & SCIENCE
Prerequisite: MATH 10524 or concurrent. Introdcution to computer programming and to problem solving techniques using computer programs with applications in engineering and the physical sciences.


COSC 10203 - COMPUTER LITERACY
Credit will not be given for both MANA 2103 and COSC 10203. Introduction to the history of computers, computer organization, principles of operation, and impact of computers on society. Hands-on experience utilizing a variety of computer software tools including word processing, database management, graphics, and spreadsheet applications.


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 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)

 

© 2007 Texas Christian University, Fort Worth, Texas - All Rights Reserved