Computer Science and Information Systems

Sang C. Suh (Department Head)
Location: Journalism Building, 903-886-5409
Computer Science and Information Systems Web Site: http://www.tamuc.edu/academics/colleges/scienceEngineeringAgriculture/departments/computerScienceInformationSystems/default.aspx

Dr. Sang Suh, Department Head

To meet the diverse needs of the computing industry, the Department of Computer Science and Information Systems offers two master’s degree programs that blends applied and theoretical computer science concepts.

The computing facilities include both PC- and UNIX-based environments on an assortment of modern, general-purpose computing systems. All systems are networked for local and worldwide communications. Specialized multimedia and graphics facilities also are available within the department.

The department offers service courses for the University in the areas of introductory computer applications and applications in education.

Programs of Graduate Work

Master of Science in Computer Science

The MS in Computer Science program consists of core courses, which are required of all students, course electives, and specialized courses within one of four tracks: database, computer networking, information security, and artificial intelligence.  Electives and track areas of study are chosen by the student.  The core courses, specialized track courses, and electives enable students to devise a degree plan that meets their individual professional interests as well as the needs of industry.  In addition, each student may choose a thesis or a non-thesis option.  Upon approval of the departmental graduate advisor and the Graduate School, the department will allow the transfer of up to 6 graduate hours in Computer Science.

Admission

Admission Inquiries: csdept@tamuc.edu

Admission to a graduate program is granted by the Dean of Graduate Studies upon the recommendation of the department, scores on the Graduate Record Examination (GRE) and undergraduate grade point average.  Students need to submit the official application form, the application fee, and official bachelor's degree transcripts (with a copy of the provisional certificate or diploma, if one is granted).  Students are required to have and document one of the following in order to be considered for admission: an official GRE score; OR undergraduate GPA of at least 3.0 or higher overall from a regionally accredited institution; OR completed master's degree from a regionally accredited institution with at least a 3.0 GPA.  If the degree is from an international university, a transcript evaluation may be required by an approved certified agency for equivalency of the GPAs from a regionally accredited institution for the above GRE requirements.  International students also need to submit official sponsor statements and a bank statement from their sponsor with a certain minimum required balance.

Students entering the graduate program must satisfy the specified computer science deficiency requirements by appropriate course substitution or by passing a competency examination prior to enrollment in graduate courses.

Admission Requirements

Master of Science in Computational Science

The Master of Science in Computational Science is a Professional Degree designed to create a workforce of individuals prepared to meet the challenges of the dynamic and very competitive contemporary market.  For this program, pedagogy and practice are integrated to provide students with significant skills and professionalism required by the working environment.  The internship experience is an integral aspect of this program, which will provide the students with practical experience and better prepare them for a wide variety of career options.

Admission

Admission Inquiries: csdept@tamuc.edu

Admission to a graduate program is granted by the Dean of Graduate Studies upon the recommendation of the department, scores on the Graduate Record Examination (GRE) and undergraduate grade point average.  Students need to submit the official application form, the application fee, and official bachelor's degree transcripts (with a copy of the provisional certificate or diploma, if one is granted).  Students are required to have and document one of the following in order to be considered for admission: an official GRE score; OR undergraduate GPA of at least 3.0 or higher overall from a regionally accredited institution; OR completed master's degree from a regionally accredited institution with at least a 3.0 GPA.  If the degree is from an international university,  a transcript evaluation may be required by an approved certified agency or equivalency of the GPA's from a regionally accredited institution for the above GRE requirements.  

Students entering the graduate program must satisfy the specified computer science deficiency requirements by appropriate course substitution or by passing a competency examination prior to enrollment in graduate courses.

In addition to computer science majors, we encourage applicants from diverse backgrounds such as physical sciences and/or life sciences who are interested in computing and computer applications.

Note: The Department reserves the right to suspend from the program any student who in the judgment of the departmental graduate committee, does not meet the professional expectations of the field.

