Bachelor of Science-Computer Science

A Bachelor of Science degree in Computer Science (BSCS) prepares students to excel in an increasingly complex technical world. Computer Science majors study computers, their organization, and the software that runs them. They will study algorithms for solving different real-world problems, methods of algorithm design and analysis. Computer Science majors learn programming languages, methods of software engineering, and the modern approaches to computer programming. They will study discrete mathematics, and other mathematical disciplines, which are essential for the algorithm design, modeling and solving a variety of real-world problems.  With a degree in Computer Science from Texas A&M University-Texarkana, students can pursue careers in software development, database administration, computer engineering, systems analyst, computer network architect, web development, information system management, and many other computer technology careers.

Degree Requirements

Students should refer to their DegreeWorks degree audit in their Web for Students account for more information regarding their degree requirements.

Major Requirements
General Education Requirements42
MATH 2413Calculus I 64
MATH 2414Calculus II4
PHIL 1350Philosophy and Ethics of Science and Technology 63
PHYS 2325University Physics I 63
PHYS 2125University Physics I Lab 61
PHYS 2326University Physics II 63
PHYS 2126University Physics II Lab 61
COSC 1315Introduction to Computer Science3
COSC 1321Discrete Structures3
MATH 2318Linear Algebra3
MATH 357Probability and Statistics3
ENGR 315Engineering Computations3
CS 332C++ Programming4
CS 310Analysis of Algorithms3
CS 316Web Design and Programming I3
EE 321Digital Logic3
EE 340Computer Architecture3
CS 352Java Programming3
CS 353Advanced Object-Oriented Programming3
CS 361Database Systems and Design3
CS 367Software Engineering3
CS 370Programming Language Design3
CS 410Operating Systems3
CS 420Computer Networks3
CS 490CS Senior Design I3
CS 491CS Senior Design II3
Other Requirements
Select 15 semester credit hours from the following:15
Artificial Intelligence
Neural Networks and Machine Learning
Automata Theory
Mobile App Development
Computer Security
Image Processing and Computer Vision
Special Topics
Information Theory
Signals and Systems I
and Signals and Systems I Lab
Minimum hours for Degree120

Satisfies Core Curriculum

Note: A minimum of 54 upper division hours (300 and 400 level courses) are required for this degree. Resident credit totaling 25% of the hours is required for the degree.  A minimum GPA of 2.0 is required in three areas for graduation:  Overall GPA, Institutional GPA, and Major GPA.

Undergraduate Courses in Computer Science

COSC 1315. Introduction to Computer Science. 3 Hours.

This course teaches the basics of MATLAB programming. The students will learn how to write MATLAB programs for electrical and computer science applications that include calculations and graphing. The course will also emphasize the documentation of programs. The course will cover concepts that will include arrays and array operations, programming techniques, plotting, and linear algebraic equations with MATLAB. It will provide an overview of MATLAB programming concepts, design, and an introduction to coding. It will focus on creating working computer programs in MATLAB. Laboratory exercises provide practice in writing programs and reinforce concepts. Prerequisite: COSC 1321 or MATH 2305.

COSC 1321. Discrete Structures. 3 Hours.

This course covers mathematical mechanisms, which are widely used in the computer modeling and simulations. A discrete nature of a digital computer requires considering discrete rather than continuous models. Since to solve any problem using a computer, a proper model must be developed first, discrete structures and corresponding mathematical tools are very important. Thus the following topics are considered in this course: propositional logic and its role in algorithm design and computer programming, sets and operations on sets, relations and functions, mathematical induction, modular arithmetic and its applications, particularly in encryption, graphs, tress, binary search trees, and Boolean functions.

COSC 2318. Engineering Mathematics. 3 Hours.

This course provides the basic concepts of engineering mathematics including, but not limited to, the review of college algebra, elements of linear algebra, probability and statistics, and differential equations. Prerequisite: COSC 1321.

CS 305. Data Structures. 3 Hours.

This course emphasizes the organization of information; the implementation of common data structures such as lists, stacks, queues, trees, and graphs; and techniques of data abstraction, including encapsulation and inheritance. Instructors administer mini-labs and programming assignments. Assignments will focus on the design, implementation, testing, and evaluation of various data structures. Prerequisite: CS 332.

CS 310. Analysis of Algorithms. 3 Hours.

This course introduces basic elements of the design and analysis of computer algorithms. Topics include methods of algorithms description, proving of their correctness, asymptotic notations and analysis, recursion, divide and conquer, and examples of the efficient algorithms design in signal processing. For each topic, besides in-depth coverage, students will discuss one or more representative problems and their algorithms. In addition to the design and analysis of algorithms, students must gain substantial discrete mathematics problem-solving skills essential for computer engineers. Prerequisite: COSC 1321 or MATH 2305.

CS 316. Web Design and Programming I. 3 Hours.

