Computer Science (CS)


CS 118  Fundamentals of Computer Programming  3 Credits (3,0)

Introduction to basic concepts of structured programming with applications in business, technology, and engineering. This course is intended for the student with little or no experience in programming.

CS 120  Introduction to Computing in Aviation  3 Credits (3,0)

This course provides an introduction to computer organization and applications, with an emphasis towards issues relating to aeronautical science and the aviation industry. Computational models are presented and related to real world architectures. Data representation and file organization are introduced. Basic network structure and behavior is presented. These topics form the building blocks of more specialized course segments focusing on the use of computers in the aviation field. Aviation specific course components include computer simulation, instrumentation, and avionics systems. Additional material discusses the impact of computers on society and business practices.

CS 120L  Introduction to Computers in Aviation Laboratory  0 Credits

Introduction to Computers in Aviation Laboratory.

CS 125  Computer Science I  4 Credits (4,0)

Introduction to problem-solving methods, algorithm development, and software engineering; software development process, program design, coding, review, testing, and documentation; and programming using a modern programming language that supports modular development. The course has a closed laboratory that includes activities dealing with the computing environment, the software development process, and programming exercises.
Corequisites: CS 125L.

CS 125L  Computer Science I Laboratory  0 Credits

Computer Science I Laboratory
Corequisites: CS 125.

CS 222  Introduction to Discrete Structures  3 Credits (3,0)

An introduction to the fundamental algebraic, logical, and combinatorial concepts of mathematics that provide a foundation for the study of computer science.Pre-requisite: Experience in programming in a high-level language, pre-Calculus mathematics.

CS 223  Scientific Programming in C  3 Credits (3,0)

This is a course in C programming for scientists and engineers. Using a problem-solving approach for developing algorithms, the algorithms are implemented in C and include the following topics: data types and related operations, input/output, control structures, functions, arrays, files, and strings.

CS 225  Computer Science II  4 Credits (3,3)

This course emphasizes program design, style, data abstraction, information hiding, and testing; advanced programming features; and introduction to object-oriented concepts, basics of algorithm analysis, exception handling, string processing, recursion, pointers, and simple data structures. The course has a closed laboratory that includes activities dealing with the computing environment, the software development process, and programming exercises.
Prerequisites: CS 223 or EGR 115 Corequisites: CS 225L.

CS 299  Special Topics in Computer Science  1-6 Credit

Individual independent or directed studies of selected topics in computer science.

CS 303  Network Security  3 Credits (3,0)

This course introduces the principles and algorithms of modern encryption and some major issues and problems of computer security. Topics covered include the notion of block ciphers and implementations such as DES and Blowfish. Modern public key encryption techniques such as the RSA algorithm. Statistical attacks on encryption including traffic monitoring. Hash functions. Digital signatures and authentication methods. An introduction to some attacks and defenses such as viruses, worms, and firewalls. This course is intended to be a required course in an Cyber Security Engineering minor or a technical elective for students majoring in Computer Science or Computer Engineering.
Prerequisites: CS 225 and MA 242 or CS 222.

CS 305  Database Systems and Data Mining  3 Credits (3,0)

Introduction to database systems and data mining. The course will cover the relevant theory of database systems, the usefulness of data mining, and the examination of current data mining efforts. Assignments, papers, and projects will reflect real-life use of data mining and provide perspective for managing data mining activities.
Prerequisites: CS 225.

CS 308  Practicum  3 Credits (3,0)

This capstone project course is individualized to each student and uses most facets of their prior instruction.

CS 315  Data Structures and Analysis of Algorithms  3 Credits (3,0)

This course emphasizes the design, implementation, and analysis of algorithms dealing with searching, sorting, graphs, trees, and disk files.
Prerequisites: CS 222 and CS 225.

CS 317  Files and Database Systems  3 Credits (3,0)

Introduction to file and database systems. The course will cover the theory of database systems, various database models, and the design of a database system. Course homework will reflect real-life problems requiring cooperation, problem formulation, and problem-solving skills. A team/group term project may be assigned.
Prerequisites: CS 225 and CS 222.

CS 332  Organization of Programming Languages  3 Credits (3,0)

A comparative study of different programming paradigms. Students program in several languages chosen to illustrate the essential features of the paradigms studied. Formal language concepts are also introduced.
Prerequisites: CS 222 and CS 225.