CSCI 502 - Statistics for Scientific Computation and Analysis
Hours: 3
Hours: Three. This course provides an introductory framework for the statistical background required for scientific computation and data analysis. The course introduces fundamental statistical concepts such as probability, random variables, probability distributions, statistical expectation, sampling distributions, hypothesis testing, linear regression, correlation, and visualization/plotting of data, with emphasis on applications to scientific computing and computational science problems. Concepts will be reinforced by having students use a statistical/scientific computing & visualization software in order to apply the concepts that they learn by solving problems from various disciplines.

CSCI 505 - Internship
Hours: 3
This course gives students the opportunity to earn credit while obtaining valuable working experience. This course is offered to students who have obtained an internship with a company or organization that employs personnel with computer science and information technology skills. Students are supervised by the employer and by Computer Science faculty.

CSCI 507 - Computational Science Internship
Hours: 1-6
Internship - One to Six semester hours. This course gives students the opportunity to earn course credit while obtaining valuable working experience. Offered to students who have obtained an internship with a company or organization that employs personnel with computational science skills. Students are supervised by the employer and by Computer Science faculty. Student will submit a written internship report. MS in Computational Science degree requires that each student either does a Master’s Thesis or CSCI 507 Internship for total of 6 credit hours. Prerequisites: CSCI 509, CSCI 502, CSCI 515, CSCI 530, CSCI 532, CSCI 549, and departmental approval.

CSCI 509 - Introduction to Computational Science
Hours: 3
This course provides an introduction and framework for the MS in Computational Science program. The course emphasizes the multidisciplinary nature of computational science and provides students with basic tools and concepts needed for the degree program. Three main areas are covered: 1) basic software development, software engineering and programming skills and high level scientific tools and environments, 2) introduction to high performance computing environments and parallel and distributed programming techniques, and 3) basic computational modeling and mathematical simulation techniques for scientific problem solving. Prerequisites: CSCI 515 Fund Programming CSCI 502 Stat Sci Computation Analysis Instructor's approval needed if being taken concurrently with the pre-requisites.

CSCI 515 - Fundamentals Of Programming C/C++
Hours: 4
Three hours of lecture and two hours of lab. This is an advanced programming course using a high level programming language. Specific objectives are to introduce the development of algorithms as a disciplined approach to problem solving; to present programming practices in design, decoding, debugging, testing and documentation of computer programs; to provide the student with the basic knowledge necessary for further study in the field of computer science. Prerequisites: CSci 504 or consent of the instructor.

CSCI 516 - Fund Concepts Computing/Mach O
Hours: 3
Fundamental Concepts in Computing and Machine Organization. Three semester hours. Concepts of assembly language programming and machine organization of a modern digital computer are presented. Students will have the opportunity to study machine addressing, stack operations, subroutines, programmed and interrupt driven I/O, machine organization and computer architecture at the register level. Students will utilize the 80x86 instruction set and will perform programming exercises. Prerequisite: CSCI 515 or programming experience in a higher level language.

CSCI 518 - Thesis
Hours: 3-6
Thesis. Six semester hours.

CSCI 520 - Information Structures and Algorithm Analysis
Hours: 4
Three hours of lecture and two hours of lab. The concept of abstract data structures forms the basis for the study of the data structures introduced in this course. Well known, basic data structures and the algorithms associated with them form the primary subject matter. Knowledge of these basic data structures will allow the student to create large scale programs which process meaningful amounts of data. Comparative efficiency analysis of the algorithms studied in the course will be introduced. The student will also become acquainted with formal methods for specifying abstract data types as well as algorithms. Prerequisites: CSCI 515.

CSCI 524 - Analysis & Design Softwr Sys
Hours: 3
Systems Analysis and Design. Three semester hours. This course will provide the student with the opportunity to experience the several phases of conventional software development. Established software engineering practices will be presented. Various software architectures will be introduced. Each student is expected to fully participate in a team project over the course of the semester. Prerequisites: CSCI 515 and 520.

CSCI 525 - Networking I
Hours: 3
This course covers the basic principles and operations of Local Area networks or LANs. Such topics include basic data communications, and the OSI model, protocols and topologies. In addition, the networking aspects of Netware 3.12 and Windows NT will be studied in depth. Students will have the opportunity to gain "hands on" experience with the installation, administration, and operating characteristics of Netware 3.12 and Windows NT. Those wishing to take the various networking certification exams will find this course helpful.Co-requisites: CSCI 516 and 520.

