Welcome to Arkansas State University!

The frequency of course offering is indicated following each course description. If not otherwise indicated, the course will be scheduled for each enrollment period. The university reserves the right to change course scheduling when circumstances dictate such changes.


Undergraduate


Computer Science (CS)

CS 1013 Introduction to Computers
Applications of computers for general university course work. Elementary operating system usage, creation of data files, spreadsheets for mathematical and scientific data, Internet usage. Corequisite: MATH 0013. Fall, Spring, Summer.

CS 1093 Making Connections Computer Science
Required course for first semester freshmen. Core content includes transition to college, academic performance skills, problem solving, critical thinking, self management, group building skills, and university policies. Content related to the departmental majors is also included. Fall.

CS 1114 Concepts of Programming
Introduction to problem solving, algorithm development, and structured programming. Emphasis will be placed on problem solving and algorithm development. Designed as a first course for students seeking the Bachelor of Arts in Computer Science as well as non-majors. Prerequisites: MATH 1023. Fall, Spring.

CS 2114 Structured Programming
First course in programming, emphasis on programming methodology, procedural abstraction, and top down design. Introduction to string processing, file input and output, recursion, and simple data structures. Prerequisites: C or better in MATH 1023. Fall, Spring.

CS 2124 OOP and Fundamental Data Structures
Second course in programming, emphasis on data abstraction. Introduction to abstract data types and object-oriented programming. Linked lists, stacks, queues and binary trees. Searching and sorting techniques. Prerequisites: C or better in CS 2114. Fall, Spring.

CS 3113 Algorithms and Advanced Data Structures
Analysis of data structures and associated algorithms. Examination of advanced tree structures, heaps, hashing techniques, and graph algorithms. Prerequisites: C or better in CS 2124 and MATH 2183, and MATH 2204 or MATH 2143 or MATH 2194. Fall, Spring.

CS 3123 Programming Languages
Survey of organization and behavior of programming languages. Examination of data typing, control structures, syntactic representation and specification. Prerequisites: CS 2124. Spring.

CS 3213 Assembly Language Programming
Basic concepts of computer systems and architecture. Programming and debugging of assembly language programs. Prerequisites: CS 2114. Demand.

CS 3223 Computer Organization
Basic principles of computer architectural design including instruction set principles, pipelining, instruction level parallelism, memory hierarchy, storage systems, and multiprocessing. Prerequisites: MATH 2204, CS 2124 and EE 3333. Fall.

CS 3233 Operating Systems
Policies, design issues, and implementation techniques for operating system software. Synchronization, process scheduling, memory and storage management, and system protection. Prerequisites: CS 3113. Spring.

CS 4113 Software Engineering
Techniques of design, implementation, automated tools, quality assurance, metrics, and maintenance for large scale software systems. Projects include team programming experience. Prerequisites: CS 3113. Fall.

CS 4133 Compilers
Techniques for construction of compilers. BNF and EBNF representations. Lexical, syntactic and semantic analysis. Top down and bottom up parsing. Run time systems and code generation. Prerequisites: CS 3113. Fall, even.

CS 4143 Java Application Development
Introduction to Java; in depth examination of applications including graphics, threading, database, networking, distributed system, and algorithms. Prerequisites: CS 3123, CS 3223, and CS 3233. Spring.

CS 4213 Distributed Computing
Study of client server systems, distributed databases, distributed transaction processing, and distributed applications. Provides overview of recent trends in distributed object technologies. Applications will be designed and constructed using object software architectures. Prerequisites: CS 3113. Demand.

CS 4223 UNIX Systems Programming
System level programming in UNIX systems. Prerequisite: CS 3113. Fall.

CS 4313 Computer Networks
Issues and principles involved in the design of computer networks using the OSI reference model as a framework. Prerequisites: CS 3233. Spring.

CS 4413 Computer Graphics I
Creation, storage, and manipulation of graphical models of objects. Implementation of graphics routines in both two and three dimensional techniques. Prerequisite: CS 3113. Spring.

CS 4423 Computer Graphics II
Continuation of Computer Graphics I. Techniques for realistic solid modeling. Topics include hidden surface removal, shading, shadowing, reflection, refraction, and color theory. Prerequisites: CS 4413. Demand.

CS 4433 Artificial Intelligence
Representation of knowledge and introduction to a functional programming language, search methods and control. Typical applications of artificial intelligence. Prerequisites: CS 3113. Spring, odd.

CS 4543 Database Systems
Topics include major database models, relational algebra, data independence and database normalization, entity relationship model, security, integrity, recovery, and concurrency issues, physical organization of a database. Prerequisites: CS 3113. Fall.

CS 4713 Analysis of Algorithms
Analysis of space and time requirements of algorithms. Worst case and average case studies. Greedy algorithms and divide and conquer algorithms. Tractable and intractable algorithms. Prerequisites: CS 3113 and MATH 2214. Fall.

CS 4723 Automata Theory
Study formal languages and equivalent models of computation, finite state automata and regular expressions, push down automata and context free grammars, pumping lemmas and closure properties, and turing machines. Prerequisites: CS 3113. Fall, odd.

CS 4811 Computer Science Seminar
Critical discussion and presentation of papers on current topics in computer science. The prerequisites will vary according to the topic selected, but all students must have taken CS 3113. Demand.

CS 4823 Scripting Languages
Examination of scripting languages compared to conventional programming languages and construction of domain-specific solutions for common problems in GUI, networking and web programming. Prerequisites: CS 3113. Demand.

CS 482V Special Problems in Computer Science
Individual problems or topics in computer science arranged in consultation with the instructor must be approved by the department. Prerequisites: CS 3113. Demand.

