
Computer science students take courses in different areas, the most important of which are Computer Science (CSCI) courses, which are taught by CS faculty members. They also frequently take Computer Information Systems (CINF), Computer Engineering (CENG), Software Engineering (SWEN) and Mathematics (MATH) courses.
 |
The 2006-2007 course inventory of these rubrics are listed below. Note that not every course is offering every semester. Check the course offering while planning the study schedule. Students may also check the entire list of UHCL's course roster.
Students should set up their Candidate Plan of Study (CPS) as soon as possible. The CPS specifies which courses will be taken to fulfill required electives. If a students have not yet set up a CPS or want to take different courses than those listed in the CPS to fulfill the required electives, they should consult their advisors first. |
2006-2007 CSCI Course Roster
*Pending Coordinating Board approval
CSCI 3033 CONCEPTS OF DATA STRUCTURES
Prerequisite: Programming in C. An introduction to the concepts of data structures for non-computing majors, including records, tables, linked lists, stacks and queues. Abstract data types, recursion, searching, sorting and an introduction to binary trees. Not to be taken by computing and engineering majors. Laboratory instruction.
CSCI 3131 PROGRAMMING WITH VISUAL BASIC
Programming with Visual Basic with emphasis on object-oriented programming and the uses of integrated development environments. Data types, control structures, functions and subroutines, files, classes, controls. Development using the .NET framework. Laboratory instruction.
CSCI 3132 PROGRAMMING IN PASCAL
Programming with the Pascal programming language with emphasis on structural programming techniques. A study of Pascal including control structures, functions and procedures, arrays, records, I/O, sequential files and relative files. Software development including analysis, design, coding, implementation, testing and documentation. Laboratory instruction.
CSCI 3133 PROGRAMMING WITH C
Prerequisite: Pascal or Ada. Programming techniques with the C programming language, emphasis on modular design, data abstraction and encapsulation using ANSI C. Use of all features of C including arrays, pointers, structures, prototypes, separate compilation and the C-preprocessor. Development of generic functions and study of portability issues. Laboratory instruction.
CSCI 3134 SOFTWARE DEVELOPMENT WITH JAVA
Prerequisite: C, Pascal or Ada. Software development with the Java programming language and the Java class libraries. Design of applets and standalone Java applications. Laboratory instruction.
CSCI 3231 NUMERICAL METHODS
Prerequisite:s Calculus, linear algebra, ordinary differential equations and programming in C, Pascal, Ada or Java. Taylor series and error analysis, interpolation, solution of linear and non-linear equations, least squares, integration of functions and differential equations. Programming assignments. Laboratory instruction.
CSCI 3233 OBJECT-ORIENTED DESIGN AND PROGRAMMING
Prerequisite: Programming in C or Java. Basic elements of object-oriented technology including classes, their attributes, methods and relations to other classes, objects, classification and inheritance, encapsulation, polymorphism, object-oriented analysis, design and programming assignments in C++ language under UNIX. Laboratory instruction.
CSCI 3331 COMPUTER ORGANIZATION AND ASSEMBLY LANGUAGE
Prerequisite: Programming in C. Basic elements of computer hardware and software, data representations, instruction formats and addressing modes, assembly language instructions, programming techniques in assembly language, macro assemblers, link-loaders, functions of operating systems and input/output programming and peripherals. Laboratory instruction.
CSCI 3333 DATA STRUCTURES
Prerequisite:s Programming in C or Java. Prerequisite or corequisite CSCI 3233. Advanced programming techniques and data structures including tables, linked lists, queues and stacks. Abstract Data Types, Recursion, Searching and Sorting. Binary Trees. Elementary algorithm design and implementation. Laboratory instruction in UNIX.
CSCI 3432 ADA PROGRAMMING LANGUAGE
Introduction to the Ada programming language. Emphasis on the systematic design of software in the Ada environment. Laboratory instruction.
CSCI 3532 ADVANCED DATA STRUCTURES AND ALGORITHMS
Prerequisite: MATH 3331 and CSCI 3333 or equivalent. Binary trees, trees, graph theory, finite state automata, external storage devices, sequential and direct file organizations, file processing techniques, hashing, B-trees, external sorting, P and NP problems, algorithmic analysis. Laboratory instruction.
CSCI 3632 ARTIFICIAL INTELLIGENCE PROGRAMMING LANGUAGES
Prerequisite: CSCI 3333. An introduction to AI programming languages. Programming assignments in LISP and PROLOG. Laboratory instruction.
CSCI 3931 SELECTED TOPICS IN COMPUTING
Identified by specific title each time course is offered.
CSCI 4033 CONCEPTS OF DATABASE SYSTEMS
Prerequisite: CSCI 3033. An introduction to the concepts of database systems for non-computing majors, including modeling and implementation of database systems, data models, relational model, database languages, relational algebra, SQL, normalization theory and Web database connectivity. Not to be taken by computing and engineering majors. Laboratory instruction.
CSCI 4037 COMPUTING ESSENTIALS
Modern computing software tools and information technologies taught in a practical, hands-on manner. Topics covered word processing, databases, spreadsheets, presentation software, computer programming, the Internet and development of home pages using HTML and other tools. Emphasis is on the development and application of computer skills to the student's program area. Laboratory instruction. Not for credit for computing science majors.
CSCI 4038 TOPICS IN COMPUTER SCIENCE - NON MAJORS
Identified by topics each time the course is offered. Not to be taken for credit by majors in computing programs. Laboratory instruction.
CSCI 4132 NETWORK PROTOCOLS
Prerequisite:s CSCI 3331 and CENG 3331. Data communications systems software concepts; computer network architecture; ISO model. Laboratory instruction.
CSCI 4134 ADVANCED SOFTWARE DESIGN WITH JAVA
Prerequisite:s CSCI 3134 or equivalent. Advanced software design with the Java programming language, including multi-threaded applications, exception handling, network programming, Java Beans, security issues and advanced AWT usage. Laboratory instruction.
CSCI 4135 ADVANCED SOFTWARE DEVELOPMENT WITH .NET FRAMEWORK AND C#
Prerequisite: CSCI 3333 and CSCI 3233 or CSCI 3134 or equivalent. In depth study of the managed environment provided by .NET Framework and its use of developing advanced windows applications utilizing OOP concepts and techniques. Includes GUI issues, event and exception handling, multi-threading, networking, collections, file and database access as well as an introduction to ASP.NET, Web Forms and Web Services.
CSCI 4230 WEB APPLICATION DEVELOPMENT
Prerequisite:s CSCI 3133, CSCI 3134, CSCI 3333. Survey of languages, tools and techniques for Web application development, HTML, XHTML, CSS, JavaScript, dynamic HTML, Server-side web development using .Net Framework with ASP.NET and C#, Perl, CGI programming with Perl, XML. Laboratory instruction.
CSCI 4233 COMPUTER SECURITY
Prerequisite: CSCI 3331, CSCI 3532. Introduction to encryption, decryption and cryptographical protocols; security components; security policies and mechanisms in computer applications, computer systems and networks; legal/ethical issues in computer security. Laboratory instruction.
CSCI 4333 DESIGN OF DATABASE SYSTEMS
Prerequisite:s CSCI 3333. Design of database systems, data description and manipulation languages, data models, entity-relationship model, relational model, SL, relational algebra, normalization theory, DBMS, Internet, database design, data flow diagrams, and implementation of database systems. Laboratory instruction.
CSCI 4530 COMPUTER GRAPHICS AND INTERFACE DESIGN
Prerequisite:s Calculus I; Linear Algebra. Two-dimensional graphics algorithms, point and coordinate transformations, animation on graphics terminals and systems. Laboratory instruction using Solaris X-Windows-environment.
CSCI 4531 ADVANCED PROGRAMMING IN UNIX
Prerequisite:s CSCI 3133 or equivalent and CSCI 3333. Program development in a multiprocessing environment, including; process and file system data structures, process control, synchronization and communication between concurrent processes, shared memory, threads and signals. Advanced input/output mechanisms such as asynchronous I/O and memory mapped I/O. Library functions including system function and database library routines. Laboratory instruction.
CSCI 4534 OPERATING SYSTEMS
Prerequisite:s CSCI 3331, CSCI 3333, CENG 3531 or equivalents and senior standing. Analysis and design of basic operating systems concepts, including multiprocessing, interprocess communication and synchronization, scheduling, file systems, memory management, input/output and deadlock. Examples drawn from real operating systems including Unix and Windows NT. Laboratory instruction.
CSCI 4634 COMPUTER SYSTEMS ADMINISTRATION
Prerequisite: CSCI 3333. Administration of computers and their operating systems, both as stand-alone and in network topologies. Unix is used as an example. Laboratory instruction.
CSCI 4819, 4839 INDEPENDENT STUDY IN COMPUTER SCIENCE
Prerequisite: Approval of instructor, chair and associate dean.
CSCI 4837 SOCIAL, ETHICAL AND SECURITY-RELATED ISSUES IN COMPUTING
Examination of ethics in computer-related professions. Analysis of case studies. The social impact of computing, especially as related to the Internet, Commerce, Education and Government. Security and Privacy issues in connection with producing and maintaining software and hardware products. Students will make oral presentations, lead group discussions and write technical reports.
CSCI 4838 SENIOR PROJECT IN COMPUTER SCIENCE
Prerequisite: CSCI 3532 and SWEN 4432. May be taken only during the final semester before graduation. Registration is restricted to students with an approved Candidate Plan of Study. Students develop a significant computer application for a realistic project. Emphasis will be on practical experience on all phases of constructing a computer solution. Professional behavior, ethics and teamwork will be developed throughout the project. Students prepare written reports and give oral presentations. Laboratory instruction.
CSCI 4915 COOPERATIVE EDUCATION WORK TERM
Prerequisite:s Approved Candidate Plan of Study, completed cooperative education file and approval of associate dean and Director of Cooperative Education. Educational paid work assignment by a student in the field of career interest and course of study. A technical report will be required at the end of the semester. (Specific requirements are noted in the Cooperative Education Catalog description.)
CSCI 4931 SELECTED TOPICS IN COMPUTER SCIENCE
Identified by specific title each time course is offered.
CSCI 5037 TOPICS IN COMPUTER SCIENCE FOR NON-MAJORS
Identified by topics each time the course is offered. Not to be taken by majors in computing programs. Laboratory instruction.
CSCI 5131 SIMULATION TECHNIQUES
Prerequisite:s Computer language proficiency, numerical methods and probability; linear systems analysis recommended. Modern software techniques in continuous and discrete model construction for industrial and scientific applications. Laboratory instruction.
CSCI 5132 INTERNET PROTOCOLS
Prerequisite: CSCI 3333, CSCI 3532 and CSCI 3331 or equivalents. Interconnection of heterogeneous networks and the layering principles of TCP/IP which make it possible. A brief look at underlying hardware technologies. Internet addressing and routing, reliable and unreliable transport protocols. Application level services available in the Internet.
CSCI 5232 CONCEPTS OF PROGRAMMING LANGUAGES AND COMPILERS
Prerequisite: CSCI 5032 or equivalent. Fundamental concepts in the design and implementation of procedural, object-oriented, functional, declarative and visual programming languages. Introduction to the theory and practice of compiler design. Laboratory instruction.
CSCI 5233 COMPUTER SECURITY & INTEGRITY
Prerequisite:s CSCI 4333, CSCI 4534 or equivalents. Introduction to encryption and decryption; security mechanisms in computer architectures, operating systems, database, networks and introduction to security.
*CSCI 5234 WEB SECURITY
Prerequisite:s CSCI 5233 and CSCI 4230 or instructor's approval. The objectives of this course include fundamental coverage of issues and techniques in developing secure web-based applications and related topics such as network security, web server security, application-level security and web database security, etc.
*CSCI 5235 NETWORK SECURITY
Prerequisite: CSCI 5233 or CSCI 4233 and CSCI 5132 or CSCI 4132. Advanced cryptography, access control, distributed authentication, TCP/IP security, firewalls, IPSec, Virtual Private Networks, intrusion detection systems and advanced topics such as wireless security, identity management, etc.
CSCI 5331 COMPUTER GRAPHICS
Prerequisite:s CSCI 3532, CSCI 4530 or equivalent, linear algebra and analytic geometry. Interactive graphics techniques, three dimensional graphics including 3-D projections, hidden line elimination and shading. Stereo graphics and Virtual Reality. Animation. Laboratory instruction.
CSCI 5332 ADVANCED GRAPHICS WINDOWING SYSTEMS
Prerequisite:s CSCI 3532, CSCI 4530 and C programming. Analysis and design of graphics techniques for windowing systems. Development of graphical user interfaces (GUIs) using the X Window System. Laboratory instruction.
CSCI 5333 DATABASE MANAGEMENT SYSTEMS (DBMS)
Prerequisite: CSCI 4333. Database management systems (DBMS), relational DBMS, object-oriented DBMS, knowledge base management system, database language, query optimization, security and integrity, concurrency control and recovery, design theory of databases. Laboratory instruction.
CSCI 5431 CLIENT-SERVER BASED NETWORK PROGRAMMING
Prerequisite:s CSCI 3133; CSCI 4531 or CSCI 4534. Principles and issues related to the development of client-server based applications. Detailed study of networking API to the TCP/IP protocol suite in a suitable multitasking platform (Unix or Windows NT). Concurrency issues in the design of client and server programs. Trade-offs of different architectures and usage of Remote Procedure Calls. Broadcasting and Multicasting. Interoperability of IPv4 and IPv6 clients and servers. Laboratory instruction.
CSCI 5432 DESIGN AND ANALYSIS OF ALGORITHMS
Prerequisite: CSCI 3532. Review of advanced data structures and algorithm design. Focus on analysis techniques for complex algorithms and data structures, including amortized analysis, randomized algorithms and NP approximations. Includes survey of parallel analysis and complexity theory.
CSCI 5433 OBJECT-ORIENTED DATABASE SYSTEMS
Prerequisite: CSCI 4333, CSCI 4230 recommended. Integration of object-oriented technology with database and Internet technologies, topics include modeling and design for object-oriented database systems, their development processes, implementation of online web database applications using object-oriented languages, scripting languages and object-oriented DBMS to store and retrieve objects in an object-oriented database. Laboratory instruction.
CSCI 5530 PATTERN CLASSIFICATION
Prerequisite:s Calculus, linear algebra, probability, statistics and a compiler language. Introduction to the basic concepts of pattern classification including Bayes decision theory, parametric and non-parametric techniques, linear discriminant functions and clustering. Laboratory instruction.
CSCI 5531 ADVANCED OPERATING SYSTEMS
Prerequisite:s CSCI 4534, familiarity with C and UNIX system calls. Study of current methodologies used in the design of distributed operating systems including issues related to the design of distributed file systems, interprocess communication and synchronization facilities, process, processor and memory management within the context of distributed operating systems. Case studies and review of current literature. Basic introduction to network programming and its application to the design of a simplified component of a distributed operating system. Laboratory instruction.
CSCI 5532 PATTERN RECOGNITION AND IMAGE PROCESSING
Prerequisite:s Calculus, linear algebra, probability statistics and a compiler language. An introduction to basic concepts and techniques for digital image processing, including software and hardware techniques for statistical pattern recognition and extracting useful information from pictures by automatic means. Laboratory instruction.
CSCI 5533 DISTRIBUTED INFORMATION SYSTEMS
Prerequisite:s CSCI 5333. Distributed transparency, distributed database design, distributed query processing, distributed concurrency control and recovery, distributed DBMS. Laboratory instruction.
CSCI 5631 N-TIER CLIENT SERVER ARCHITECTURES
Prerequisite: CSCI 5431 or CSCI 5531. Principles and issues related to the development of interface based software components as the foundation for developing scalable multitier architectures. Topics include interface definition and design, language integration (VB, C++ and Java), concurrency and threading issues, type libraries, distributed components, connectable components and persistence.
CSCI 5633 WEB DATABASE DEVELOPMENT
Prerequisite: CSCI 4230 and CSCI 4333. Principles of design and implementation of web database systems for storing, updating and retrieving data on the web web database development techniques, database modeling, SQL development, web database connectivity, web database application programming. Scripting languages, exchanging data with XML, user authentication, user tracking, session management, e-commerce and web database administration will be covered. Laboratory instruction.
CSCI 5635 PARALLEL PROCESSING
Prerequisite: Background in computer architecture and programming. Integrated discussion of the software and hardware design issues involved in parallel processing. Laboratory instruction.
CSCI 5733 XML APPLICATION DEVELOPMENT
Prerequisite: CSCI 3134, CSCI 4230. XML standards including XML, DTD, DOM, XSL, XSLT, XPath, XPointer and XML Schema. XML related technologies including XML parsers, JAXP, XSL parsers, XML servers, XML databases, SOAP and Web services. Laboratory instruction.
CSCI 5833 DATA MINING TOOLS AND TECHNIQUES
Prerequisite: CSCI 3333 and CSCI 4333. CSCI 5333 recommended. Overview of the data mining process (e.g., CRISP-DM) including issues of data cleansing and data modeling. Characterization of data (structured, unstructured, time series). Examination of machine learners (neural networks, decision trees, genetic programs). Critique of various data mining tools regarding functionality and application. Assessment of data mining domains using financial, bioinformatics and web-based repositories.
CSCI 5915 COOPERATIVE EDUCATION WORK TERM
Prerequisite:s Approved Candidate Plan of Study, completed cooperative education file and approval of associate dean and Director of Cooperative Education. Educational paid work assignment by a student in the field of career interest and course of study. A technical report will be required at the end of the semester. (Specific requirements are noted in the Cooperative Education Catalog description.)
CSCI 5919, 5939 INDEPENDENT STUDY IN COMPUTER SCIENCE
Prerequisite: Approval of instructor, chair and associate dean.
CSCI 5931 RESEARCH TOPICS IN COMPUTER SCIENCE
Identified by specific title each time course is offered.
CSCI 6132 ENTERPRISE NETWORKING
Prerequisite: CSCI 5132. Seminar in enterprise networking; groupware, workflow and workgroup computing. Laboratory instruction.
CSCI 6530 RESEARCH METHODS IN COMPUTER SCIENCE
A study of current methods and techniques in computer science research, including writing research proposals, conducting research, technical writing and presentations.
CSCI 6532 REAL-TIME SYSTEMS
Prerequisite:s Background in operating systems. Major issues in the design and implementation of predictable real-time systems including cyclic executives, fixed priority executives, dynamic priority executives, priority inversion, object-oriented design, real-time transaction systems, real-time programming languages and real-time operating systems. Laboratory instruction.
CSCI 6838 RESEARCH PROJECT AND SEMINAR
Prerequisite: 24 hours completed in graduate program. Attendance to orientation meeting of first class day required. Students will be assigned a research project which requires integrating knowledge and standard procedures in the discipline. A written paper and a presentation will be required.
CSCI 6939, 6969 MASTER'S THESIS RESEARCH
Prerequisite: Approval of faculty advisor, master's committee and Dean.
|