Computer Science (COMPUTER)

COMPUTER 5030 Artificial Intelligence 3 Credits

A study of knowledge representation, search techniques, expert systems, predicate calculus, and natural languages. Discussion of the successes and limitations of past and current AI programs. Programming assignments in LISP and Prolog illustrate formal topics. P: COMPUTER 2630 and MATH 2730.
Components: Class
Typically Offered: Spring

COMPUTER 5430 Object-Oriented Analysis and Design 3 Credits

Requirements engineering, analysis, and specification using the object-oriented paradigm. Object-oriented architectural and detailed design. Use of an OOAD modeling language such as UML. Investigation of OOAD patterns. Moderate size, group project. P: SOFTWARE 2730 and COMPUTER 2430.
Components: Class
Typically Offered: Fall

COMPUTER 5520 Programming Language Structures 3 Credits

A study of programming language topics which include data objects, data types, storage management, syntax, BNF descriptions, semantics, lexical analysis and parsing. Examples taken from traditional languages as well as more modern languages. P: COMPUTER 2630, Object-oriented Programming and Data Structures II.
Components: Class

COMPUTER 5730 Software Quality 3 Credits

Study of topics related to producing quality software, including software quality assurance, quality metrics, configuration management, verification and validation, reviews, inspections, audits, and software process improvement models. Individual and team projects. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Laboratory, Class
Typically Offered: Fall

COMPUTER 5860 Software Maintenance and Reengineering 3 Credits

Study of the topics related to maintaining large-scale software systems. Study of software engineering topics such as estimation, software quality assurance, metrics, configuration management, verification and validation, inspections, and personal and team software process as they relate to software maintenance projects. Coverage of traditional analysis and design methods such as structured analysis and design. Two, semester-long, team-based projects: reengineering a small system to be object-oriented and making changes to a moderate-sized existing software project. P: SOFTWARE 3430/COMPUTER 5430 Object-Oriented Analysis and Design, COMPUTER 2630 Object-Oriented Programming and Data Structures II.
Components: Class
Typically Offered: Spring

COMPUTER 5870 Web Protocols, Technologies and Applications 3 Credits

The course will introduce the students to Protocols and Technologies in Web applications. The Client/Server concept and some advanced database concepts will also be covered. The emphasis of the course will be using tools such as ASP.NET for rapid development of Web Applications and Web Services. JavaScript and C# will also be employed.
Components: Class
Typically Offered: Fall

COMPUTER 5920 Computer Graphics 3 Credits

An introduction to computer graphics including raster hardware, standard graphics software packages and important algorithms such as window-to-viewport mapping; clipping of lines, characters and polygons; 2D and 3D transformations and hidden line/surface removal. P: COMPUTER 2630 and MATH 3230.
Components: Class

COMPUTER 6130 Real-Time Embedded Systems Programming 3 Credits

An exploration of programming techniques and constructs used to develop reliable software systems capable of responding in real time to environmental changes. An overview of the platforms, tools, and processes used in developing software for embedded systems. Hands-on lab projects experimenting with real-time embedded systems programming details. P: COMPUTER 2630 and SOFTWARE 3430 and (COMPENG 3780 or COMPUTER 3230).
Components: Class
Typically Offered: Fall

COMPUTER 6830 Special Topics in Computer Science 1-3 Credits

The subject matter and instructor for each instance of this class will be listed in the class schedule. Students should check with the instructor for details.
Components: Class
Typically Offered: Fall

COMPUTER 7120 Software Project I 2 Credits

Participation in a semester-long, group software development group project, typically at the student's home university. Software engineering techniques and principles will be applied in the development of the project. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Class
Typically Offered: Spring

COMPUTER 7220 Software Project II 2 Credits

Participation in a semester-long, software development group project. This course is only open to JIM-CS students in their "abroad" semester. Application of software engineering techniques and principles to the development of the project. P: COMPUTER 2630 and SOFTWARE 2730.
Components: Class
Typically Offered: Fall

COMPUTER 7360 Advanced Operating Systems 3 Credits

This course will cover advanced OS topics, which include concurrent processing, inter-process communication, process synchronization, deadlocks, introduction to queueing theory and operational analysis, topics in distributed systems and algorithms, check pointing, recovery, multiprocessor operating systems
Components: Class

COMPUTER 7380 Advanced Database Management Systems 3 Credits

Overview of Database Systems, Relational Model, Relational Algebra, Relational Calculus and SQL. Study of Database Applications Development, including modeling and designing database systems, and the implementation of Database-Backed Internet applications. Cover advanced Database topics such as Storage and Indexing, Query Evaluation, Transaction Management, Concurrency Control and Crash Recovery.
Components: Class