CSCI 526 - Database Systems
Hours: 3
Basic database concepts, organization, and definitions; data and management systems; data description languages; logical and physical differences of database; indexed and multiple-key organization; relational database concepts and examples; and comparison of database systems. Prerequisite: CSCI 515 or consent of instructor.

CSCI 527 - Advanced Databases
Hours: 3
Advanced Databases. Three semester hours. General theory, concept, and techniques related to allow students the design of intelligent databases will be discussed. Other topics to be covered include expert systems, neural networks, hypermedia, and text retrieval. A moderate-size semester project will be assigned to practice the design of an intelligent database. Prerequisite: CSCI 526.

CSCI 528 - Advanced Object-Oriented Programming
Hours: 3
This course investigates object-oriented methods including object-oriented programming, analysis and design. Current methodology is emphasized. The use of object-oriented features such as encapsulation, information hiding, inheritance and polymorphism is reinforced by class assignments and programming exercises. Prerequisites: CSCI 515 and CSCI 520.

CSCI 530 - Operating Systems
Hours: 3
Operating Systems. Three semester hours. The course objectives are two-fold: (1) to learn general theory, concept, and techniques related to the design of operating systems; (2) to practice the design of an operating system by performing a design project. The course is basically divided into four sections: Introduction to Operating Systems, Process Management, Storage Management, and UNIX (Shell and Interpreter). Prerequisites: CSCI 516 and 515 or consent of instructor.

CSCI 531 - Java Language Programming
Hours: 3
This is a computer programming course designed to teach the use of the Java Programming Language. The course will emphasize Java applets and their use in HTML files as applied to Internet web pages. Students will learn how to write Java applets, how to utilize pre-existing Java controls, and how to write new Java controls. Students will be expected to complete numerous programming assignments and programming projects. Experience with C++ programming language and object oriented methods are required. Prerequisites: CSCI 515 with a minimum grade of B. Corequisites:CSCI 520 : Information Structures and Algorithm Analysis.

CSCI 532 - Algorithm Design
Hours: 3
Algorithm Design. Three semester hours. This course provides an introduction to the design analysis of algorithms. Topics include correctness of algorithms, asymptotic notation, time complexity of algorithms, and NP-completeness. Several algorithm design techniques will be discussed in detail including divide and conquer algorithms, dynamic programming algorithms and greedy algorithms. Algorithms based on these techniques will be studied for solving a wide variety of problems in networks, graph theory, optimization, sorting, string processing, mathematical applications, and other areas. Prerequisite: CSCI 520

CSCI 533 - Applied Computer Algorith
Hours: 3
Applied Computer Algorithms - Three semester hours This course provides an introduction to the application of design and analysis of algorithms to real-world practical problems. Topics include correctness of algorithms, asymptotic notation, time complexity of algorithms, and NP-completeness. Several algorithm design techniques will be discussed in detail including divide and conquer algorithms, dynamic programming algorithms and greedy algorithms. Algorithms based on these techniques will be studied for solving a wide variety of problems in networks, graph theory, optimization, sorting, string processing, mathematical applications, and other areas. Pre-requisites : CSCI515 or equivalent

CSCI 534 - Networking II - Routers and Switches
Hours: 3
This course is a continuation of CSCI 525 (Networking I Local Area Networks). This course instructs students in the detailed operation and configuration of network routers and data switches. Laboratory exercises will be provided. Also, such common network security techniques as Virtual Local Area Networks (VLANs) and Access Control Lists will be presented along with other network security topics. Students will have the opportunity to work with equipment in the laboratory as they learn to design and configure network devices in the implementation lab exercises. Prerequisites: CSCI 525. Note About 50% of class time will be spent in the CCNA Networking Laboratory.

CSCI 538 - Artificial Intelligence
Hours: 3
The course will introduce related concepts and techniques to build intelligent systems that aim at acting rationally given perceived and represented knowledge. An overview of artificial intelligence techniques include knowledge representation, problem solving, reasoning, deduction, searching, planning, learning, etc. Advanced topics in application areas, such as natural language processing, computer vision, pattern recognition, and robotics will also be examined. Prerequisites: CSCI 532 or Instructor's Approval.

