Computer Science and Information Systems
Sang C. Suh (Department Head)
Location: Journalism Building, Room 122, 903-886-5409, Fax 903-886-5404
General Information: Nicole.Jones@tamuc.edu
Computer Science and Information Systems Web Site: http://www.tamuc.edu/academics/colleges/scienceEngineeringAgriculture/departments/computerScienceInformationSystems/default.aspx
The Department of Computer Science and Information Systems offers two academic programs, the Bachelor of Science (B.S.) with a major in Computer Science and the Bachelor of Science in Computer Information Systems (B.S.C.I.S.).
The Bachelor of Science with a major in Computer Science degree prepares the student for a wide variety of applications found within the diverse computer science field. Students complete a core of computer science foundation courses and advanced courses such as networking, database management, programming, or information assurance and security. This curriculum prepares students for a broad range of careers, such as systems analyst, application software developer, software engineer, computer engineer, technical writer, system designer, security administrator, computer security specialist, database administrator, network administrator, network security specialist, simulation/modeling developer, and graphics/animation developer.
The Bachelor of Science in Computer Information Systems degree prepares the student for a wide variety of applications found within the diverse computing and information technology field. Students complete a core of computer information systems foundation courses and an emphasis is given in one of the following areas: Networking, Database Management, or Programming or Information Assurance and Security. This curriculum prepares students for a broad range of careers, including systems analyst, database programmer, database administrator, network administrator, business applications developer, technical writer, and systems designer.
This department also offers a Bachelor of Science in Computer Information Systems degree with secondary teacher certification in Computer Science for persons interested in teaching computer science at the secondary school or community college level. In addition, the department offers second majors in computer science and computer information systems, as well as a minor in computer science, so that students may acquire computer science fundamentals relevant to their respective academic majors.
Students will be trained on modern equipment having wide industry acceptance in areas such as operating systems, communications, database, simulation, networks, information security, and programming languages. Students also have access to a variety of laboratory and microcomputer equipments.
Graduates of the Bachelor of Science in Computer Science at Texas A&M University–Commerce will…
- be able to analyze, design, implement and evaluate computer based solutions.
- be able to demonstrate an understanding of the global and local societal impact of computing, including professional, ethical and social responsibilities.
- be able to communicate, collaborate and present computing solutions using current technology in an effective and professional manner.
- be able to engage in continuing professional development and lifelong learning.
Computer Science at Texas A&M University–Commerce emphasizes the application of scientific concepts and the principles required in the computing industry as well as current and future sustainable technologies.
The graduates with a B.S. in Computer Science will attain the following STUDENT OUTCOMES:
(a) An ability to apply knowledge of computing and mathematics appropriate to the discipline.
(b) An ability to analyze a problem and identify and define the computing requirements appropriate to its solution.
(c) An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs.
(d) An ability to function effectively on teams to accomplish a common goal.
(e) An understanding of professional, ethical, legal, security and social issues and responsibilities.
(f) An ability to communicate effectively with a range of audiences.
(g) An ability to analyze the local and global impact of computing on individuals, organizations, and society.
(h) Recognition of the need for and an ability to engage in continuing professional development.
(i) An ability to use current techniques, skills, and tools necessary for computing practice.
(j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
(k) An ability to apply design and development principles in the construction of software systems of varying complexity.
Computer Science graduates are expected to attain within a few years of graduation the following PROGRAM EDUCATIONAL OBJECTIVES.
Program Educational Objective#1 (PEO1): will demonstrate an understanding of the need for professional growth and life-long learning.
Program Educational Objective#2 (PEO2): will continue to develop strong written and oral communication skills.
Program Educational Objective#3 (PEO3): will be effective in applying principles of computing and mathematics toward the solution of a wide variety of problems.
Program Educational Objective#4 (PEO4): will be able to utilize principles of information integrity and security, and to apply ethical computing concepts and practices.
Program Educational Objective#5 (PEO5): will be able to work effectively in a diverse global community.
Program Educational Objective#6 (PEO6): will readily adapt to changing technology.
Program Educational Objective#7 (PEO7): will function effectively and provide leadership and teamwork in a variety of scientific, engineering, and business environments.
Students seeking a bachelor’s degree in any of the department majors must complete:
- Degree requirements for a Bachelor of Science in Computer Science or Bachelor of Science in Computer Information Systems, and
- Core Curriculum Requirements (refer to those sections of this catalog).
In addition, courses in the major that must be completed can be found in the program page.
Teacher Education Program
Students seeking a bachelor’s degree in the following teacher education program must also complete:
- Degree requirements for a Bachelor of Science in Computer Information Systems degree with secondary certification (refer to the bachelor’s degree requirements section of this catalog),
- Core Curriculum Requirements (refer to that section of this catalog),
- Requirements for admission to and retention in the Teacher Education Program (refer to the Center for Educator Certification and Academic Services section of this catalog), and
- Professional development courses (refer to the Department of Curriculum & Instruction n in this catalog).
In addition, core courses in the major must be completed.
COSC 1301 - Introduction to Computing
An introduction to computers, network communications, and information systems. This course provides the student with knowledge about hardware, software and data management systems. The student is provided experience with an operating system environment, application software including productivity tools, and the use of the internet to communicate and search for information. This course will not count toward a major or minor in computer science or computer information systems.
COSC 1337 - Programming Fundamentals II
Review of control structures and data types with emphasis on structured data types. Applies the object-oriented programming paradigm, focusing on the definition and use of classes along with the fundamentals of object-oriented design. Includes basic analysis of algorithms, searching and sorting techniques, and an introduction to software engineering. Prerequisites: CSCI 151 or COSC 1436.
COSC 1436 - Introduction to Computer Science and Programming
Introduces the fundamental concepts of structured programming. Topics include software development methodology, data types, control structures, functions, arrays, files, and the mechanics of running, testing, and debugging. This course assumes computer literacy (CSCI 126 / COSC 1301).
COSC 2325 - Machine Language and Computer Organization
The concepts of assembly language and the machine representation of instructions and data of a modern digital computer are presented. Many of the fundamental concepts studied in this course include machine instructions, addressing, stack operations, subroutines and procedures, computer organization and architecture at the register level, and the micro-operation components of machine instructions. Students will perform assembly language programming exercises. Prerequisites: CSCI 151 or COSC 1436.
COSC 2336 - Data Structures and Algorithms
Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis. Prerequisites: CSCI 152 or COSC 1337.
CSCI 131 - Visual Basic Programming
Visual Basic.Net Programming. Three semester hours. This course is designed to provide the student with introductory computer programming skills using an object-oriented computer language. Topics to be covered are algorithms and problem-solving, fundamental programming constructs such as sequence, selection, iteration, and functions, object-oriented interface and program design, and event-driven computer programming with an emphasis on business applications. Prerequisite: MIS 128, MATH 1314 or 1324. This course will not count toward a major or minor in computer science or computer information systems.
CSCI 141 - Intro to Comp Sys Hdw & Sfw Co
Introduction to Computer Systems Hardware and Software Components. Four semester hours (3 lecture, 2 lab). This course is equivalent to the A+ PC Maintenance Semester I and II in preparation for A+ Certification. It involves the study of computer hardware systems and the configuration of computer systems and subsystems. The course emphasizes the distinction between hardware and software failures in computing systems. Topics include an introduction to computer organization, computing components, troubleshooting of hardware as related to software systems. Prerequisite: CSci 126. Co-requisite: CSci 151.
CSCI 189 - Independent Study
CSCI 197 - Special Topics
CSCI 233 - Application Program Development
This course is for anyone who wants to learn how to build and maintain websites that use PHP and MySQL. In particular, this course will expand basic MySQL and PHP skills to include the skills you need for building full-fledged database-driven web applications. For this course you should have a basic HTML and CSS skills. Prerequisites: CSci 151 or COSC 1436.
CSCI 317 - NUMERICAL ANALYSIS
Numerical Analysis. Three semester hours. (Same as MATH 317) Computer algebra systems will be introduced. Topics include methods for approximate solutions of equations in one variable, polynomial approximation methods, numerical calculus, numerical solutions to ordinary differential equations, linear systems of equations and difference equations. Prerequisites: CSci 151 or COSC 1436; and CSCI 152 or COSC 1337; and Math 192. Corequisites: MATH 192.
CSCI 319 - Computational Simulations of Physical Systems
This self-contained course introduces the student to the Python programming language before exploring applications including finite difference methods, solving linear and non-linear equations, Fourier transforms, simulating physical systems governed by ordinary and partial differential equations, random processes and the Monte Carlo method. No previous programming experience is required. Prerequisites: PHYS 2425.
CSCI 333 - Java Language Programming
This course introduces the Java programming language. It is intended for advanced students and is a fast-paced course moving rapidly from basic concepts to more complex concepts. Topics covered will include: Basics (Data Types, Classes, File I/O), Graphical User Interface (Swing), Layout of GUI (Layout managers, Borders), Advanced concepts (Threads, Processes). Prerequisites: CSCI 152 or COSC 1337.
CSCI 340 - Introduction to Database
This course is an introduction to database systems and information management. It is designed to develop entry-level knowledge and skills in data modeling, design, and the representation of information in relational database systems. Structured Query Language and advanced features of relational database systems will be utilized to develop database applications. In addition, this course will include topics on the physical characteristics of databases, techniques for improving access to information, and improving performance and reliability with relational database systems. Prerequisites: CSCI 233 or co-requisite of COSC 2336.
CSCI 351 - Foundations of Information Security
This course provides the foundation for understanding the key issues associated with protecting information processing systems. Topics include essential security concepts, software security, network attacks and countermeasures, and practical cryptography. Prerequisites: CSCI 152 or COSC 1337.
CSCI 352 - INTRO TO COMP LAW AND FORENSIC
Introduction to Computer Law and Forensics. Three semester hours. This course will introduce students to the fundamentals of computer forensics and cyber-crime scene analysis. The various laws and regulations dealing with computer forensic analysis will be discussed. Students will be introduced to the emerging international standards for computer forensic analysis, as well as a formal methodology for conducting computer forensic investigations. The course combines theory and hands-on learning. Prerequisites: CSCI 152 or COSC 1337.
CSCI 359 - Systems Analysis & Design
Traditional and Object-Oriented methods for analysis, design, and implementation of computer based information systems; also includes project management and Computer Assisted System Engineering (CASE) tools. Prerequisites: CSCI 270 or COSC 2336.
CSCI 375 - Introduction to Computer Gaming
This course introduces various computer gaming platforms and gaming programming techniques. The course will emphasize the XNA gaming platform and aspects of the C# programming language that pertain to gaming. Other topics include Open GL and DirectX as related to computer gaming. Prerequisites: CSCI 270 or COSC 2336.
CSCI 376 - Introduction to Game Design & Development
Introduction to Game Design & Development provides student with opportunity to learn the necessary concepts and skills of computer game programming in 2D and 3D environments. Students will have the opportunity to design, create, and program fully functional computer games. Topics include engine/design techniques, i.e. real-time 2D/3D graphics, lighting, terrain and texture mapping, visibility and occlusion, collision detection and avoidance, character animation, and Artificial Intelligence characters. Prerequisites: CSCI 270 or COSC 2336.
CSCI 377 - Introduction to Image Processing
This course will introduce digital image processing from Computer Science point of view. Topics include the fundamental theory and techniques of image representation and modeling, image enhancement, image restoration, image transforms, image compression, and image segmentation. This course will also introduce state-of-art methods in computer science research and applications such as object recognition, multi-resolution analysis, and image description. Prerequisites: CSCI 270 or COSC 2336.
CSCI 380 - Web Programming and Interface
Web Programming and Interface Design. Three semester hours. (1, 2) This course provides students with a hands-on overview of current Web programming languages and Web multimedia technologies. Client/Server concepts will be discussed and implemented into student Web projects. Concepts relating to good interface design will be covered. The course will also explore how multimedia tools and features can be used to enhance Web sites. Co-requisite: CSci 270 or COSC 2336 or consent of instructor.
CSCI 405 - Internship
Internship. Three semester hours. This course is offered to students having work internships within a computing, information technology, or related type of enterprise. Students are supervised by employing personnel and by CSci faculty. This course gives students the opportunity to earn course credit for the application of computing knowledge and skills used in the working environment. Prerequisites: Junior or Senior standing in CSci and departmental approval.
CSCI 414 - UNIX Software Development and Networking
In this course students will be presented with the standard set of tools and software development methodologies that are supported by the Unix programming environment. Students will learn to use standard Unix tools, such as debuggers, compilers, automated build systems and revision control systems. These tools will be applied to the development of applications using standard Unix systems programming, to explore the Posix socket libraries for Unix based low level networking applications. Prerequisites: CSCI 270 or COSC 2336.
CSCI 415 - GLB/Information Security, Law, and Ethics
This course is divided into two parts, Part I: Introduces students to various technical and administrative aspects of Information Security and Assurance as it relates to computing, and ethics. We will define ethics, morality, and moral systems and recognize the distinction between ethical theory and professional ethics. Part II: introduces students to the intro-level fundamental knowledge of computer security and applied cryptography. Students will learn the basic concepts in computer security including software vulnerability analysis and defense, networking and wireless security, and applied cryptography. Students will also learn the fundamental methodology for how to design and analyze security critical systems. Prerequisites: Junior Standing.
CSCI 428 - Introduction to Object Oriented Programming
This course introduces the basic concepts and terminology of object technology. It emphasizes current techniques in object oriented design, analysis, and programming. In particular, we will study the concepts of Exception Handling, Encapsulation and Data Hiding, Inheritance, Polymorphism, Arrays and ArrayList. Prerequisites: CSci 270 or COSC 2336.
CSCI 430 - Introduction to Operating Systems
A study of operating systems with emphasis on a multiprogramming environment; concentrates on principles involved in resource management; topics such as job scheduling and memory management are also studied. Prerequisites: CSCI 241 or COSC 2325; and CSCI 270 or COSC 2336.
CSCI 434 - Introduction to Computer Networks
This course covers the basic principles and operations of the modern computer networks. Topics include basic data communications, the layered architecture and reference model, protocols and topologies, and network service models and applications. TCP/IP networking and protocols are covered to understand the Internet core functions. In addition, students will have the opportunity to gain practical experience with the installation and administration of networking platforms. Prerequisites: CSCI 241 or COSC 2325; and CSCI 270 or COSC 2336.
CSCI 440 - App Software Project Dev
A capstone project to provide the student with experience with analysis, design and implementation of a semester project as a member of a systems development team. Prerequisites: CSCI 359, CSCI 380.
CSCI 444 - Introduction to Network Routers and Switches, VLANs and ACLs
This course is designed to introduce the student to the operation of Computer Network Routers and Communications Switches. Network security features involving Virtual Local Area Networks (VLANs) and Access Control Lists (ACLs) will also be studied. Students will gain practical laboratory experience working with routers and switches. Lab exercises include router and switch configuration, and the implementation of VLANs and ACLs. Prerequisites: CSCI 434.
CSCI 449 - AUTOMATA THEORY
This course teaches the general theory, concepts, 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. Prerequisites: CSCI 270 or COSC 2336.
CSCI 454 - Introduction to Network Security
The course encompasses the structures, transmission methods, transport formats, and security measures used to provide integrity, availability, authentication, and confidentiality for transmissions over computer networks. Topics include TCP/IP overview, basic cryptography, key distribution, user authentication, network and Internet security, and network security operations. Prerequisites: CSCI 434.
CSCI 457 - Programming Mobile Devices
This course covers the development of 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, and data storage. Object Oriented Programming will be introduced by Swift. Prerequisites: COSC 2336 or CSCI 270.
CSCI 470 - DATABASE PROGRAMMING
Database Programming. Three semester hours. (1,2) A course on the development of database applications with an emphasis on programming for database access. It includes data storage and manipulation, information presentation with database connectivity using such application programming interfaces as stored procedures, embedded SQL, server pages and servlets. Topics in XML programming for data exchange are also included. Prerequisite: CSCI 340.
CSCI 471 - DATABASE ADMINISTRATION
Database Administration. Three semester hours. A course on the installation, management and control of database management system software, the database structures and data repository. It includes a study of database architecture, configuration control, security and integrity, recovery management, system performance measurement, and database tuning. Prerequisite: CSCI 340.
CSCI 489 - Independent Study
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. May be repeated when the topic varies. Prerequisite: Consent of department head.
CSCI 490 - H Honors Thesis
CSCI 491 - H Independent Honors Rdgs
Independent Study - Hours: One to four Individualized instruction/research at an advanced level in a specialized content area under the direction of a faculty member. Prerequisites Consent of department head. Note May be repeated when the topic varies.
CSCI 497 - Special Topics
Special Topics. One to four semester hours. Organized class. May be repeated when topics vary.
Bilal Abu Bakr
M.S., University of Punjab, Lahore, Punjab; M.S., Western Illinois University; M.S., Western Michigan University; Ph.D., Western Michigan University
B.S. Middle East Technical University; M.S. University of North Texas; Ph.D. University of California, Santa Barbara.
R. Daniel Creider
B.A., Central Bible College; B.S., Southwest Missouri State University; M.S., Auburn University; Ph.D., Baylor University.
Omar El Ariss
B.S., M.S., Lebabese American University; Ph.D., North Dakota State University
B.S., M.S., Ph.D., University of Southern Mississippi
B.S., Purdue University; M.S., Johns Hopkins University; Ph.D., University of Memphis.
B.S., M.S., Huazhong University of Science and Technology; Ph.D., State University of New York at Binghamton
B.S., Kansas State University; M.S., East Texas State University.
B.A., M.S., Inha University; Ph.D., University of Minnesota
B.S., Ph.D., Seoul National University, Seoul, Korea
B.S. Dokuz Eylul University; Ph.D. University of Arkansas at Little Rock.
B.A., University of Texas at Austin; M.A.S., Ph.D., Southern Methodist University.
Sang C. Suh
Professor and Department Head
M.S., University of Hawaii; Ph.D., Southern Methodist University.
B.S., The University of Texas at Austin; M.S., Ph.D., University of Alabama at Birmingham
B.S., North University of China, Taiyuan, China; M.S., North University of China, Taiyuan, China; Ph.D., Beihang University, Beijing, China