COMPUTER 7460 Computer Security 3 Credits

Introduction to the concepts, theory, and application of Computer Security. Topics include cryptography, digital signatures, authentication and identification schemes, viruses, worms, firewalls, and electronic commerce. P: COMPUTER 3830.
Components: Class

COMPUTER 7630 Compiler Construction 3 Credits

Study of the theory and design techniques used in compiler construction, including lexical analysis, parsing, grammars, semantic analysis, code generation, and optimization. P: COMPUTER 3520.
Components: Class

COMPUTER 7640 Machine Learning 3 Credits

This course is designed to give graduate-level students a thorough foundation in methodologies and technologies needed for conducting research in machine learning and solving real-world problems using machine learning knowledge. The topics include general machine learning concepts and techniques such as expectation-maximization, maximum likelihood estimation, gradient descent as well as specific supervised, unsupervised and reinforcement learning methods such as inductive inference, artificial neural network, support vector machines, clustering, Markov decision processes, etc. Students will have the opportunity to experiment with machine learning techniques and apply them to selected problems in projects.
Components: Class

COMPUTER 7660 Computer Vision 3 Credits

This course introduces the basic concepts in computer vision. It covers the following topics: An introduction to low-level image analysis methods, including image formation, edge detection, feature detection, and image segmentation; Image transformations (e.g., warping, morphing, and mosaics) for image synthesis; Methods for reconstructing three-dimensional scene information using techniques such as depth from stereo, structure from motion, and shape from shading; Algorithms on motion and video analysis; and three-dimensional object recognition algorithms.
Components: Class

COMPUTER 7720 Human-Computer Interaction 3 Credits

Human-Computer Interaction is the study of how people interact with computers. This course is an overview with a blend of theory and practice pertaining to the study of interaction with information systems. The course covers background relating to user-centered approaches in the design and evaluation of information systems applications. Areas to be addressed include the user interface and software design strategies, user experience levels, interaction styles, usability engineering, web site usability, and collaborative systems technology. Students will perform formal interface evaluations and usability tests applied to current information systems technology.
Components: Class

COMPUTER 7820 Advanced Algorithms 3 Credits

This course covers the advanced paradigms for the design and analysis of efficient algorithms, including dynamic programming, optimal greedy algorithms, amortized analysis, parallel algorithms, computational geometry algorithms, NP-hard and NP-complete problems, approximation algorithms, network flow algorithms, and randomized algorithms.
Components: Class

COMPUTER 7830 Special Topics in Computer Science 1-3 Credits

Specific contemporary issues or other issues related to Computer Science will be explored in depth. Topics vary. P: consent of instructor.
Components: Class
Typically Offered: Spring

COMPUTER 7920 Seminar Paper Research 1-3 Credits

The student will be required to carry out a project and write a technical paper in computer science. The student must demonstrate the ability to survey a field of knowledge and assemble, organize, evaluate, interpret, and present evidence in a logical and intelligent manner. P: Completion of at least 15 credits of computer science graduate courses.
Components: Seminar

COMPUTER 7980 Independent Study in Computer Science 1-4 Credits

The amount of graduate credit allowed for independent study may not exceed a total of four credits except with the special permission of the student's advisor and the Dean/Director of the School of Graduate Studies. Approval must be secured before independent study courses are begun. Students registering for independent study must submit at or before registration a description signed by the instructor conducting the independent study of the subject to be covered. Independent study may not be used for collecting information for the seminar paper.
Components: Independent Study
Typically Offered: Fall/Spring

COMPUTER 7990 Thesis Research 3-6 Credits

The thesis may be an outgrowth of a research course (e.g. TEACHING 7000 Research Procedures) or may be developed independently within the program area. The thesis will report the results of original and independent student research on a given problem or topic, by systematic and impartial methods, and will demonstrate the student's ability to use techniques customarily employed in the particular field of investigation. Although a thesis for the master's degree may not always be expected to make a significant contribution to existing knowledge, it should be a scholarly document that is accurate, verifiable, objective, and impartial. In consultation with the program advisor, the student proposes a committee of three faculty members. The committee normally includes the thesis advisor, one additional major department member, and one faculty member from another department. In some instances, a student may prefer a thesis advisor who is different from the program advisor assigned at the time of admission. An approved thesis proposal must be submitted and approved prior to registration. There is a website with useful links to guide the graduate student in grammar, style, evaluating web resources, and formats. (Thesis students will find the Texas A and M link useful for formatting procedures and other technical assistance.) The thesis advisor will provide guidance regarding the site. The site may be accessed through the University's Karrmann Library.
Components: Thesis Research
Typically Offered: Fall/Spring