May 25, 2024  
2020-2021 Undergraduate Catalog 
    
2020-2021 Undergraduate Catalog [ARCHIVED CATALOG]

Course Descriptions


General Education Designations

Registration Notes

Academic Disciplines Chart

CLICK HERE 

 

CLICK HERE 

 

 2020-2021 Academic Discilines  

 

(COSC) Computer Science (266)

  
  • COSC 100 - Introduction to Computers and Computing

    3 Credit Hours
    Basic concepts of computer programming and software systems. Concepts of algorithms and problem solving. The interdisciplinary science of computing.

    Satisfies General Education Requirement: (QR)
    Credit Restriction: May not be applied toward the computer science major.
  
  • COSC 101 - Introduction to Programming

    3 Credit Hours
    An introduction to computational thinking and structured programming. Topics include problem solving and algorithm development with emphasis on conditional if/else statements, loop based iteration, and function calls. Students will also be given an overview of commonly used data structures such as arrays. Skills learned include designing a program to solving a problem, developing the algorithms needed, writing code to implement them, testing the code and correcting errors, as well as documenting how the code works.

    Credit Restriction: May not be applied toward the computer science major.
  
  • COSC 102 - Introduction to Computer Science

    4 Credit Hours
    Problem solving and algorithm development. Organization and characteristics of modern digital computers with emphasis on software engineering, building abstractions with procedures and data, and programming in a modern computer language.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    Grading Restriction: Letter grade only.
    Credit Restriction: Students who have received credit for COSC 130  or COSC 140  may not receive subsequent credit for COSC 102.
    (RE) Corequisite(s): MATH 132 * or MATH 141 * or MATH 147 *.
    Recommended Background: COSC 101  or equivalent.
  
  • COSC 111 - Computational Thinking and the Art of Programming

    3 Credit Hours
    An introduction to the thought processes of computer science and the art of programming. Topics include learning to think algorithmically, and solve problems efficiently, using a high-level programming language and a variety of software tools and technologies. Skills learned include designing programs to solve problems, developing the algorithms needed, using abstractions, data structures and encapsulation, writing code to implement algorithms, testing the code for errors, and documenting the process and the outcome. This course welcomes students with limited or no programming experience.

  
  • COSC 130 - Computer Organization

    4 Credit Hours
    Number systems, Boolean algebra, combinational and sequential circuits, registers, processor functional units and control, pipelining, memory and caching, stored program computing, memory management, computer system organization, and assembly language programming.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    Grading Restriction: Letter grade only.
    (RE) Prerequisite(s): COSC 102  with a grade of C or better.
  
  • COSC 140 - Data Structures and Algorithms I

    4 Credit Hours
    Advanced problem solving and algorithm development, programming, data structures and applications, I/O techniques, lists, queues, stacks, hash tables, algorithms, files.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    (RE) Prerequisite(s): COSC 130  with a grade of C or better.
  
  • COSC 291 - Lower-Division Special Topics

    1-3 Credit Hours
    Topics vary. Programming languages, operating systems, and application software packages.

    Repeatability: May be repeated. Maximum 9 hours.
  
  • COSC 302 - Data Structures and Algorithms II

    4 Credit Hours
    Design, analysis, and implementation of fundamental algorithms and data structures, including trees and graphs.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    (RE) Prerequisite(s): COSC 140  with a grade of C or better.
  
  • COSC 307 - Honors: Data Structures and Algorithms II

    4 Credit Hours
    Same as COSC 302  with additional honors project.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    (RE) Prerequisite(s): COSC 140  with a grade of C or better.
  
  • COSC 311 - Discrete Structures

    3 Credit Hours
    Sets, functions, relations, equivalence relations, partial orderings and proof techniques, especially mathematical induction. Application of proof techniques to prove correctness of algorithms. Introduction to basic counting and combinatorics.

    (RE) Prerequisite(s): COSC 140  with a grade of C or better, and either MATH 142 * or MATH 148 * with a grade of C or better.
  
  • COSC 312 - Algorithm Analysis and Automata

    3 Credit Hours
    Counting and combinatorics, with applications to the analysis of algorithms. Introduction to finite automata and regular languages, and to pushdown automata and context free grammars.

    (RE) Prerequisite(s): COSC 311  or COSC 317  with a grade of C or better.
  
  • COSC 317 - Honors: Discrete Structures

    3 Credit Hours
    Same as COSC 311  with additional honors project.

    (RE) Prerequisite(s): COSC 140  with a grade of C or better, and either MATH 142 * or MATH 148 * with a grade of C or better.
  
  • COSC 340 - Software Engineering

    3 Credit Hours
    Introduction to software processes that can be used on large projects to help design, manage, maintain, and test software.

    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 360 - Systems Programming

    4 Credit Hours
    In-depth introduction to C and its use in system programming. Introduction to memory and process layout, system calls, buffering, file I/O, file systems, directories, metadata, assembly code, stack frames, memory management, process management, and interprocess communication.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 361 - Operating Systems

    3 Credit Hours
    Threads, operating system structure, process management, scheduling, synchronization, deadlock, memory management, virtual memory and demand paging, file system management and implementation, mass storage structure, protection, security, and distributed systems.

    (RE) Prerequisite(s): COSC 360  or COSC 367  with a grade of C or better.
  
  • COSC 365 - Programming Languages and Systems

    3 Credit Hours
    Language paradigms (procedural, functional, object-oriented, logic), language design and implementation issues, and language issues related to parallelism.

    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 366 - Introduction to Cybersecurity

    3 Credit Hours
    A broad introduction to cybersecurity concepts. The class will introduce basic topics core to understanding computer security including security goals, threat modeling, software security, operating system security, cryptography, network security, and human factors. Coursework focuses on helping students adapt a security aware mindset when designing, developing, and testing systems.

    Credit Restriction: Cannot receive credit for both ECE 461 and COSC 366.
    (RE) Prerequisite(s): COSC 360  or COSC 367  with a grade of C or better.
  
  • COSC 367 - Honors: Systems Programming

    4 Credit Hours
    Same as COSC 360  with additional honors project.

    Contact Hour Distribution: 3 hours lecture and 1 lab.
    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 370 - Introduction to Scientific Computing

    3 Credit Hours
    The design, analysis, and implementation of numerical algorithms for solving problems in science and engineering. Emphasis on program design, including data structures, computational complexity, scientific computing environments, and high-performance software packages.

    Credit Restriction: Students may not receive credit for both COSC 370 and MATH 371 .
    (RE) Prerequisite(s): COSC 140  with a grade of C or better, and MATH 251  or MATH 257  with a grade of C or better.
  
  • COSC 377 - Honors: Introduction to Scientific Computing

    3 Credit Hours
    Same as COSC 370  with additional honors project.

    Credit Restriction: Students may not receive credit for both COSC 377 and MATH 371 .
    (RE) Prerequisite(s): COSC 140  with a grade of C or better, and MATH 251  or MATH 257  with a grade of C or better.
  
  • COSC 395 - Junior Seminar

    1 Credit Hours
    Presentations and discussions related to professional development, including registration, ethics, and current topics in computer science.

    Grading Restriction: Satisfactory/No Credit grading only.
    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 401 - Senior Design Theory

    2 Credit Hours
    A design course that focuses the student’s attention on professional practice, ethics, accumulated background of curricular components, and recent developments in the field. The focus is on teaching both the design process and design principles that allow students to utilize all of the above elements to effectively create designs for major design projects.

    (RE) Prerequisite(s): COSC 360  or COSC 367  with a grade of C or better.
  
  • COSC 402 - Senior Design Practicum

    3 Credit Hours
    A project-oriented course that requires teams of students to design a major project that incorporates the principles taught in COSC 401 . The design emphasis is directed to topics within the field of computer science.

    Satisfies General Education Requirement: (WC) (OC)
    (RE) Prerequisite(s): COSC 401  with a grade of C or better; and ENGL 102 *, ENGL 132 *, ENGL 290 *, or ENGL 298 * with a grade of C or better.
  
  • COSC 411 - Senior Thesis I

    3 Credit Hours
    Frontiers of computer science technology and research. Students write a senior thesis. Writing-emphasis course.

    Registration Restriction(s): Minimum student level – senior.
  
  • COSC 420 - Biologically-Inspired Computation

    3 Credit Hours
    Recent developments in computational methods inspired by nature, such as neural networks, genetic algorithms, evolutionary programming, ant-swarm optimization, artificial immune systems, swarm intelligence, cellular automata, multi-agent systems, cooperation, and competition.

    Recommended Background: Completion of core courses.
  
  • COSC 421 - Computational Cognitive Neuroscience

    3 Credit Hours
    Survey of computational cognitive neuroscience. The focus is on the neuroscience of cognitive processes, including perception, categorization, memory, language, action, and executive control. Course work makes use of computer simulations of neural networks to model cognitive processes and to test hypotheses about their neural implementations.

    Credit Restriction: Students cannot receive credit for both COSC 421 and COSC 521.
    Recommended Background: Senior standing.
  
  • COSC 425 - Introduction to Machine Learning

    3 Credit Hours
    Machine learning is concerned with computer programs that automatically improve their performance through experience. This course covers the theory and practice of machine learning from a variety of perspectives. We cover topics such as clustering, decision trees, neural network learning, statistical learning methods, Bayesian learning methods, dimension reduction, kernel methods, and reinforcement learning. Programming assignments include implementation and hands-on experiments with various learning algorithms.

    (RE) Prerequisite(s): ECE 313  or ECE 317  or MATH 323  with a grade of C or better; and MATH 251  or MATH 257  with a grade of C or better.
    Comment(s): Prior knowledge may satisfy prerequisite with consent of instructor.
  
  • COSC 427 - Honors: Biologically-Inspired Computation

    3 Credit Hours
    Same as COSC 420  with additional honors project.

    Recommended Background: Completion of core courses.
  
  • COSC 434 - Network Security

    3 Credit Hours
    In-depth introduction to core Internet and wireless technologies, related security concerns, common security vulnerabilities, and good security practices. Hands-on experience exploiting network protocols and communications, and setting up secure network connections.

    (RE) Prerequisite(s): COSC 366  with a grade of C or better, and ECE 453  with a grade of C or better.
  
  • COSC 440 - Formal Foundations of Software Engineering

    4 Credit Hours
    Principles of analysis and design of information systems. Principles of program design and verification, formal objects, formal specifications.

    (RE) Prerequisite(s): COSC 311  or COSC 317  with a grade of C or better.
  
  • COSC 445 - Fundamentals of Digital Archeology

    3 Credit Hours
    This is an advanced topic course focused on developing multi-disciplinary skills of discovering, retrieving, analyzing, and presenting operational data. Students will use critical thinking and intense practice solving real-world problems to recognize and address key operational issues: the lack of context, missing observations, and incorrect values. At the end of the course students will be able to discover operational data, to retrieve and store it, to recover context, to estimate the impact of missing events, to identify unreliable or incorrect values, and to present the results.

    Recommended Background: COSC 340 , COSC 370 , ECE 313 .
  
  • COSC 452 - Computer Graphics

    3 Credit Hours
    Digital image synthesis, geometric modeling, and animation. Topics may include visual perception, displays and color spaces, frame buffers, affine transformations, data structures for geometric primitives, visible surface determination, shading and texturing, anti-aliasing computing light transport, rendering equation, shader programming, general purpose GPU programming, level of detail, curves and surfaces, and graphics hardware.

    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
    Comment(s): Prior knowledge may satisfy prerequisite with consent of instructor.
  
  • COSC 453 - Data Visualization

    3 Credit Hours
    The goal of this course is to develop a broad understanding of the principles, methods, and techniques for designing effective data visualizations. The course will span a wide range of topics related to interactive data visualization. The course will teach key elements of scientific visualization techniques, which graphically encode data with some physical or geometric correspondence, and information visualization techniques, which focus on abstract data without such correspondences such as symbolic, tabular, networked, hierarchical, or textual information sources. The course will follow a lecture/seminar style with discussion of assigned readings, as well as viewing of videos and hands-on experience with creating visualization tools.

    (RE) Prerequisite(s): COSC 140  with a grade of C or better.
    Recommended Background: COSC 340  and COSC 452 .
  
  • COSC 461 - Compilers

    3 Credit Hours
    Lexical analysis, parsing, program representation, type systems, runtime environments, code generation, optimization techniques.

    (RE) Prerequisite(s): COSC 302  or COSC 307  with a grade of C or better.
  
  • COSC 462 - Parallel Programming

    3 Credit Hours
    Principles and practice of parallel computing; design, implementation, and evaluation of parallel programs for shared and distributed memory architectures, and vector processors. Sample topics include models of parallel computers, basic communication operations, performance and scalability of parallel systems, and programming techniques including multi-threading and message passing.

    (RE) Prerequisite(s): COSC 360  or COSC 367  with a grade of C or better.
  
  • COSC 465 - Databases and Scripting Languages

    3 Credit Hours
    Introduction to database theory, models, and query formation. Survey of scripting languages, their uses, and their interconnectivity with databases.

    (RE) Prerequisite(s): COSC 311  or COSC 317  with a grade of C or better.
  
  • COSC 466 - Software Security

    3 Credit Hours
    An in-depth introduction to software security. The focus is on identifying vulnerabilities in software, exploiting vulnerabilities in software, and software development best practices for avoiding vulnerabilities during the design, implementation, testing, and deployment of software. Coursework involves hands on experience exploiting software vulnerabilities to increase understanding, awareness, and appreciation of software vulnerabilities.

    Credit Restriction: Students cannot receive credit for both COSC 466 and COSC 566 (see graduate catalog for course description).
    (RE) Prerequisite(s): COSC 366  with a grade of C or better.
  
  • COSC 469 - Human Factors in Cybersecurity

    3 Credit Hours
    A broad introduction to human-computer interaction (HCI) and its impact on the theory and practice of cybersecurity. Topics include the research methods in HCI, ethics, authentication, usable secure communication, phishing, usable cryptographic libraries, inclusivity/diversity in system design, and human-aware policy creation. Coursework focuses on helping students adapt a human-aware mindset regarding the design, implementation, and use of cybersecurity tools and principles.

    Credit Restriction: Students cannot receive credit for both COSC 469 and COSC 569 (see graduate catalog for course description).
    (RE) Prerequisite(s): COSC 366  with a grade of C or better.
  
  • COSC 471 - Numerical Analysis

    3 Credit Hours
    (See MATH 471 .)
  
  • COSC 472 - Numerical Algebra

    3 Credit Hours
    (See MATH 472 .)
  
  • COSC 482 - Theory of Computation

    3 Credit Hours
    Properties of finite automata/regular sets and push-down automata/context-free languages. Countability, diagonalization, and undecidability. Complexity, including the classes P and NP, NP-completeness, and reduction techniques.

    (RE) Prerequisite(s): COSC 312  with a grade of C or better.
  
  • COSC 483 - Applied Cryptography

    3 Credit Hours
    In-depth introduction to the underlying mathematics, computational methodologies, associated theoretical considerations, applications, and practical cryptographic techniques.

    (RE) Prerequisite(s): COSC 311  or COSC 317  with a grade of C or better, and MATH 251  with a grade of C or better.
  
  • COSC 493 - Independent Study

    1-3 Credit Hours
    Special project in area of student’s primary interest. Directed by computer science faculty, perhaps jointly with student’s faculty advisor. Intended for students with a specific project to pursue in conjunction with a faculty member. Project may be from a department other than computer science, in which case a faculty member from the appropriate department will help oversee the project.

    Repeatability: May be repeated. Maximum 45 hours.
    Credit Restriction: Maximum of 6 hours may be applied toward the major.
    Registration Permission: Consent of instructor.
  
  • COSC 494 - Special Topics in Computer Science

    1-3 Credit Hours
    Repeatability: May be repeated. Maximum 9 hours.