CSCI 540 - Computer Architecture
Hours: 3
Computer Architecture. Three semester hours. Introduction to current high level computing machines in both hardware and software design. Topics include the design decisions involved in the development of computer architectures, hardware organizations needed to implement various instructions sets, and future trends in computer architectures. Prerequisites: CSCI 516.

CSCI 543 - UNIX NETWORK ADMINISTRATION
Hours: 3
Networking II. Three semester hours. An examination of wide area computer networks (WAN) utilizing current technology. TCP/IP; transmission media; Ethernet; Internetworking (bridges, routers, hubs); WAN network operating systems (UNIX); standard services (FTP, Telnet, etc.); network security, reliability, stability, and design. Prerequisites: CSCI 525 and CSci 504.

CSCI 544 - Evol Comput & Genetic Prog
Hours: 3
Evolutionary Computation and Genetic Programming - Three semester hours Evolutionary computing is the collective name for a range of problem solving techniques based on principles of biological evolution, such as natural selection and genetic inheritance. These techniques have proven to be particularly successful in many diverse problem domains, ranging from economics and finance, to design and automatic programming. Specific topics addressed include theoretical models of evolutionary computation; search, optimization, and machine learning; evolution of programs; population dynamics; and emergent behavior. Pre-requisites : Previous course work in data structures and algorithm analysis. Experience with high-level programming languages and concepts.

CSCI 546 - Numerical Analysis
Hours: 3
The basic asymptotic notations for numerical methods assessment will be reviewed. Topics include the basic numerical methods and algorithms for automatic computers: solving non-linear equations of one variable; linear systems of equations; data interpolation and approximation; differentiation and integration. Students will learn to analyze an algorithm regarding its convergence to a solution, its complexity, and error estimation. They will also learn what problems are best solved with these techniques and how to apply a corresponding method and algorithm. Methods for Eigen values will be discussed as time permits. Programming assignments will develop skill in the application of the methods. MathLab may be the basic software to use, but Java and C++ will be accepted as well. Prerequisites: CSCI 515 and MATH 192.

CSCI 549 - Automata Theory
Hours: 3
Automata Theory. Three semester hours. This course teaches the general theory, concept, and techniques related to the theory of automata. Practical examples related to programming languages are emphasized. Students will have the opportunity to utilize theoretical aspects of automata theory by performing a medium-scale design project. Topics include: Finite Automata, Transition Graphs, Nondeterminism, Finite Automata with Output, Context-Free Grammars, Regular Grammars, Chomsky Normal Form, Pushdown Automata, Context-Free Languages, Non-Context-Free Languages, Parsing, and Turing Machines. Prerequisite: CSCI 515 and MATH 192.

CSCI 553 - Networking III-Unix Based Ntwk
Hours: 3
Networking III-UNIX Based Networks. Three semester hours. This course is designed to introduce advanced concepts of networking applications of UNIX-based mini and micro based computing environments. The UNIX-model of networking, interprocess communication, and TCP/IP sockets are the major topics to be discussed. A moderate-sized course project involving intensive coding will be implemented to exercise and demonstrate TCP/IP aspects and other networking concepts introduced in class. Prerequisite: CSCI 520, 525, 530 or consent of the instructor.

CSCI 556 - Data Analysis & Visualization
Hours: 3
Big scientific data sets are growing exponentially both in size and complexity. Extracting meaningful information from these data requires not only programming skills, but also understanding the analysis work-flows, mathematical models and visualization tools that help to condense large amounts of information into a comprehensible story. We will introduce standard statistical data analysis and modeling methods such as correlation functions, linear regression, clustering, pattern extraction, classification, data mining, as well as Monte Carlo methods which are commonly used in creating simulations in the computational sciences. Different analysis and visualization packages popular in scientific modeling, analysis, and visualization will be introduced. Prerequisite: CSCI 502.