CS 335  Introduction to Computer Graphics  3 Credits (3,0)

Introduction to computer graphics, algorithms, graphics programming, graphics design, use of graphic packages, and applications of computer graphics to aviation, business, and scientific problems. A term project involving a graphics programming application may be assigned.
Prerequisites: MA 241.

CS 344  C Programming and UNIX  3 Credits (3,0)

This course is an advanced course in the C programming language and the UNIX programming environment and provides basic information about the general principles of operating systems. It begins with an introduction to the UNIX operating system, followed by an in-depth study of the C programming concepts and techniques in the UNIX environment. In addition, topics such as the function and structure of operating systems, process management, memory management, concurrency, UNIX system programming, and UNIX programming tools will be covered.
Prerequisites: CS 225.

CS 350  Computer Modeling and Simulation  3 Credits (3,0)

Introduction to the basic aspects of modeling and simulation. Topics include statistical models, queuing theory, random variate generation, simulation languages, object-oriented programming, graphic output with animation, design and analysis of experiments, and verification and validation of simulation models. A term project involving the simulation of an element of aviation or aerospace may be assigned. Junior standing.
Prerequisites: MA 412 or MA 222.

CS 399  Special Topics In Computer Science  1-6 Credit

Individual independent or directed studies of selected topics in computer science.

CS 420  Operating Systems  3 Credits (3,0)

Development, structure, and functions of operating systems; demand service models; development of concurrent models. Pre-Requisite: Junior standing
Prerequisites: CS 225.

CS 425  Net-Centric Computing  3 Credits (3,0)

This course introduces Computer Science students and other engineering majors to areas of software and computer science that pertain to networks and network-based computation.
Prerequisites: CS 317 and CEC 320.

CS 426  Digital Forensics  3 Credits (3,0)

Locating evidence and recovering data using low-level techniques and tools. Preservation, identification extraction, documentation, and interpretation of computer data following clear, well-defined methodologies and procedures; details of various PC and server-based partitions as well as file systems such as FAT, NTFS, HFS, Ext*, and UFS*. File system and partition data structures.

CS 427  System Exploitation and Penetration Testing  3 Credits (3,0)

Common vulnerabilities and their exploitation for disrupting a system?s integrity; common attack techniques for penetration testing; avoiding common exploits incorporated into systems during design and implementation phases.

CS 428  Applied Cryptography  3 Credits (3,0)

Fundamental concepts of cryptography for enhancing security properties of systems. Common cryptanalysis techniques and tools.

CS 429  Current Topics in Cybersecurity  3 Credits (3,0)

Examination of the most recent, often still developing issues, in the field of cybersecurity; the course content depends on current trends at the time of offering.

CS 432  Information and Computer Security  3 Credits (3,0)

The course will start with an overview of the larger context of information security, including the "softer" aspects of personnel and operational security, and then delve into the technical basis and practical difficulties of COMPUSEC itself. This course is intended to be a required course in an Cyber Security Engineering minor or a technical elective for students majoring in Computer Science or Computer Engineering.
Prerequisites: CS 420.

CS 455  Artificial Intelligence  3 Credits (3,0)

This course introduces students to the basic concepts of artificial intelligence with emphasis on knowledge engineering. Students gain experience, through individual and group exercises, in the various phases of system development: planning, requirements and specification, design, implementation, and testing. Students study and apply commercial tools to the development of knowledge-based systems in the aerospace and aviation domain.
Prerequisites: CS 222 Corequisites: CS 225 and CS 225L.

CS 490  Computer Science Capstone Design I  3 Credits (3,0)

This course is the continuation of SE 300 (Software Engineering Practices), where the students are given an opportunity to work on a term-long interdisciplinary (computer science, software engineering, and the student's area of concentration) project culminating the knowledge and expertise they have gained throughout their program of study.
Prerequisites: SE 300.

CS 491  Computer Science Capstone Design II  3 Credits (3,0)

The capstone sequence allows students an opportunity to perform in depth work that builds on the computer science foundations learned in previous courses. Students are expected to demonstrate a capability to perform the management, analysis, design, implementation, and testing tasks necessary to create a complex computational system. Project work is assessed using industrial software standards and review techniques. The senior project sequence is considered the capstone course for undergraduate students in computer science.
Prerequisites: CS 490.

CS 499  Special Topics in Computer Science  1-6 Credit

Individual independent or directed studies of selected topics in computer science.