Computer Science (COMP SCI)

COMP SCI 1001 Special Topics (LAB 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.

COMP SCI 1010 Introduction To Computer Science (LEC 1.0)

This course is devoted to an introduction of various areas of Computer Science, the faculty members, and lab equipment. Computer ethics will be discussed in several lectures.

COMP SCI 1200 Discrete Mathematics For Computer Science (LEC 3.0)

A rigorous treatment of topics from discrete mathematics which are essential to computer science. Principal topics include: formal logic (propositional & predicate), proof techniques, mathematical induction, program correctness, sets, combinatorics, probability, relations, functions, matrices, graph theory and graph algorithms. Prerequisite: A "C" or better grade in Comp Sci 1570.

COMP SCI 1570 Introduction To Programming (LEC 3.0)

Programming design and development using C++. Emphasis placed on problem solving methods using good programming practices and algorithm design and development. Topics included are syntax/semantics, logical, relational and arithmetic operators, decision branching, loops, functions, file I/O, arrays, output formatting, C-strings, and an introduction to Object-Oriented Programming including the development and use of classes. Prerequisite: Accompanied by Comp Sci 1580.

COMP SCI 1575 Data Structures (LEC 3.0)

A continuation of Object-Oriented Programming, with emphasis on the efficient organization of data through Abstract Data Types and Data Structures. Topics include Linked Lists, Vectors, Stacks, Queues, Trees, Hash Tables, Graphs and their use in a variety of algorithms. Recursive programming techniques are also covered. This course is programming intensive. Prerequisite: Grade of "C" or better in Comp Sci 1570.

COMP SCI 1580 Introduction To Programming Laboratory (LAB 1.0)

Practical applications of concepts learned in Computer Science 1570. Hands-on instruction in C++ developing, debugging, and testing programming projects. Prerequisite: Accompanied by Comp Sci 1570.

COMP SCI 1585 Data Structures Laboratory (LAB 1.0)

Hands-on instruction in programming development tools such as version control systems, integrated development environments, debuggers, profilers, and event-based programming environments. Exercises will complement the concepts presented in Comp Sci 1575. Prerequisite: Preceded or accompanied by Comp Sci 1575.

COMP SCI 1970 Basic Scientific Programming (LEC 2.0)

Introduction to the structure of programs and programming techniques in Fortran to solve science and engineering problems. Topics include data representation, basic solutions of numerical problems and the debugging and verification of programs. Prerequisite: Entrance requirements.

COMP SCI 1971 Introduction To Programming Methodology (LEC 2.0)

Basic structured programming and problem solving techniques using C++. Development, debugging, and testing of programs, data representation. Topics to include syntax/semantics, operators, loops, decision branching, arrays, file I/O. This course is a terminal course for non-majors and is not sufficient for entry into Computer Science 1510.

COMP SCI 1972 Introduction to MATLAB Programming (LEC 2.0)

Programming design and development using MATLAB for non-CS majors. Strong emphasis placed on algorithmic problem solving methods using good programming practices. Introduction to built-in functions including plotting, as well as logical/relational/arithmetic operators, decision branching, loops, functions, file I/O, datastructures, and output formatting. Prerequisite: Accompanied by Comp Sci 1982 and a "C" or better grade in either Math 1208 or Math 1214.

COMP SCI 1980 Computer Programming Laboratory (LAB 1.0)

A laboratory to accompany Comp Sci 1970 which emphasizes the designing, writing and debugging of programs in Fortran. Prerequisite: Accompanied by Comp Sci 1970.

COMP SCI 1981 Programming Methodology Laboratory (LAB 1.0)

A hands-on introduction to structured programming in C++. Development, coding, debugging, and execution of programming concepts discussed in Computer Science 1971. Prerequisite: Accompanied by Computer Science 1971.

COMP SCI 1982 MATLAB Programming Laboratory (LAB 1.0)

Practical application of concepts learned in Comp Sci 1972. Hands-on instruction in MATLAB developing, debugging and testing programming projects. Prerequisite: Accompanied by Comp Sci 1972.

COMP SCI 2001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.

COMP SCI 2002 Cooperative Work Training (IND 1.0-5.0)

On-the-job experience gained through cooperative education with industry, with credit arranged through departmental cooperative advisor. Grade received depends on quality of reports submitted and work supervisors evaluation. Not more than 9 hours may be applied to the B.S. degree.

COMP SCI 2200 Theory of Computer Science (LEC 3.0)

This course will cover the theoretical underpinnings of computer science. In particular, this course will cover the following topics: basic computability and formal language concepts, regular languages, context free languages, recursively-enumerable languages, and classes P, NP, and NP-completeness. Prerequisite: A "C" or better grade in both Comp Sci 1200 and Comp Sci 1510.

COMP SCI 2300 File Structures And Introduction To Database Systems (LEC 3.0)

Course covers major topics in file structures and database systems including techniques for disk access and organization, record and file structures, index structures, sequential file, dense/sparse and secondary indexes, B-trees, range queries, insertion/deletion, hash tables, fundamentals of database systems, the ER model, relational model, algebra and SQL. Prerequisite: A "C" or better grade in Comp Sci 1510.

COMP SCI 2500 Algorithms (LEC 3.0)

Students will solve recurrence relations, analyze algorithms for correctness and time/space complexity, apply these analysis techniques to fundamental dynamic programming, greedy, shortest-path, minimal spanning trees, and maximum flow algorithms and validate these analyses through programming. Prerequisite: A "C" or better grade in both Comp Sci 1200 and Comp Sci 1510; preceded by "C" or better grade in either Math 1208 or Math 1214, or accompanied by either Math 1208 or Math 1214.

COMP SCI 2501 Java and Object Oriented Design (LEC 3.0)

This course will cover Basic Java, Applets, Application, Classes, interfaces, Strings, Arrays, Generics, inheritance, Polymorphism, Algorithm and Object Oriented Design, Software Testing, Exception Handling, File I/O. The use of Graphical User Interfaces in program design and introduction to Software Life Cycle. Project included. Prerequisite: A "C" or better grade in Comp Sci 1570.

COMP SCI 2889 Introduction To Computer Organization And Assembly (LEC 3.0)

A detailed study designed to teach the building blocks of a computer system, assembly language programming and the basic computer organization concepts. Subjects include digital logic, performance issues, machine & assembly language, binary arithmetic, and the structure of an ALU. Prerequisites: Comp Sci 1510 and Comp Sci 1200.

COMP SCI 3001 Special Topics (LEC 0.0 and LAB 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.

COMP SCI 3010 Seminar (IND 0.0-6.0)

Discussion of current topics.

COMP SCI 3100 Software Engineering I (LEC 3.0)

Development of methodologies useful in the software engineering classical life cycle. This includes: requirements, design, implementation, and testing phases. These methodologies are reinforced through utilization of a CASE tool and a group project. Prerequisite: A "C" or better grade in Comp Sci 2500 and at least Junior standing.

COMP SCI 3200 Introduction To Numerical Methods (LEC 3.0)

Finite difference interpolation, numerical differentiation and integration, linear systems of equations, solution of nonlinear equations, numerical solution of ordinary differential equations, computational techniques and the programming of a large number of problems on digital computers. Prerequisites: Program competency and a "C" or better grade in either Math 1215 or Math 1221.

COMP SCI 3500 Programming Languages And Translators (LEC 3.0)

Covers basic design of programming languages, compilers and interpreters. The concepts of syntax, variables, expressions, types, scope, functions, procedures, statements, I/O, exception handling and concurrency are introduced. The manner in which various programming languages handle these concepts is discussed. Prerequisite: A "C" or better grade in Comp Sci 2200.

COMP SCI 3600 Introduction to Computer Security (LEC 3.0)

This course encompasses threats and vulnerabilities, trust and security policies, and enforcement. Specific topics include access control, risk management, systems and applications life cycle, physical security, key management, transmission security, and cryptography. Prerequisite: A "C" or better grade in Comp Sci 2500.

COMP SCI 3601 Digital Forensics (LEC 3.0)

Planning/managing incidents and response related to digital forensics; identifying, collecting, and preserving digital evidence; live/dead approaches covering systems as a whole emphasizing file system forensics; analysis and interpretation of artifacts culminating in a final project consisting of a collection, analysis, and report; legal and ethical issues. Prerequisites: A "C" or better grade in both COMP SCI 3600 and COMP SCI 3800.

COMP SCI 3800 Introduction To Operating Systems (LEC 3.0)

This course teaches the concepts, structure, and mechanisms of Operating Systems. Topics include process management, concurrency, synchronization, deadlock, multithreading, memory management, scheduling, and internetworking. Special emphasis is given to Unix and its modern-day derivatives. Prerequisites: A "C" or better grade in all of Comp Sci 1510, Comp Sci 1200, and Comp Eng 3150.

COMP SCI 3803 Computer Organization (LEC 3.0)

A detailed study of computer organization concepts and the components of a computer system including control unit, microprogrammming, pipelining, memory hierarchy, cache design, virtual memory, I/O devices, and a brief introduction to parallel processors. Prerequisites: A "C" or better in both Comp Eng 2210 and Comp Sci 1510.

COMP SCI 4000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.

COMP SCI 4001 Special Topics (LAB 0.0 and LEC 0.0)

This course is designed to give the department an opportunity to test a new course. Variable title.

COMP SCI 4010 Seminar (IND 0.0-6.0)

Discussion of current topics. Prerequisite: Senior standing.

COMP SCI 4096 Software Systems Development I (LEC 3.0)

Class members will work in small teams to develop a complete software system beginning with end-user interviews and concluding with end-user training. Prerequisites: 100 credit hours completed and a grade of "C" or better in both Comp Sci 3100 and one of Phil 3225, Phil 3235, Phil 4340, or Phil 4368.

COMP SCI 4097 Software Systems Development II (LEC 3.0)

This course is an optional continuation of Comp Sci 397. Those interested in project management should take this course since participants become officers or group leaders in the class "corporation." This course is especially important for those going straight into industry upon graduation. Students with coop experience may find this course redundant. Prerequisite: A "C" or better grade in Comp Sci 4096.

COMP SCI 4099 Undergraduate Research (IND 0.0-6.0)

Designed for the undergraduate student who wishes to engage in research. Does not lead to the preparation of a thesis. Not more than six (6) credit hours allowed for graduation credit. Subject and credit to be arranged with the faculty supervisor.

COMP SCI 4489 Multimedia Systems (LEC 3.0)

This course introduces the concepts and components of Multimedia information systems. Topics include: Introduction to Multimedia Data, Multimedia Date Compression, Techniques and Standards, Indexing and Retrieval, Data Storage Organization, Communication and Synchronization, Applications-Media-OnDemand Systems, Video Conferencing, Digital Libraries. Prerequisite: A "C" or better grade in Comp Sci 1510.

COMP SCI 4600 Computer Communications And Networks (LEC 3.0)

Network architecture model including physical protocols for data transmission and error detection/correction, data link concepts, LAN protocols, internetworking, reliable end to end service, security, and application services. Students will implement course concepts on an actual computer network. Prerequisite: A "C" or better grade in Comp Sci 3800.

COMP SCI 4601 Computer Network Concepts And Technology (LEC 3.0)

This course will introduce computer network concepts and will survey the current and evolving technology for the construction, operation, and management of those networks. Both hardware and software issues will be addressed with a focus on local area networks. Prerequisite: A "C" or better grade in Comp Sci 3800.

COMP SCI 4700 Intellectual Property For Computer Scientists (LEC 3.0)

A presentation of the relationship between the law of intellectual property and computer science. Topics include the application of copyright principles to computer programs, protection of computer programs through patents and trade secret law, and the effect of various agreements which are frequently encountered by the computer scientist. Prerequisite: Senior or graduate standing.

COMP SCI 5000 Special Problems (IND 0.0-6.0)

Problems or readings on specific subjects or projects in the department. Consent of instructor required.

COMP SCI 5001 Special Topics (LEC 0.0-6.0)

This course is designed to give the department an opportunity to test a new course. Variable title.

COMP SCI 5099 Research (IND 0.0-16)

Investigations of an advanced nature leading to the preparation of a thesis or dissertation. Consent of instructor required.

COMP SCI 5100 Agile Software Development (LEC 3.0)

Understand principles of agile software development and contrast them with prescriptive processes. Specifically: Eliciting, organizing, and prioritizing requirements; Design processes; Understand how a particular process promotes quality; Estimate costs and measure project progress and productivity. Prerequisite: A "C" or better grade in Comp Sci 3100.

COMP SCI 5101 Software Testing And Quality Assurance (LEC 3.0)

It covers unit testing, subsystem testing, system testing, object-oriented testing, testing specification, test case management, software quality factors and criteria, software quality requirement analysis and specification, software process improvement, and software total quality management. Prerequisite: A "C" or better grade in Comp Sci 2500.

COMP SCI 5102 Object-Oriented Analysis And Design (LEC 3.0)

This course will explore principles, mechanisms, and methodologies in object-oriented analysis and design. An object-oriented programming language will be used as the vehicle for the exploration. Prerequisite: A "C" or better grade in Comp Sci 2500.

COMP SCI 5200 Analysis Of Algorithms (LEC 3.0)

The purpose of this course is to teach the techniques needed to analyze algorithms. The focus of the presentation is on the practical application of these techniques to such as sorting, backtracking, and graph algorithms. Prerequisite: A "C" or better grade in Comp Sci 2500.

COMP SCI 5201 Object-Oriented Numerical Modeling I (LEC 3.0)

A study of object-oriented modeling of the scientific domain. Techniques and methodologies will be developed enabling the student to build a class library of reusable software appropriate for scientific application. Applications will be drawn from mechanics, finance, and engineering. Prerequisites: A "C" or better grade in both Comp Sci 3200 and Comp Sci 1510; a "C" or better grade in one of Math 3108, 3103, 3329.

COMP SCI 5202 Object-Oriented Numerical Modeling II (LEC 3.0)

A continued study of object-oriented modeling of the scientific domain. Advanced applications include models posed as balance laws, integral equations, and stochastic simulations. Prerequisite: A "C" or better grade in Comp Sci 5201.

COMP SCI 5203 Mathematical Logic I (LEC 3.0)

A mathematical introduction to logic with some applications. Functional and relational languages, satisfaction, soundness and completeness theorems, compactness theorems. Examples from Mathematics, Philosophy, Computer Science, and/or Computer Engineering. Prerequisite: Philos 3254 or Math 5105 or Comp Sci 2500 or Comp Eng 2210. (Co-listed with Math 5154, Philos 4354 and Comp Eng 5803.).

COMP SCI 5204 Regression Analysis (LEC 3.0)

Simple linear regression, multiple regression, regression diagnostics, multicollinearity, measures of influence and leverage, model selection techniques, polynomial models, regression with autocorrelated errors, introduction to non-linear regression. Prerequisites: Math 2222 and one of Stat 3111, 3113, 3115, 3117, or 5643. (Co-listed with Stat 5346).

COMP SCI 5300 Database Systems (LEC 3.0)

This course introduces the advanced database concepts of normalization and functional dependencies, transaction models, concurrency and locking, timestamping, serializability, recovery techniques, and query planning and optimization. Students will participate in programming projects. Prerequisite: A "C" or better grade in both Comp Sci 1200 and Comp Sci 2300.

COMP SCI 5400 Introduction To Artificial Intelligence (LEC 3.0)

A modern introduction to AI, covering important topics of current interest such as search algorithms, heuristics, game trees, knowledge representation, reasoning, computational intelligence, and machine learning. Students will implement course concepts covering selected AI topics. Prerequisite: A "C" or better grade in Comp Sci 2500.

COMP SCI 5401 Evolutionary Computing (LEC 3.0)

Introduces evolutionary algorithms, a class of stochastic, population-based algorithms inspired by natural evolution theory (e.g., genetic algorithms), capable of solving complex problems for which other techniques fail. Students will implement course concepts, tackling science, engineering and/or business problems. Prerequisite: A "C" or better grade in both Comp Sci 2500 and in a Statistics course.

COMP SCI 5402 Data Mining & Machine Learning (LEC 3.0)

Classical and modern data mining and machine learning algorithms; data preprocessing/warehousing, mining association rules, classification/prediction methods, clustering techniques, Bayesian networks; unsupervised/supervised/reinforcement learning, learning decision trees, artificial neural networks, support vector machines, and ensemble learning. Prerequisites: A "C" or better in both Comp Sci 2300 and one of Stat 3111, Stat 3113, Stat 3115, Stat 3117.

COMP SCI 5403 Introduction to Robotics (LEC 3.0)

This course provides an introduction to robotics, covering robot hardware, fundamental kinematics, trajectories, differential motion, robotic decision making, and an overview of current topics in robotics. Prerequisite: A "C" or better in both Math 3108 and Comp Sci 1510. (Co-listed with Comp Eng 5880 and Elec Eng 5880).

COMP SCI 5404 Introduction to Computer Vision (LEC 3.0)

This course introduces foundational theories and analysis methods in computer vision. Topics will include camera model and geometry, description of visual features, shape analysis, stereo reconstruction, motion and video processing, and visual object recognition. Prerequisite: A "C" or better grade in both Math 3108 and Comp Sci 2500.

COMP SCI 5405 Java Gui & Visualization (LEC 3.0)

Fundamentals of Java Swing Foundation Classes, Java System Language Specifics, Graphical User Interfaces, Images, Audio, Animation, Networking, and Threading. Visualization of Algorithms. GUI Elements include Event Driven Programming, Interaction with Mouse and KeyBoard, Window Managers, Frames, Panels, Dialog Boxes, Borders. Prerequisite: A "C" or better grade in Comp Sci 2500 or equivalent.

COMP SCI 5406 Interactive Computer Graphics (LEC 3.0)

Applications and functional capabilities of current computer graphics systems. Interactive graphics programming including windowing, clipping, segmentation, mathematical modeling, two and three dimensional transformations, data structures, perspective views, antialiasing and software design. Prerequisite: A "C" or better grade in both Comp Sci 3200 and Comp Sci 2500.

COMP SCI 5500 The Structure of a Compiler (LEC 3.0)

Review of Backus normal form language descriptors and basic parsing concepts. Polish and matrix notation as intermediate forms, and target code representation. Introduction to the basic building blocks of a compiler: syntax scanning, expression translation, symbol table manipulation, code generation, local optimization, and storage allocation. Prerequisite: A "C" or better grade in both Comp Sci 3500 and Comp Sci 2500.

COMP SCI 5600 Computer Networks (LEC 3.0)

This course focuses on the Internet and the general principles of computer networking. It covers the TCP/IP model from the application layer to the link layer in a top-down approach. It also exposes students to multimedia networking, network security, wireless and mobile networks. It is a networking class targeted for entry-level graduate students. This course has additional requirements beyond CS4600 on network performance modeling and analysis, development and implementation of complex communication protocols. Credit will not be given if previously have taken CS4600 or CpE 4410/5410. Prerequisite: A "C" or better grade in Comp Sci 3800.

COMP SCI 5601 Security Operations & Program Management (LEC 3.0)

An overview of information security operations, access control, risk management, systems and application life cycle management, physical security, business continuity planning, telecommunications security, disaster recovery, software piracy, investigations, ethics and more. There will be extensive reporting, planning and policy writing. Prerequisite: A "C" or better grade in all of: operating systems, computer networking, and a writing emphasized course.

COMP SCI 5700 Bioinformatics (LEC 3.0)

The course will familiarize students with the application of computational methods to biology, as viewed from both perspectives. It will introduce problems in molecular, structural, morphological, and biodiversity informatics, and will discuss principles, algorithms, and software to address them. Prerequisites: A grade of "C" or better in both one of Bio Sci 1113 or Bio Sci 1213 and one of Comp Sci 1570 and Comp Sci 1580 or Comp Sci 1971 and Comp Sci 1981. (Co-listed with Bio Sci 5323).

COMP SCI 5800 Distributed Computing (LEC 3.0)

This is an introduction to the fundamentals of distributed computing. Topics include a review of communication between distributed processes, causality, distributed state maintenance, failure detection, reconfiguration and recovery, distributed mutual exclusion, clock synchronization, and leader election. Students will implement select course concepts. Prerequisites: A grade of "C" or better in both Comp Sci 3800 and Comp Sci 2500.

COMP SCI 5801 The Structure Of Operating Systems (LEC 3.0)

The hardware and software requirements for operating systems for uniprogramming, multiprogramming, multiprocessing, time sharing, real time and virtual systems. The concepts of supervisors, interrupt handlers, input/output control systems, and memory mapping are discussed in detail. Prerequisite: A "C" or better grade in Comp Sci 3800.

COMP SCI 5802 Introduction to Parallel Programming and Algorithms (LEC 3.0)

Parallel and pipelined algorithms, architectures, network topologies, message passing, process scheduling and synchronization. Parallel programming on clusters. Cost, speedup and efficiency analysis. Prerequisite: A "C" or better grade in both Comp Sci 3800 and Comp Sci 2500.

COMP SCI 5803 Introduction to High Performance Computer Architecture (LEC 3.0)

Overviews high performance architecture of computing systems and covers various architectural/hardware and software/algorithmic means that enhance performance. Uniprocessor and concurrent systems are investigated. Various computational models are studied and linked to commercial systems. Prerequisite: A "C" or better grade in both Comp Eng 3150 and Comp Sci 2500.