|
2020-2021 Undergraduate Catalog [ARCHIVED CATALOG]
Course Descriptions
|
|
|
|
(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.
|
|
|
|