CS 483V Internship
Supervised work experience participating in application system development in a business and manufacturing environment. Grade earned will be pass or fail. Prerequisites: Permission of the Computer Science faculty and CS 3113. Demand.

Graduate

CS 5012 Accelerated Structured Programming
First course in programming, emphasis on programming methodology, procedural abstraction, and top down design. Introduction to string processing, file input and output, recursion, and simple data structures. Cannot be used for CS degree credit. Prerequisites: Permission of the Computer Science faculty.

CS 5022 Accelerated OOP and Fundamental Data Structures
Emphasis on object-oriented programming techniques. Introduction to abstract data types. Linked lists, stacks, queues and binary trees. Searching and sorting techniques. Cannot be used for CS degree credit. Prerequisites: Permission of the Computer Science faculty.

CS 5032 Algorithms and Advanced Data Structures
Analysis of data structures and associated algorithms. Examination of advanced tree structures, heaps, hashing techniques, and graph algorithms. Cannot be used for CS degree credit. Prerequisites: Permission of the Computer Science faculty.

CS 5113 Software Engineering I
Techniques of design, implementation, and automated tools, quality assurance, metrics, and maintenance for large scale software systems. Projects will provide team programming experience. Prerequisites: CS 3113.

CS 5123 Software Engineering II
Continuation of Software Engineering I; the survey techniques for dealing with large scale software systems begun there continues here. Projects will provide team programming experience. Prerequisites: CS 5113.

CS 5133 Compilers
Techniques for the construction of compilers. BNF and EBNF representations. Lexical, syntactic and semantic analysis. Top-down and bottom-up parsing. Construction of run-time systems and symbol table routines. Code generation and optimization. Automation tools. Prerequisite: CS 3113.

CS 5213 Distributed Computing
Study of client-server systems, distributed databases, distributed transaction processing, and distributed applications. Provides overview of recent trends in distributed object technologies. Applications will be designed and constructed using object software architectures. Prerequisites: CS 3113 Data Structures.

CS 5223 UNIX Systems Programming
System-level programming in UNIX systems. Prerequisites: CS 3113.

CS 5313 Computer Networks
Issues and principles involved in the design of computer networks using the OSI reference model as a framework. Prerequisites: CS 3233.

CS 5413 Computer Graphics I
The creation, storage, and manipulation of models of objects and their pictures via computer. Implementation of graphics routines beginning at the device driver level and continuing with two and three-dimensional techniques. Prerequisites: CS 3113.

CS 5423 Computer Graphics II
Continuation of Computer Graphics I. Techniques for generation of realistic solid models are examined. Topics include hidden surface removal, shading, shadowing, reflection, refraction, and color theory. Prerequisites: CS 5413.

CS 5433 Artificial Intelligence
Representation of knowledge and introduction to a functional programming language; search methods and control. Typical applications of artificial intelligence. Prerequisites: CS 3113.

CS 5543 Database Systems
Topics include major database models; relational algebra; data independence and database normalization; entity relationship model; security, integrity, recovery and concurrency issues; physical organization of a database. Prerequisites: CS 3113.

CS 5713 Analysis of Algorithms
The analysis of space and time requirements of algorithms. Worst-case and average case studies. Greedy algorithms and divide and conquer algorithms examined. Tractable and intractable algorithms surveyed. Prerequisites: CS 3113 and MATH 2214.

CS 5723 Automata Theory
Study formal languages and equivalent models of computation. Finite state automata and regular expressions. Push-down automata and context free grammars. Pumping lemmas and closure properties. Turing Machines. Prerequisites: CS 3113.

CS 5823 Scripting Languages
Examination of scripting languages compared to conventional programming languages and construction of domain-specific solutions for common problems in GUI, networking, and web programming. Prerequisites: CS 3113.

CS 583V Internship
Supervised work experience participating in application system development in a business/manufacturing environment. Grade earned will be pass or fail. Prerequisites: Permission of the Computer Science faculty, CS 3363, and either CS 3113.

CS 6213 Parallel Processing
Parallel processing and supercomputer architecture with emphasis on efficient utilization of resources. Prerequisites: CS 3223.

CS 6313 Data Security
Methods for protection, security, and privacy of data; access controls, authentication, cryptographic controls, information flow controls, security kernels. Security of data in networks. Prerequisites: CS 3233.

CS 6413 Solid Modeling
Examination of advanced modeling techniques with emphasis on radiosity. Techniques for rapid interactive display of a complex three-dimensional environment will be developed. Prerequisites: CS 5423 or permission of professor.

CS 6423 Robotic Software Control
Study of robot manipulators from mathematical and programmed control perspectives. Topics include kinematic representation, manipulator positioning, velocity control, and trajectory calculation. Prerequisites: permission of professor.

CS 6433 Natural Language Processing
Data representations used in programming computers to interpret and to generate natural language text. Background from linguistics, theoretical computer science and lexical analysis; structures and algorithms for syntactical analysis, semantic analysis, and knowledge representation.

CS 6513 Data Compression and Indexing
Compressing, indexing and querying large collections of text and image data. Prerequisites: CS 5123 or CS 5713 or permission of instructor.

CS 6713 Advanced Analysis of Algorithms
Theoretical space and time requirements for algorithms. Prerequisites: CS 5713 or permission of professor.

CS 6723 Computability Theory
Turing machines and equivalent models of computation. The universal Turing machine and insolvability results. Study of computable functions. Problem classification and hierarchy. Prerequisites: CS 5723 or permission of professor.

CS 6813 Seminar in Computer Science
Current topics in Computer Science.

CS 6823 Special Topics
Current topics of interest to graduate computer science students. (May be repeated for credit with different subtitle.) Prerequisites: varies according to topic.

CS 688V Independent Study

CS 689V Thesis