The course provides the student with an understanding of web page creation using HTML5, CSS, JavaScript, and Ajax. Students will learn how to create hyperlinks, headings, lists, tables, formatting, and images using HTML5 and CSS. Students also learn how to validate form, control cookies, make special effects using JavaScript, and apply Ajax technology to create user interaction. Prerequisite: COSC 1315.

CS 332. C++ Programming. 4 Hours.

This course introduces students to C++ programming language, a dominant language in the industry today. Students will be taught the fundamentals of programming. These concepts are applicable to programming in any language. Topics covered include basic principles of programming using C++, algorithmic and procedural problem solving, program design and development, basic data types, control structures, functions, arrays, pointers, and introduction to classes for programmer-defined data types. Frequent homework and lab assignments will be given during class. Prerequisite: COSC 1315.

CS 352. Java Programming. 3 Hours.

This course teaches the basics of Java programming, the foundations of object-oriented programming, and the process of building a project in a modular fashion. Java programming provides an overview of programming concepts, design, and an introduction to coding using the Java language. This course has a focus on creating working computer programs in Java. It will address fundamental concepts of analysis, design, and testing and code development. These include flowcharts, Boolean logic, control flow, data types and structures, variable arrays, functions, and pointers. This course will prepare students for focused studies in any programming language. The student will also learn how to enter, compile, link, and run a computer program using the Java language in a Windows or equivalent environment. Instructors will introduce structured programming through techniques for solving business, engineering and scientific problems. Laboratory exercises will provide practice in writing programs and will reinforce basic programming concepts, logic flow, and structured design. Prerequisite: CS 332.

CS 353. Advanced Object-Oriented Programming. 3 Hours.

This course provides an overview of advanced object-oriented programming concepts, design and to coding using the C++ language. It has a focus on creating working computer programs in Visual C++. It addresses advanced concepts of analysis, design, testing, and code development. These include but are not limited to flowcharts, Boolean logic, control flow, data types and structures, Inheritance, Polymorphism Templates, Exceptions and Operator Overloading Strings, Streams, Files and advanced Data Structures topics. This course prepares students for focused studies in gaming or other advanced programming arenas. The student learns how to enter, compile, link, and run a computer program using the C++ language in a Windows, Linux, or equivalent environment. Structured programming will be introduced through techniques designed to solve mathematical, scientific, and engineering problems. Laboratory exercises provide practice in writing programs and reinforce advanced programming concepts, logic flow, and structured design. Prerequisites: CS 332.

CS 360. Artificial Intelligence. 3 Hours.

This course will introduce the basic principles of artificial intelligence (AI) and its applications. The class will begin by discussing ways to represent knowledge about the world through logic and how to reason logically with that knowledge. The students will learn general principles of rule-based expert systems. Instructors will introduce and analyze techniques, which allow reasoning under uncertainty. Students will consider Bayesion networks and other probabilistic reasoning models. Students will observe basic principles of the learning theory and consider real world applicaitons of AI, such as expert-based systems and natural-language representation. Prerequisite: COSC 1315.

CS 361. Database Systems and Design. 3 Hours.

This course provides the basic concepts of management of database systems. The cousre emphasizes understanding the various database management functions and providing database support for the organization. Topics include types of database models, database design, entity-relationship diagrams, normalization, database-management systems, administration of database security, error recovery, concurrency control, and distributed-database systems. This course focuses on the design of a database starting from the conceptual design to the implementation of a database schema and user interfaces to the database. The course is heavily design oriented. In most of the projects, students have to design and implement a database using a commercial database management system and associated development tools. Students will learn the database query language SQL and the development of applications using PL/SQL. Students use Oracle 10g (SQL, PL/SQL) and SQL Server 2005 database software in this course. Laboratory exercises provide practice in writing programs and reinforce concepts. Prerequisite: CS 332.

CS 363. Neural Networks and Machine Learning. 3 Hours.

This course provides the basic concepts of neural networks and machine learning including but not limited to biological foundations of neuronal morphology, machine learning concept and its fundamentals, basics of neural information processing, artificial neuron and its activation functions, multilayer feed forward neural networks and back propagation learning, Hopfield neural networks and associative memories, neuro-fuzzy and kernel-based networks, and support vector machines. Laboratory exercises provide experience with design and utilization neural and other machine-learning algorithms using MATLAB and solving real-world classification, prediction, and pattern recognition problems. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.

CS 367. Software Engineering. 3 Hours.

This course will offer a wide perspective on software design, stages of software development, design of software documentation, and development including requirements analysis, technical design, estimating, programming style, testing and quality, management, and maintenance. A part of the course is a software project, which students shall design. Prerequisite: CS 332.

CS 370. Programming Language Design. 3 Hours.

This course explores the design of high-level languages, criteria for language selection, specification techniques for syntax and semantics, trends in high-level language design, and introduction to programming in LISP. Prerequisite: CS 332.

CS 380. Automata Theory. 3 Hours.