CSCI 558 - Applied Computational Sci
Hours: 3
Applied Computational Science - Three semester hours This course provides an introduction and framework for the Master’s degree in Computational Science program. The course emphasizes the multidisciplinary nature of computational science and provides students with basic tools and concepts needed for the degree program. Three main areas are covered: 1) basic software development, software design and programming skills and high level scientific tools and environments 2) introduction to advanced programming techniques and 3) basic computational modeling and mathematical simulation techniques for industry-oriented solving.

CSCI 559 - Software Development for Mobile Devices
Hours: 3
This course introduces development of software applications for network enabled mobile devices including smart phones. Topics include components for graphical user interface, memory management, custom user interface development, touch-based or timer-based event handling, file I/O, animation using 2-D/3-D graphics, audio and video application programming interfaces, Bluetooth applications, client-server models, database access, data storage, marketing research. Object Oriented Programming will be introduced with the Objective–C, Java, or Swift. Prerequisites: 515 or Instructor Approval.

CSCI 560 - Neural Networks
Hours: 3
Neural Networks - Three semester hours In this course the theory and practice of neural computation are introduced. Inspired from the interreaction of human neural cells, artificial neural networks are substantially used for many real-world problems: classification, time-series prediction, regression, pattern recognition. We start with the introduction of neural networks, and continue with Hebb and perceptron algorithms, which are fundamentals of classification in neural networks. Autoassociative Nets and Iterative Autoassociative Nets are discussed with application on exemplary problems. Furthermore, having discussed the Kohonen self-organizing map, we briefly cover recurrent networks of the Hopfield type nets. Finally, the multilayer perceptron, and the radial basis function network, which are trained using back-propagation, are covered. Average programming skills are expected. Pre-requisites : Instructor's approval required.

CSCI 563 - Information Security
Hours: 3
This course provides an introduction to the study of information security and covers the most important features of computer security. Topics include basic concepts and principles in information security, authentication and access control, operating systems security, software vulnerabilities and threats, database security, and basic cryptography including encryption and key establishment. Prerequisites: CSCI 515 or consent of instructor.

CSCI 567 - Image Processing with Applications
Hours: 3
Introduction to image processing, with applications to images from medicine, agriculture, satellite imagery, physics, etc. Students will learn techniques such as edge detection, 2D image enhancement using laplacian and gradient operators, fourier transforms and the FFT, filtering, and wavelets, as time allows. Students will acquire practical skills in image manipulation by implementing the above mention algorithms. Prerequisites: CSCI 515 and CSCI 520.

CSCI 568 - Cryptography
Hours: 3
(Same as MATH 536) The course begins with some classical cryptanalysis (Vigenere ciphers, etc.). The remainder of the course deals primarily with number-theoretic and/or algebraic public and private key cryptosystems and authentication, including RSA, DES, AES and other block ciphers. Some cryptographic protocols are described as well.

CSCI 569 - Image Analysis with Recognition
Hours: 3
This class will start with a study of Wavelets and multiresolution imaging. In the next stage the students will learn the basic methods for image segmentation to objects and background and objects separation. The following step is the objects representation and description. The students will learn methods from two major approaches boundary and regions description. Two different set of methods will be taught from the field of Recognition: Decision theoretic methods; structural methods. The students will program methods or their components in Java, C++ or MatLab. Prerequisites: CSCI 515 and CSCI 520.

CSCI 572 - Parallel Computing
Hours: 3
Parallel Computing. Three semester hours. (Same as PHYS 572) Computer topologies and networks, programming techniques, and parallel algorithms for multiprocessor and multi-computer systems including microprocessor clusters. Prerequisites: PHYS 319 or CSci 322.

CSCI 573 - Big Data Computing and Analytics
Hours: 3
Big Data computing is a new computing paradigm, involving analysis of large quantities of data in industry and science communities. It has led to the development of large distributed systems with thousands of computing servers and disks connected over a high-speed network. For such distributed systems, there are several challenges of performance, scalability, and reliability as well as data storage. The goal of this course is to study modern technologies that are used to construct big-data computing systems and methods and tools for big-data analytics. Topics of interest include big-data computing paradigms, big-data storage, and big-data analytics. Prerequisites: CSCI 526, CSCI 530, or instructor's consent.

