Computer Science Course Description

1336 Computer Algorithms with Engineering Applications

Prerequisite(s): EGR 1301 and CSI 1430 or consent of instructor.

Development of algorithms used in text and image processing, numerical methods, and algebra. Topics will include data structures and object-oriented programming techniques.

1337 Introduction to Video Game Design

**New course starting Fall 2016**

This course will introduce students to the theory and application of video game design. Students will work in teams to create video games in a game development engine. The students will also learn theory behind good game design, including the use of game rules to enhance gameplay, the creation of virtual worlds, and the use of games as a social experience. No prior programming experience is required.

1430 Introduction to Computer Science I with Laboratory

Introduction to computers, problem solving and algorithm development. Design, code, debug and document programs using techniques of good programming style and C++ programming language. Laboratory experiments and examples will be used to illustrate and reinforce concepts taught in the lectures.

1440 Introduction to Computer Science II with Laboratory

Prerequisite(s): CSI 1430.

Continuation of CSI 1430. Introduction to basic aspects of arrays, pointers, classes, inheritance, polymorphism, virtual functions, linked lists, stacks, queues, and binary trees.

2334 Introduction to Computer Systems

Prerequisite(s): Minimum grade of B in CSI 1440, and credit or concurrent enrollment in CSI 2350.

An introduction to the structure of computer systems and the relationship between software and hardware. Topics include computer organization and representation of information in a computer. An assembly language will be used for programming assignments to illustrate the relationship between high-level languages and machine operations and interpretation of software.

2350 Discrete Structures

Prerequisite(s): CSI 1430 or concurrent enrollment and mathematical preparation sufficient to take calculus at the college level.

An introduction to the foundations of discrete structures as they apply to computer science, focusing on providing a solid theoretical foundation for further work. Topics include sets, ordered structures, graph and trees, functions, proof techniques, number systems, logic, Boolean algebra, etc.

3101 Computers in Society

Prerequisite(s): Upper-level standing.

Study of computer ethics, risks, privacy, ownership of software, responsibility and liability, computer crime, and professional codes of conduct as they relate to society.

3303 Information Technology and Internet Use for Research

Use of the Internet, CD-ROM databases, and other electronic and traditional resources for finding and evaluating information. Topics covered will include a history of information processing, the hardware and software systems required, social and ethical issues, and information search strategies (not applicable to a major in computer science).

3324 Numerical Methods (Cross-listed as MTH 3324)

Prerequisite(s): CSI 1430 and MTH 1321.

Numerical differentiation and integration, linear systems of equations, numerical solutions of ordinary differential equations, curve fitting, and computational techniques.

3331 Survey of Programming Languages

Prerequisite(s): CSI 3334.

An introduction to the syntax and semantics of programming languages. Actual programming languages are used to illustrate the concepts and virtual architectures of procedural, functional, and object-oriented languages.

3333 Simulation Models

Prerequisite(s): CSI 1430 and MTH 1321.

Introduction to simulation and comparison with other techniques. Simulation methodology including generation of random numbers, design of simulation experiments for optimization, analysis of data generated by simulation experiments, and validation of simulation models and results.

3334 Data Structures

Prerequisite(s): CSI 1440.

Software design and construction with abstract data types. Description, performance and use of commonly-used algorithms and data structures including lists, trees, and graphs.

3335 Introduction to Database

Prerequisite(s): CSI 3334.

Current relational database design concepts including ER diagrams and normalization. Database access techniques such as SQL and JDBC. Database issues including performance and security. Web-database applications.

3336 Systems Programming

Prerequisite(s): CSI 2334.

The organization and structure of computer systems, basic concepts of an operating system, command line interpreter, script programming, and system calls. Programming projects in UNIX and C programming language.

3338 Computer Organization (Cross-listed as ELC 3338)

3342 Principles of Software Design

Prerequisite(s): CSI 3335.

An introduction to object-oriented analysis and design: Iterative development; identification of requirements; the software development process; UML notation, models, and methods; introduction to design patterns; and software project using an object-oriented language.

3344 Introduction to Algorithms

Prerequisite(s): CSI 3334.

This course will provide a comprehensive introduction to computer algorithms taken from diverse areas of application. It will concentrate on algorithms of fundamental importance and on analyzing the efficiency of these algorithms.

3372 Software Engineering II

Prerequisite(s): CSI 3471.

Analysis, Design, and Project Management. Applying a development design process to produce high quality software. Topics include: identifying user requirements; performing problem analysis to produce process oriented documentation; using UML notation to create design models and diagrams; investigating and applying design patterns; project management; configuration management. Completing software project applying development process using an object-oriented language.

3373 Software Quality Assurance and Testing

Prerequisite(s): CSI 3471.

Quality, how to assure it and how to verify that it exists; the need for a culture of quality; how to avoid errors; inspections and reviews; verification versus validation; testing, verification, and validation techniques; process assurance and product assurance; quality process standards; faults; problem analysis and reporting, and statistical approaches to quality control.

