2004 - 2006 Undergraduate Catalog
Introduction (home)
Contents / Site Map
Policies / Procedures
Tuition and Fees
Financial Aid
Campus Resources
Degree Requirements
Undergraduate Programs
Course Descriptions
Academic Calendar
Board of Regents
Correspondence Directory
Alphabetical Index
UTD Home Page
Online Catalogs Index
Graduate Catalog

Computer Science Course Descriptions

CS 1136 Computer Science Laboratory (1 semester hour) Optional laboratory course for CS 1337. This course teaches basic computer literacy/programming skills: disk operating system (DOS) commands (to format disks and to create, manipulate, and remove directories and files), the authoring of ASCII text files, compiler usage in converting source programs into executable form, printer commands. CS 1336 students should enroll in this laboratory. (0-2) S
CS 1336 Programming Fundamentals (3 semester hours) Introduction to computers. Primitive data types, variable declarations, variable scope, and primitive operations. Control statements. Methods/functions, including recursion. Arrays, including implementation of a stack data structure and strings using primitive data arrays. Output formatting. Debugging techniques. Designed for students with no prior computer programming experience. (3-0) S
CS 1337 Computer Science I (3 semester hours) Introduction to object-oriented software analysis, design, and development. Classes and objects. Object composition and polymorphism. Sorting, searching, recursion. Strings and stacks using core classes. Inheritance and interfaces. Graphic User Interfaces. Includes a comprehensive programming project. Prerequisite: CS 1336 or equivalent programming experience. (3-0) S
CS 2110 Introduction to Digital Systems Laboratory (1 semester hour) Laboratory to accompany CS 2310. The purpose of this laboratory is to give students an intuitive understanding of digital circuits and systems. Laboratory exercises include construction of simple digital logic circuits using prototyping kits and board-level assembly of a personal computer. Corequisite: CS 2310. (0-2) S
CS 2305 (MATH 2305) Discrete Mathematics for Computing I (3 semester hours) Principles of counting. Boolean operations. Logic and methods of proof. Sets, relations, functions, strings, and languages. Prerequisite: MATH 1326 or MATH 2417 or consent of the instructor. (3-0) S
CS 2310 Introduction to Digital Systems (3 semester hours) Introduction to hardware structures and assembly-language concepts that form the basis of the design of modern computer systems. Internal data representation and arithmetic operations in a computer. Basic logic circuits. MIPS assembly language. Overview of PC architecture. Prerequisite: CS 1337. (3-0) S
CS 2336 Computer Science II (3 semester hours) Exceptions and number formatting. File input/output using Stream classes. Implementation of primitive data structures, including linked lists (all types), stacks, queues, and binary trees. Advanced data manipulation using core classes. Introduction to multithreading, multimedia, and networking. Includes a comprehensive programming project. Prerequisite: CS 1337. (3-0) S
CS 2V95 Individual Instruction in Computer Science/Software Engineering (1-6 semester hours) Individual study under a faculty member’s direction. May be repeated for credit. Consent of instructor required. (Same as SE 2V95) ([1-6]-0) R
CS 3195 Special Topics in Computer Science/Software Engineering (1 semester hour) May be repeated for credit (4 hours maximum). Must be taken Credit/No Credit. Consent of instructor required. (Same as SE 3195) (1-0) R
CS 3305 Discrete Mathematics for Computing II (3 semester hours) Topics in enumeration; principle of inclusion and exclusion. Partial orders and lattices. Algorithmic complexity; recurrence relations. Graph theory. Prerequisite: CS 2305. (3-0) S
CS 3333 Data Structures (3 semester hours) Programming with basic data structures (arrays, stacks, queues, lists, and trees) and their associated algorithms. Various sorting and searching techniques. Fundamental graph algorithms. This course covers much of the same material as CS 3345 without requiring the analysis of algorithms. Computer Science majors may NOT take this course. This course may not be taken for degree credit by students who have completed CS 2336 (C/C++). Prerequisite: CS 1337 or CS 3335 or equivalent programming experience. (3-0) Y
CS 3335 C and C++ (3 semester hours) Numerous programming projects in both C and C++. All fundamentals of C, with special emphasis on use of pointers. Use of C++ extensions to create and extend (by inheritance) abstract data types. The use/advantages of virtual functions (dynamic polymorphism). Prerequisite: CS 2336 or equivalent programming experience. (3-0) S
CS 3341 Probability and Statistics in Computer Science and Software Engineering (3 semester hours) Axiomatic probability theory. Calculation of probabilities of compound events, with illustrations from Computer Science and Software Engineering examples. Random variables. Synthesis of important random variables from CS/SE-related random experiments–binomial, geometric, multinomial, Poisson, exponential, and related distributions. Expectation. Important functions of random variables and evaluation of distributions of functions. Generation of random numbers of various distributions, starting from the standard uniform random number generators. Sums of independent random variables. Convolution and the use of transforms in simple cases involving exponential and Poisson random variables. Illustrative examples and simulation exercises from queuing, reliability, and program analysis disciplines. Elements of parameter (point) estimation. Prerequisites: MATH 1326 or MATH 2419, and CS 2305. (Same as SE 3341) (3-0) S
CS 3345 Data Structures and Introduction to Algorithmic Analysis (3 semester hours) Analysis of algorithms including time complexity and Big-O notation. Analysis of stacks, queues, and trees, including B-trees. Heaps, hashing, and advanced sorting techniques. Disjoint sets and graphs. Course emphasizes design and implementation. Prerequisites: CS 2336 and one of CS 3305 or SE 2370. (Same as SE 3345) (3-0) S
CS 3354 Software Engineering (3 semester hours) Introduction to software life cycle models. Software requirements engineering, formal specification and validation. Techniques for software design and testing. Cost estimation models. Issues in software quality assurance and software maintenance. Prerequisites: CS 2336 or CS 3333, and CS 2305. (Same as SE 3354) (3-0) S
CS 3375 Principles of UNIX (3 semester hours) Design and history of the UNIX operating system. Detailed study of process and file system data structures. Shell programming in UNIX. Use of process-forking functionality of UNIX to simplify complex problems. Interprocess communication and coordination. Device drivers and streams as interfaces to hardware features. TCP/IP and other UNIX inter-machine communication facilities. Prerequisite: CS 2336 (C/C++) or CS 3333 or CS 3335 or equivalent programming experience, including knowledge of C. (3-0) S
CS 3385 Ethics, Law, Society, and Computing (3 semester hours) Issues of professional ethics; computer crime; wiretapping and encryption; protecting software and other intellectual property; privacy and information; careers and computers; reliability and safety; constitutional issues. Broader issues on the impact and control of computers. (3-0) S
CS 3V95 Undergraduate Topics in Computer Science/Software Engineering (2-9 semester hours) Subject matter will vary from semester to semester. May be repeated for credit (9 hours maximum). (Same as SE 3V95) ([2-9]-0) S
CS 4334 Numerical Analysis (3 semester hours) Solution of linear equations, roots of polynomial equations, interpolation and approximation, numerical differentiation and integration, solution of ordinary differential equations, computer arithmetic, and error analysis. Prerequisites: CS 1337, MATH 2418, MATH 2421. (Same as MATH 4334) (3-0) Y
CS 4336 Advanced Java (3 semester hours) Advanced Java programming techniques integrating the technologies of advanced swing GUI components, JavaBeans, Java Servlets and Server Pages, XML, Security, Java Database Connectivity, Remote Method Invocation, and Software applications for Wireless Devices. Students will have the opportunity to work on their own E-Business Solutions. Prerequisite: CS 2336. (3-0) T
CS 4337 Organization of Programming Languages (3 semester hours) Language definition structure, data types and structures, control structures and data flow, run-time considerations. Interpretive languages; functional programming. Prerequisites: CS 2336 or CS 3333, and CS 2305. (3-0) S
CS 4340 Computer Architecture (3 semester hours) Boolean algebra and logic circuits; register transfer operations; design of a small computer; input, output, and interrupt organization; powerful addressing modes, instruction formats, and their hardware structures; microprogram control. Prerequisite: CS 2305 or TE 3307. (Same as SE 4340) (3-0) S
CS 4347 Database Systems (3 semester hours) This course emphasizes the concepts and structures necessary for the design and implementation of database management systems. Topics include data models, data normalization, data description languages, query facilities, file organization, index organization, file security, data integrity, and reliability. Prerequisite: CS/SE 3345. (Same as SE 4347) (3-0) Y
CS 4348 Operating Systems Concepts (3 semester hours) An introduction to fundamental concepts in operating systems: their design, implementation, and usage. Topics include process management, main memory management, virtual memory, I/O and device drivers, file systems, secondary storage management, and an introduction to critical sections and deadlocks. Prerequisites: CS 4340, one of CS/SE 3345 or TE 3346, and a working knowledge of C and UNIX. (Same as SE 4348) (3-0) S
CS 4349 Advanced Algorithm Design and Analysis (3 semester hours) Asymptomatic analysis, recurrences, and graph algorithms. Algorithm design techniques such as greedy method, dynamic programming, and divide-and-conquer. Issues from computational complexity. Course emphasizes a theoretical approach. Prerequisite: CS/SE 3345. (3-0) S
CS 4361 Computer Graphics (3 semester hours) Review of graphic display architecture and graphic input devices. Two- and three-dimensional transformations, matrix formulations, and concatenation. Clipping and windowing. Data structures for graphics systems, segmented display files, rings, etc. Hidden line and surface elimination. Shading. Graphics packages and applications. Prerequisites: MATH 2418, CS 2336, and CS/SE 3345. (3-0) Y
CS 4365 Artificial Intelligence (3 semester hours) Basic concepts and techniques that enable computers to perform intelligent tasks. Examples are taken from areas such as natural language understanding, computer vision, machine learning, search strategies and control, logic, and theorem proving. Prerequisites: CS 2336 and CS/SE 3345. (3-0) Y
CS 4376 Object-Oriented Programming Systems (3 semester hours) In-depth study of the features/advantages of object-oriented approach to problem solving. Special emphasis on issues of object-oriented analysis, design, implementation, and testing. Review of basic concepts of object-oriented technology (abstraction, inheritance, and polymorphism). Object-oriented programming languages, databases, and productivity tools. Prerequisite: CS 2336 or equivalent programming experience. (Same as SE 4376) (3-0) S
CS 4380 Senior Design Project (3 semester hours) Detailed design, implementation, and testing of a system or component under the guidance of a faculty member. Specific technical requirements will be specified 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. May be repeated for credit (6 hours maximum) to complete a two-semester project. Prerequisite: CS/SE 3345. (3-0) Y
CS 4384 Automata Theory (3 semester hours) A review of the abstract notions encountered in machine computation. Topics include finite automata, regular expressions, PDAs, and context-free languages. Prerequisite: CS 3305. (3-0) S
CS 4386 Compiler Design (3 semester hours) Basic phases of a compiler and their design principles. Topics include lexical analysis, basic parsing techniques such as LR(K) and LL(K) grammars. Prerequisites: CS/SE 3345 and CS 4384. (3-0) T
CS 4390 Computer Networks (3 semester hours) The design and analysis of computer networks. Topics include: the ISO reference model, transmission media, medium-access protocols, LANs, data link protocols, routing, congestion control, internetworking, and connection management. Prerequisite: CS/SE 3345. (Same as TE 4390) (3-0) S
CS 4391 Introduction to Computer Vision (3 semester hours) Techniques for manipulating and extracting information from digital images and video. Topics include color representations, analysis and processing based on image histograms, geometric transformations, convolutions, image blurring and sharpening, extraction of edges, matching, image and video motion. Prerequisites: CS/SE 3345. (3-0) Y
CS 4392 Computer Animation (3 semester hours) Introduction to traditional animation. Kinematics of motion. Key framing. Coordinate systems and transformations (review), Euler angles and Quaternions, Catmull Rom and B-Splines, Advanced Key framing, articulated figures (forward kinematics), human and animal modeling (soft tissue, skin, etc.). Facial animation (parametric). Physically based modeling (rigid, collision detection). Physically based modeling (deformable). Behavioral and heuristic models. Algorithmic animation. Optimization techniques. Animation languages and systems. Motion capture and real time control. Virtual reality and animation. Rendering and temporal aliasing. 2D and 3D morphing. 3D modeling. Prerequisites: MATH 2418 and CS 2336 or CS/SE 3345. (3-0) Y
CS 4393 Computer and Network Security (3 semester hours) The study of security and vulnerabilities in computer and network systems. Common attacking techniques such as buffer overflow, viruses, worms, etc. Security in existing systems such as UNIX, Windows, and JVM. Fundamental access control and information flow concepts. Symmetric Ciphers such as DES and AES. Public-key encryption techniques and related number theory. Message authentication, hash functions, and digital signatures. Authentication applications, IP security and Web security. Prerequisites: CS/SE 4348 and CS/TE 4390. (3-0) Y
CS 4394 Implementation of Modern Operating Systems (3 semester hours) This course focuses on developing systems implementation skills through a set of projects. Each project will explore one fundamental component of operating systems such as process scheduling, memory management, device drivers, file systems, and network communication management. The projects are expected to involve kernel-level programming. Prerequisites: CS 4348 (OS) and CS 3335, or equivalent programming experience. (3-0) Y
CS 4396 Networking Laboratory (3 semester hours) This course will enable students to gain hands-on experience with real networks by building networks in a laboratory environment. Projects may include establishing an intra-domain routing infrastructure in the laboratory; establishing inter-domain network topologies with BGP used to connect the different autonomous systems; running network services/applications on top of this network, including DHCP, DNS, HTTP, configuring firewalls; and network management with SNMP. Prerequisites: CS 4348 and CS 4390. (3-0) Y
CS 4397 Embedded Computer Systems (3 semester hours) Introduction to embedded computer applications and concepts. Real-time operating systems and resource management. Real-time scheduling and communication. Senior data acquisition, processing and fusion. Error handling, fault tolerance, and graceful degradation. System performance analysis and optimization techniques. Includes a project to develop and analyze a small embedded computer application. Prerequisite: CS 4348. (3-0) Y
CS 4399 Senior Honors in Computer Science/Software Engineering (3 semester hours) For students conducting independent research for honors theses or projects. (Same as SE 4399) (3-0) R
CS 4V95 Undergraduate Topics in Computer Science/Software Engineering (1-9 semester hours) Subject matter will vary from semester to semester. May be used as CS Guided Elective on CS degree plans. May be repeated for credit (9 hours maximum). (Same as SE 4V95) ([1-9]-0) R

General Information
Computer Science
Electrical Engineering
Software Engineering
Telecommunications Engineering




This catalog is a general information publication only. It is not intended to nor does it contain all regulations that relate to students. The provisions of this catalog do not constitute a contract, express or implied, between any applicant, student or faculty member and The University of Texas at Dallas or The University of Texas System. The University of Texas at Dallas reserves the right to withdraw courses at any time, to change fees or tuition, calendar, curriculum, degree requirements, graduation procedures, and any other requirements affecting students. Changes will become effective whenever the proper authorities so determine and will apply to both prospective students and those already enrolled.

Statement on Equal Educational Opportunity
The University of Texas at Dallas is committed to an educational and working environment that provides equal opportunity to all members of the University community. In accordance with federal and state law, the University prohibits unlawful discrimination on the basis of race, color, religion, national origin, gender, age, disability, and veteran status. Discrimination on the basis of sexual orientation is also prohibited pursuant to University policy.