CSCI 574 - Machine Learning
Hours: 3
Study of computer algorithms that automatically acquire new knowledge and improve their own performance through experience. Theory and practical implementation of algorithms for machine learning. Topics include linear and logistic regression, artificial neural networks, Bayesian networks and learning, decision trees, kernel / support-vector machines, statistical learning methods, unsupervised learning, reinforcement learning, and other modern, emerging algorithms. Short programming assignments and/or projects with hands-on experiments with various learning algorithms will be given. Prerequisites: CSCI 502 Stats Computational Sci CSCI 515 Fund Prog CSCI 509 Intro Computational Sci (previously CSCI 501).

CSCI 577 - Comp Sys Performance Eval
Hours: 3
Computer System Performance Evaluation - Three semester hours Operations research is the discipline of applying advanced analytical methods to help make better decisions. It uses mathematical modeling, analysis and optimization to improve our knowledge and efficiency of system and model design. This course introduces methods of analysis of computer system performance. It covers predictive performance models with emphasis on queuing models; exact and appropriate solution methods, discrete-event simulation, and numeric iterative approaches; analytical solutions and their computation; separable queuing networks, decomposition approaches; examples of practical application; and performance measurement, model validation, robustness of models, and operational analysis. Pre-requisites : Previous course work in data structures and algorithm analysis. Experience with high-level programming languages and concepts

CSCI 581 - Computer and Network Security
Hours: 3
Computer and Network Security - Three semester hours. This course provides key concepts in computer and network security. Topics include overview of TCP/IP networks; cryptography including symmetric/asymmetric ciphers, cryptographic hash functions, message authentication codes, and digital signatures; mutual trust including key distribution and user authentication protocols; network and Internet security; and network system security including firewalls. Prerequisites CSCI 525. Prerequisites: CSCI 525.

CSCI 587 - SECURE PROTOCOLS
Hours: 3
Secure Protocols. Three semester hours. This course introduces students to advanced protocols that provide information and communications security. Basic protocol building blocks are discussed. Advanced protocols will be analyzed to determine if they satisfy specific security requirements, to discover security loopholes, and to discuss modifications to remove the loopholes. Prerequisites: CSCI 525.

CSCI 589 - Independent Study
Hours: 1-4
Independent Study. One to four semester hours. Individualized instruction/research at an advanced level in a specialized content area under the direction of a faculty member. No more than three hours of independent study may be counted towards the degree. Prerequisite: Consent of department head and supervising faculty member.

CSCI 595 - Research Lit & Techniques
Hours: 3
Research Literature and Techniques. Three semester hours. A course designed to acquaint the student with the role of research in the initiation, development and modification of concepts and theories in computer science. A final written report and presentation and/or demonstration of results obtained during the course will be made to interested faculty members and students. Prerequisite: Completion of the required core courses.

CSCI 597 - Special Topics
Hours: 1-4
Special Topics. One to four semester hours. Organized class in a specialized area of current interest. May be repeated when topics vary.

Computer Science and Information Systems

Abdullah Arslan
Assistant Professor
B.S. Middle East Technical University; M.S. University of North Texas; Ph.D. University of California, Santa Barbara.

Derek Harter
Associate Professor
B.S., Purdue University; M.S., Johns Hopkins University; Ph.D., University of Memphis.

Jinoh Kim
Assistant Professor
B.A., M.S., Inha University; Ph.D., University of Minnesota

Mutlu Mete
Assistant Professor
B.S. Dokuz Eylul University; Ph.D. University of Arkansas at Little Rock.

Truong-Huy Nguyen
Assistant Professor
B.Sc.; Ph.D., National University of Singapore

Sam Saffer
Assistant Professor
BA, University of Texas-Austin; MAS, PhD, Southern Methodist University.

Unal Sakoglu
Assistant Professor
BS., Bilkent University, Ankara, MS., University of New Mexico, Ph.D., University of New Mexico

Nikolay Sirakov
Associate Professor
M.S., Sofia University; Ph.D., Bulgarian Academy of Sciences.

Sang C. Suh
Professor and Department Head
M.S., University of Hawaii; Ph.D., Southern Methodist University.

Urcun Tanik
Assistant Professor
B.S., The University of Texas at Austin; M.S., Ph.D., University of Alabama at Birmingham