Computer Science (CS)
Central principles and big ideas of computing: problem-solving, computational and critical thinking, abstraction, creativity, reasoning, data, algorithms, recursion, visualization, and limits of computation. Solve real-world problems with computing.
Pre-req: ACT Math with a score of 17 or SAT Verbal Before March 16 with a score of 400 or SAT MATH SECTION SCORE with a score of 440 or Placement Math After SP17 with a score of 101 or MTH 102 with a minimum grade of C or MTH 102B with a minimum grade of C or MTH 127 with a minimum grade of C or MTH 130 with a minimum grade of C or MTH 132 with a minimum grade of C or MTH 229 with a minimum grade of C or MTH 229H with a minimum grade of C.
Pre-req: ACT Math with a score of 24 or SAT Mathematics Before Mar. 16 with a score of 560 or SAT MATH SECTION SCORE with a score of 580 or MTH 127 or MTH 130 and MTH 132 (may be taken concurrently) or MTH 229 (may be taken concurrently) or MTH 229H (may be taken concurrently).
Object-oriented and algorithmic problem solving principles and techniques; programming with classes in an integrated programming environment; and program debugging.
Pre-req: ACT Math with a score of 24 or SAT Mathematics Before Mar. 16 with a score of 560 or SAT MATH SECTION SCORE with a score of 580 or MTH 127 or MTH 130 and MTH 132 (may be taken concurrently) or MTH 129 (may be taken concurrently) or MTH 129H (may be taken concurrently).
Object-oriented analysis and design, advanced programming with classes, arrays, strings, sorting, searching, I/O, GUI development, system life cycle and software development methodologies. CR/PR: CS 110
Pre-req: CS 110 with a minimum grade of D or CS 110H with a minimum grade of D.
An introduction to computer programming, software design, and algorithm analysis and implementation. Abstract concepts illustrated with examples and exercises drawn from the mathematical and physical sciences. Primarily for non-CS majors.
Pre-req: MTH 140 or MTH 229 (may be taken concurrently) or MTH 229H (may be taken concurrently).
Design and implementation of data structures including stacks, queues, lists, trees, heaps, balanced trees, and graphs. Other topics include hasing, threading, data parsing, program testing, correctness, efficiency, and exceptions.
Pre-req: CS 120 with a minimum grade of D and MTH 220 (may be taken concurrently) with a minimum grade of D.
Advanced techniques for designing and analyzing algorithms, including asymptotic analysis; data structures; divide-and-conquer algorithms and recurrences; greedy algorithms; dynamic programming; graph algorithms; randomized algorithms; and NP-complete problems.
Pre-req: CS 210 with a minimum grade of D and (MTH 229 with a minimum grade of D or MTH 229H with a minimum grade of D) and MTH 220 (may be taken concurrently) with a minimum grade of D.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
Pre-req: CS 210 with a minimum grade of D.
This course provides a broad introduction to software engineering theories, methods, and tools. Requires substantial writing. Topics include requirements engineering, analysis and design, implementation, versioning, and testing.
Pre-req: MTH 220 and CS 210 and ENG 354 (may be taken concurrently).
Pre-req: CS 305 with a minimum grade of D.
Testing techniques and validation of system requirements. Design reviews and code inspections; unit, integration, system, regression, load, stress, user acceptance, and regression testing; statistical testing; test strategies and project metrics.
Pre-req: CS 310 and MTH 345.
Modern operating systems design and implementation: multi-tasking and time sharing, concurency and synchronization, interprocess communication, resource scheduling, memory management, deadlocks, I/O, file systems, and security.
Pre-req: CS 210.
A supervised experience in which the student works for a company to gain practical experience in a students major.
Pre-req: ENGR 217 with a minimum grade of D.
Mathematical theory and practical tools and techniques for generating realistic pictures using computers. This is a project-centered course and involves extensive programming using the open GL standard.
Pre-req: CS 210 with a minimum grade of D.
Design and analyze structure of major hardware components of computers including: ALU, instruction sets, memory hierarchy, parallelism through multicore and many core, storage systems and interfaces.
Pre-req: CS 300 with a minimum grade of D.
Software design and development targeting high performance computing architectures. Multi-core and many-core systems: I/O, file systems, performance metrics. Programming models include MPI, OpenMP, MapReduce, CUDA, OpenCL.
Pre-req: CS 402.
Study of computational algorithms and programming techniques for various bioinformatics tasks including parsing DNA files, sequence alignments, tree construction, clustering, species identification, principal component analysis, correlations, and gene expression arrays.
Pre-req: CS 215.
Study of data models, data description languages, query languages including relational algebra and SQL, logical and physical database design, transactions, backup and recovery. Design and implementation of a database application.
Pre-req: CS 210 with a minimum grade of D.
The design of systems containing embedded computers. Micro-controller technology, assembly language and C programming, input/output interfacing, data acquisition hardware, interrupts, and timing. Real-time operating systems and application programming. Application examples.
Pre-req: CS 402 with a minimum grade of D or EE 340 with a minimum grade of D.
Genetic algorithms, evolutionary strategies, and genetic programming. Methods of knowledge representation using rough sets, type-1 fuzzy sets, and type-2 fuzzy sets. Neural network architectures and their learning algorithms.
Pre-req: CS 300.
Concepts and issues in physical and cyber security; technological vulnerabilities found in operating systems, database servers, web servers, internet, and local area networks; developing defensive and offensive security measures.
Pre-req: CS 320 with a minimum grade of D.
Advanced course on the functions and purposes of the latest development in cyber security techniques and tools used to create, secure, protect and remediate cyber-infrastructures from various cyber threats.
Pre-req: CS 430 with a minimum grade of D or CS 340 with a minimum grade of D.
Fundamental algorithms and computational models for core tasks in natural language processing: word and sentence tokenization, parsing, information and meaning extraction, spelling correction, text summarization, question answering, and sentiment analysis.
Pre-req: (CS 215 and MTH 220).
Tools and techniques for optimizing the design and construction of software-intensive systems by considering system issues and making engineering tradeoffs in conflicting criteria and interacting decision parameters.
Pre-req: CS 330 and CS 340 and CS 350.
An in-depth and hands-on involvement in a real-world project under direct professional supervision. The project may be on-campus or off-campus. Requires prior apporval of the internship director, who is a member of the computer science faculty.
Pre-req: CS 300 with a minimum grade of D or CS 215 with a minimum grade of D.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE.
EMERGING TOPICS IN COMPUTER SCIENCE
Application of technical and professional skills in solving a real-world problem in a team environment. Discuss professional code of conduct, societal issues, and transition from student to industry professional.
Pre-req: CS 310 with a minimum grade of D and CS 410 with a minimum grade of D.