3374 Software Project Management

Prerequisite(s): CSI 3471.

Project planning, cost estimation, and scheduling; project management tools; factors influencing productivity and success; productivity metrics; analysis of options and risks; planning for change; management of expectations; release and configuration management; software process standards and process implementation; and software contracts and intellectual property.

3V95 Summer Intern Experience

Prerequisite(s): Computer Science major; consent of instructor

Department arranged/approved summer intern work experience in computer science-related position. Includes a minimum of eight weeks of employment.

3439 Computer Architecture

Prerequisite(s): CSI 2334.

Continued study of computer organization, focusing on hardware structure and implementation. Topics include digital logic CPU organization and microprogramming, memory organization, and input/output structures.

3471 Software Engineering I

Prerequisite(s): CSI 3334.

Introduction to UML notation; constructing and interpreting use cases; interpreting UML models; introduction to design patterns; introduction to testing; introduction to configuration management; Java as a second language; and implementing a graphical user interface. Laboratory assignments and a small project illustrate and extend concepts from lectures.

4301 Cultural Impact of the Computer

Prerequisite(s): Junior standing or above at Baylor.

Issues related to the creation and use of computer technology, considered within the broader context of technology and culture. Includes all topics from CSI 3101 as a subset.

4321 Data Communications

Prerequisite(s): CSI 3336.

Fundamentals of computer networking including data transmission, communication software, protocols, simple networks and internetworking.

4322 Numerical Analysis (Cross-listed as MTH 4322)

4328 Numerical Linear Algebra (Cross-listed as MTH 4328)

4330 Foundations of Computing

Prerequisite(s): CSI 3344.

Theoretical concepts that form the basis of computer science, including regular languages, context-free languages. Turing-decidable languages, nondeterminism, parsing, NP_Completeness, and undecidability.

4331 Programming Language Design and Implementation

Prerequisite(s): CSI 4330.

Design and implementation of high-level languages, focusing on compiler design and implementation. Topics include data types, control structures, and the relationship between syntax and semantics. Course project includes designing and programming a compiler.

4335 Database Design I

Prerequisite(s): CSI 3342.

Concepts for current relational database design and implementation, including SQL, ER diagrams, normalization, JDBC, XML, and DBMS components. Semester project designing a relational database.

4336 Introduction to Computation Theory

Prerequisite(s): CSI 3344.

Several models of computation and their related languages. Topics will include finite automata and regular languages, push-down automata and context-free languages, linear-bounded automata and context-sensitive languages. Turing machines and phrase structure languages, closure properties, decidability results, non- determinism.

4337 Introduction to Operating Systems

Prerequisite(s): CSI 3336 and 3439.

Operating system design and implementation. Topics include process control and synchronization, memory management, processor scheduling, file systems, and security. Course projects implement parts of an operating system.

4341 Computer Graphics

Prerequisite(s): CSI 3334 and 3336.

Introduction to graphic representation and display of information and objects by computer. Topics include hardware display technology and algorithms for two-dimensional and three-dimensional graphics. The Graphical Kernel System (GKS) will be the graphic system model used for programming assignments.

4342 Gaming Platform Frameworks

Prerequisite(s): CSI 4341.

Game Framework Design and Development. An introduction to game development platforms. Topics include: Game design principles, project management, game-related algorithms/mathematics, game physics, game audio/video, AI, development tools, amd real-time systems.

4344 Object-Oriented Development

Prerequisite(s): CSI 3342.

Object-oriented analysis and design models. Group software projects.

4350 Introduction to Artificial Intelligence

Prerequisite(s): CSI 3344.

Artificial intelligence techniques and methodology which treat knowledge and knowledge representation, formal logic, (classical propositional logic, first order predicate logic, automated theorem proving), pattern recognition; natural and programming language processing, (syntax, contextual constraints, semantics, compilers, LISP, PROLOG).

4352 Principles of Data Mining

Prerequisite(s): CSI 3335 and MTH 3381.

The seven fundamental domains of data mining-classification, descriptive mining, exploratory data analysis, model building, pattern detection, predictive modeling, and retrieval by content, are defined and explored using the most vigorous algorithms applicable to each domain.

43C8 Gaming Capstone Design Project

Prerequisite(s): Senior standing and CSI 3372, 4321, 4337, and 4342.

A semester-long project course in which students will create a gaming system. The project requires applying information technology according to established design management practices, including technical presentations (oral and written) by all students.

43C9 Capstone Design Project

Prerequisite(s): Senior standing and CSI 3335, 3372, 4321, and 4337.

A semester-long project course in which students will create a computing system. The project requires applying information technology according to established design management practices, including technical presentations (oral and written) by all students.

4V96 Special Topics in Computer Science 1 to 9 sem.hrs.

Prerequisite(s): Consent of department chair.