This course provides an interdisciplinary introduction to microcomputer literacy, word processing, spreadsheets, database, business graphics and the internet. NOTE: Cannot be used to satisfy the major or minor requirements in Computer Science.
May not be audited.
The advanced techniques of standard business applications including, but not limited to, spreadsheets, database, and presentation tools are examined. The course briefly covers programming concepts and is taught in a computer laboratory for maximum hands-on experience. Preq: CS 2200 and MTH 1111
An introduction to a programming language is provided. The course also presents programming fundamentals, including program structure, assignment, data types, input/output, flow of control, and functions. It includes top-down design, structured programming using the basic control structures, sequence, deCSion and repetition, modularization, and encapsulation. The phases of engineering of software are introduced and techniques of program testing are emphasized. The student writes a moderate number of short programs. Prereq: MTH 1112. "C" or better to advance for CS majors.
This course is a continuation of Computer Science I. Advanced programming, including arrays, pointers, strings, the pre-processor, structures, list processing, and advanced I/O are examined. Emphasis is placed on developing and testing moderately large programs. Ethical issues in computing will be discussed. The student writes a number of programs, generally larger than those written in Computer Science I. Prereq: CS 2244 and MTH 1125. "C" or better to advance for CS majors.
A broad introduction is presented to the concepts in computer science intended as preparation for more in-depth coverage in upper level courses. Topics discussed include fundamentals of Boolean predicate logic, gate and combinatorial logic circuits, internal data representation, computer system organization, machine and assembly language programming, operating systems, finite state machines, and programming language grammars. This is not a programming language course, although the student will write short machine and assembler language programs. Prereq: CS 2260
An opportunity for a Computer Science major or minor to gain experience and training in a secondary high-level language. Topics included the syntax, advantages, disadvantages, limitations, and selected applications of a language. Credit will not be given toward a computer science major or minor if credit has been received for the same language in another course. C/CPP, C/C++, J.JAVA, P.Prolog, S.Smalltalk, L.Lisp. Prereq: CS 2260 or consent of instructor.
Discrete mathematics with a computer science orientation is presented. Topics examined include definitions of the algorithm concept, recursive definitions and recursive algorithms, sets, relations, algorithm timing, finite state machines, permutations and binomial coefficients, matrix representation of graphs and graph algorithms, and discrete probability. Topics can also be drawn from principles of inclusion and exclusion, generating functions, and discrete simulation. Prereq: CS 2260 and MTH 1126
Statistical methods with probabilistic foundations are covered. Topics discussed include independence and the normal distribution, central limit theorem, data collection and sampling, testing of hypotheses, confidence intervals, linear regression, and computational intensive techniques. Prereq: CS 3312
Abstract data types, lists, ordered lists, arrays, linked lists, stacks, queues, and trees are surveyed. The course includes open laboratory assignments that include implementing a stack with arrays, a queue with arrays, a stack with a linked list, a queue with a linked list, and a queue of ordered lists using a linked list of arrays. Prereq: CS 3312
The course includes introduction to operations research, introduction to linear programming, simplex-based sensitivity analysis and duality, linear programming applications, network models, simulation, waiting line models, Markov processes, forecasting, and inventory models. Prereq: CS 3313 and MTH 1126
Alternative techniques to solve real-world problems in computer science are presented. Problems include sorting, selection, tree, graph, traversal, priority queues, string matching, dynamic programming, polynomials, and matrices. Principles and techniques of measuring computational complexity, and introductions to NP-completeness and parallel algorithms are discussed. The students write a moderate amount of moderately sized programs. Prereq: CS 3313 and CS 3323
Approaches to defining artificial intelligence and the building of intelligent computer systems are presented. The course includes discussion of the Turning test, Sourly's Chinese room, blackboard systems, logic programming, knowledge based systems, scripts and schemas, and heuristic search techniques. Overviews of genetic algorithms, artificial neural networks, statistical and structural pattern analysis, and fuzzy sets are provided. The course includes three open laboratory assignments involving a knowledge-based system, implementation of a heuristic search, and an exploration of P.P. Prereq: CS 3329
Selected topics are presented which focus on the design and development of tools and techniques for large, high quality, cost effective software systems. Prereq: CS 3329
A conceptual framework is presented of object-oriented programming. Topics discussed include classes, data hiding, member functions, object creation, overloading, inheritance, parametric polymorphism, and reusable code. Students write a moderate amount of small to medium-sized programs. Prereq: CS 3329
Formal language theory, including the Chomsky hierarchy, with emphasis on regular and context free languages, finite state automata, and translators is presented. Also discussed are the principles of programming language design to include the analysis of the generational differences among programming languages. Prereq: CS 3370
Boolean algebra, design and minimization of combinational and sequential circuits are discussed. This course includes six open laboratory assignments covering a introduction to simulation software, implementation of a simple combinational logic switching circuit, implementation of a combinational switching circuit with a static hazard and modification of the same circuit to remove the static hazard, implementation of a simple sequential circuit using a single type of flip-flop, implementation of a sequential circuit using two types of flop-flops, implementation of a sequential switching circuit exhibiting a race condition and modification of the same circuit to remove the race condition. Prereq: CS 2261 and CS 3312
Organization and basic architecture of computer systems. Topics include hardware components of digital computers, micro-programming and memory management. Boolean algebra and logic circuits; register transfer operations; design small computer; input, output, and interrupt organization; powerful addressing modes, instruction formats, and their hardware structures; micro-program control. Laboratory exerCSes involve logical, functional properties of components from gates to microprocessors. Prereq: 3357
Introduction to the impact of computers on society and the ethical and legal issues confronting computer users and professionals. Topics include computer ethics, professional responsibility, intellectual property, privacy, access, and the law. May not count toward a minor in Computer Science. Prereq: junior standing and consent of the department
General criteria design, implementation, and evaluation of programming languages. Historical prospective. Syntactic and semantic specification, compilations, and interpretation processes. Comparative studies of data types and data control, procedures and parameters. Sequence control, nesting, scope and storage management, run-time representations. Non-standard languages, problem-solving assignments in a laboratory environment. Prereq: CS 3323 and CS 3365
In-depth study is conducted of a topic in current artificial intelligence research. Topics for consideration include genetic algorithms, artificial neural networks, pattern analysis, logic programming, fuzzy sets, or other appropriate research areas. The course includes three open laboratory assignments representing the incremental development of an appropriate project topic. Prereq: CS 3331
A study of programming language structure, translation, loading, execution, and storage allocation. Compilation of simple expressions and statements. Organization of a compiler including compile-time and run-time symbol tables, lexical scan, syntax scan, object code generation, error diagnostics, object code optimization techniques, and overall design. Use of high-level language to write a complete compiler. Prereq: CS 3365
The study of the fundamental concepts and structures necessary for the design and implementation of database management systems. Topics include database models (entity-relationship, relational network, and hierarchical). Data normalization, data description languages, query facilities, file organization, index organization, file security, data integrity, and reliability. The student generates, creates, loads and accesses a database using Database Management Systems. Prereq: CS 2265
Local area network standards, topologies, technologies and management are examined. Additional topics include the interconnection of LANS, distributed computing, and network-related security issues. Prereq: CS 3329
Investigation, design, appraisal and implementation of data processing systems are presented. Additional topics include I/O design, code standardization, documentation, hardware and software selection, and case studies. Prereq: CS 3332
An overview is provided of operating system components and functions, process description and states, concurrency and related issues, and scheduling and memory management strategies. This course includes two open laboratory assignments covering a comparative exploration of several operating systems, and implementation of a simulation of a rudimentary, multi-tasking operating system. Prereq: CS 3329 and CS 3365
This course is a continuation of Software Engineering I with additional topics including software quality assurance, testing techniques, maintenance and configuration management. Student teams will design, develop, and implement a large project. Prereq: CS 3332
In-depth coverage is presented of specific topics in object-oriented technology. These topics can include object-oriented systems analysis and design, object-oriented databases, alternative object-oriented programming languages such as Smalltalk, applications of object-oriented technology to computer graphics, building general user interfaces (GUIs) and class construction and management. Prereq: CS 3339
Information indexed under "Guided Independent Research and Study." Prereq: junior or senior standing
Information indexed under "Guided Independent Research and Study." Prereq: junior or senior standing