This course is a study of the basic types of abstract languages and their acceptors, the Chomsky hierarchy, solvability and recursive function theory, and application of theoretical results to practical problems. Prerequisite: COSC 1321.

CS 390. Ethics in Technology. 3 Hours.

This course examines ethical issues and moral problems that engineers, computer scientists, and information technology professionals face. This course covers issues such as moral and ethical relevance, professional responsibilities, privacy, intellectual property, risks, and liabilities. Students review case studies of ethical conflicts in work environment and resolve theoretical situations through the application of ethical codes.

CS 410. Operating Systems. 3 Hours.

This course covers the principles and concepts that govern the design of modern computer operating systems. This course covers managing computing resources such as the memory, the processor, and the Input/Output devices. The course also covers algorithms for CPU scheduling, memory and general resource allocation, process coordination and management, and case studies of several operating systems. Operating systems also manage the authentication, accounting, and authorization aspects in a multi-user system. Students will explore issues and limitations imposed on a computing environment by the choice of different operating systems. Prerequisite: CS 332.

CS 420. Computer Networks. 3 Hours.

Students learn the basic computer networking concepts including ISO/OSI and TCP/IP reference model for networking protocols. The topic covers network architectures, communication protocols, physical media, error control, data link control, medium access control, local area networks, network layer, congestion control, and introduction to virtual circuit and datagram network. The course will also include the case studies and lab assignments for existing networks and network architecture. Prerequisite: CS 332.

CS 430. Mobile App Development. 3 Hours.

The course provides the student with a strong foundation in Java programming and the confidence to build successful mobile applications. Students will learn how to use the basic functionalities including user input, variables, operations, decision-making controls, lists, arrays, and Web Browsers. Students also learn how to implement audio, display pictures, and create animation and graphics in Android apps. Prerequisite: CS 352 or CS 353.

CS 465. Computer Security. 3 Hours.

This course will provide a broad introduction to host-based and Internet-based computer security. Topics covered include an introduction to cryptography, authentication protocols, access control, database security, intrusion detection, malicious software such as worms and virus propagation, and techniques to secure the Internet such as firewalls, intrusion detection systems, and Web and IP security. Prerequisite: CS 332.

CS 467. Image Processing and Computer Vision. 3 Hours.

This course provides the basic concepts of image processing and computer vision including but not limited to image sensing and acquisition, visual perception, image enhancement (mostly spatial domain image enhancement, but some essential elements of the frequency domain enhancement will be considered), image filtering in spatial and frequency domain, edge detection and image segmentation, elements of morphological image processing, elements of image restoration, image understanding and recognition, elements of color image processing. Laboratory exercises provide experience with design and utilization image processing algorithms using MATLAB and solving real-world problems in medical and satellite image processing, in old images restoration and in digital photography. Students will program different algorithms and use their programs for processing real images. This will help students to accomplish specified challenges as they build problem-solving skills. Prerequisite: COSC 1315.

CS 485. Capstone in CS. 4 Hours.

The aim of the capstone project in the senior year of Computer Science majors is to familiarize them with the process of solving real-world computational problems as practiced in industry. This course requires students to develop a project based on the knowledge and skills acquired in earlier coursework and integrate their technical knowledge through practical design effort. The work can be performed as a team work or can be performed as an individual project design.

CS 489. Individual Study. 3 Hours.

This course provides individual instruction. Students may repeat the course when topics vary.

CS 490. CS Senior Design I. 3 Hours.

This course is taken by seniors as the first part of the senior design experience in the semester before CS 491. Projects may involve the design of an algorithm, or a software and/or hardware system and topics covered may include the design process, project planning and management, and project costs, and includes aspects of ethics in computer science design, safety, environmental considerations, economic constraints, liability, manufacturing, and marketing. Projects are carried out using a team-based approach and selection and analysis of a design project to be continued in CS 491 is carried out. Written progress reports, a proposal, a final report, and oral presentations are required. Prerequisite: CS 310, CS 353, CS 367, and CS 410 or by instructor consent; open only to Computer Science majors. Prerequisite or Corequisite: CS 370.

CS 491. CS Senior Design II. 3 Hours.

Projects involving the design of a device, circuit system, process, or algorithm that have started in the previous semester will be completed. Team solution to an computer science design problem as formulated and initiated in CS 490 will continue to take place. Written progress reports, a final report, design manuals, and oral presentations are required. Prerequisite: CS 490; open only to Computer Science majors.

CS 497. Special Topics. 3 Hours.

Instructors will provide an organized class designed to cover areas of specific interest. Students may repeat the course when topics vary. Prerequisite: Instructor permission.

CS 499. Independent Research. 1-6 Hours.

Independent research in Computer Science conducted by a student under the guidance of a faculty member of his or her choice. The student is required to maintain a research journal and submit a project report by the end of the semester and potentially make an oral presentation on the project. SCH and hours are by arrangement and, with a change in content, this course may be repeated for credit. Prerequisite: Consent of instructor.


Dr. Feodor Vainstein