Computer Science (COSC)

COSC 115. Introduction to Web Authoring. 3 Hours.

An introduction to creating websites with a focus on client-side technologies. HTML, CSS, JavaScript, responsive layouts, and content management systems. No programming background is required.


COSC 150. Scientific Investigations Using Computation (with lab). 4 Hours.

With improved computational abilities and the explosion of the amount of scientific data, practicing scientists now routinely implement computation to test hypotheses and guide their research. Thus, joining theory and experiment, computation is the third major paradigm of science. Students in this course will explore important science concepts and using computation tools implement the scientific method to gain a better understanding of the natural world.


COSC 201. Modeling & Simulation. 3 Hours.

An introduction to modeling and simulation as part of the interdisciplinary field of computational science. Large, open-ended scientific problems often require the algorithms and techniques of discrete and continuous computational modeling and Monte Carlo simulation. Students learn fundamental concepts and implementation of algorithms in various scientific programming environments. Throughout, applications in the sciences are emphasized. Cross-listed with MATH 201.

Prerequisite: MATH 181 with a minimum grade of D.


COSC 235. Programming & Problem Solving. 3 Hours.

An introduction to computer programming and algorithmic thinking. Students learn how to solve computational problems and implement their solutions in a programming language. Completion of this course with a C or higher is a prerequisite for all 300- and 400- level courses in Computer Science.


COSC 240. Discrete Structures. 3 Hours.

A study of concepts foundational to computer science: sets, logic, the nature of proof, functions, algorithms, relations, lattices, and graphs.

Prerequisite: COSC 235 with a minimum grade of D and (MATH 140 with a minimum grade of D or MATH 160 with a minimum grade of D or MATH 181 with a minimum grade of D).


COSC 270. Independent Study in Computer Science. 1 to 3 Hours.

Independent study of selected topics in Computer Science at an intermediate level. It is intended for students who do not plan to major in Computer Science as well as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 273. Computer Organization & Architecture. 3 Hours.

An introduction to computer organization and principles of computer design. Topics include digital logic and digital systems, machine level representation of data, instruction sets, CPU implementation, memory system organization, I/O and communication, and assembly language programming.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 275. Introduction to Bioinformatics. 3 Hours.

An introduction to the basic computational methods used to analyze biological data with an emphasis on algorithms used in genomics. Other topics may include methods for storage, retrieval, analysis, and display of biological data.

Prerequisite: BIO 212 with a minimum grade of D and COSC 235 with a minimum grade of D.


COSC 280. Selected Topics in Computer Science. 1 to 4 Hours.

A course in the study of selected topics in Computer Science at an intermediate level. It is intended for students who do not plan to major in Computer Science as well as for those who do. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 285. Selected Topics COSC. 3 Hours.


COSC 310. Computer Graphics. 3 Hours.

An introduction to 2D and 3D computer graphics. Topics include graphics hardware, vectors and matrices, projection, transformations, 3D viewing, polygonal meshes, color, lighting, shading, texture, and animation. Emphasis is placed on interactive graphics.

Prerequisite: COSC 235 with a minimum grade of C and MATH 181 with a minimum grade of D.


COSC 315. Computer Networks. 3 Hours.

An introduction to computer networks including network architecture, communication protocols, algorithms, and network applications.

Prerequisite: COSC 350 with a minimum grade of D.


COSC 320. Programming Languages. 3 Hours.

A study of the concepts underlying high-level programming languages. Topics include variable binding, higher-order functions, closures, recursion, dynamic versus static typing, abstract types, and inheritance. A variety of programming language paradigms (procedural, functional, logical, object-oriented) are used to illustrate these concepts.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 330. Databases. 3 Hours.

An introduction to database systems. Emphasis is placed on relational database modeling, integrity constraints, and query languages, with a focus on practical implementation and deployment of database solutions.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 335. Web Applications. 3 Hours.

An introduction to the design and programming of web applications. Client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security.

Prerequisite: COSC 350 with a minimum grade of C.


COSC 340. Theory of Computation. 3 Hours.

A study of formal models of computation such as finite state automata, push-down automata, context-free grammars, and Turing machines, along with the corresponding elements of formal languages. Other topics include computability, complexity, and NP-completeness.

Prerequisite: (COSC 240 with a minimum grade of D or MATH 235 with a minimum grade of D) and COSC 350 with a minimum grade of C.


COSC 350. Data Structures & Algorithms. 3 Hours.

An introduction to the fundamental data types of computing (including lists, stacks, queues, priority queues, sets, maps, trees, and graphs) and ways to implement them using arrays and linked structures. An introduction to algorithm analysis.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 351. Algorithm Design & Analysis. 3 Hours.

A study of the design and analysis of algorithms for solving problems, including dynamic programming, divide-and-conquer algorithms, greedy algorithms, graph algorithms, and search algorithms. Evaluation of time-space tradeoffs.

Prerequisite: (COSC 240 with a minimum grade of D or MATH 235 with a minimum grade of D) and COSC 350 with a minimum grade of C.


COSC 360. Operating Systems. 3 Hours.

A study of fundamental concepts applicable to a variety of operating systems. Topics include processes and threads, process coordination and synchronization, scheduling, interrupts, physical and virtual memory, device management, file systems, security and protection, communications, and networking.

Prerequisite: COSC 273 with a minimum grade of C and COSC 350 with a minimum grade of C.


COSC 365. High Performance Computing. 3 Hours.

An introduction to the concepts, tools, languages, and algorithms for solving complex problems on massively parallel and distributed computers. Topics include advanced computer architecture, performance and optimization, and the design, analysis, and implementation of applications using parallel programming languages and tools.

Prerequisite: COSC 273 with a minimum grade of C and COSC 350 with a minimum grade of C.


COSC 375. Data Science. 3 Hours.

A hands-on introduction to the field of Data Science with real-world applications. Topics include datasets, data visualization, interactive graphics, data wrangling, ethics, applied statistics, machine learning (supervised and unsupervised), databases, and big data. Students will also learn a programming language tailored for data analytics.

Prerequisite: COSC 235 with a minimum grade of C.


COSC 410. Software Engineering. 3 Hours.

A study of software engineering through the design and implementation of a significant software system. Emphasis is placed on professional practices such as testing, version control, code quality and documentation, and team process and interaction. Senior standing required.

Prerequisite: COSC 351 with a minimum grade of D.


COSC 420. Compilers. 3 Hours.

A study in the design and construction of compilers to implement modern programming languages with a focus on procedural and object-oriented programming languages. Topics include scanning, parsing, semantic analysis, code generation, and optimization.

Prerequisite: COSC 273 with a minimum grade of C and COSC 340 with a minimum grade of D and COSC 350 with a minimum grade of C.


COSC 435. Cryptology. 3 Hours.

An introduction to cryptology and modern applications. Students will study various historical and modern ciphers and implement select schemes using mathematical software. Cross-listed with MATH 435.

Prerequisite: MATH 220 with a minimum grade of D and (COSC 240 with a minimum grade of D or MATH 235 with a minimum grade of D or MATH 260 with a minimum grade of D).


COSC 440. Artificial Intelligence. 3 Hours.

Introduction to areas of artificial intelligence: intelligent agents, problem solving and search, planning, knowledge-based systems and inference, and learning.

Prerequisite: COSC 350 with a minimum grade of D.


COSC 460. Computer & Network Security. 3 Hours.

An introduction to computer security fundamentals: confidentiality, integrity, availability, authentication, and access control. Ethical hacking. Secret key and public key cryptography, network security protocols, and malware.

Prerequisite: COSC 350 with a minimum grade of D.


COSC 470. Advanced Independent Study in Computer Science. 1 to 4 Hours.

Independent study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.


COSC 480. Advanced Topics in Computer Science. 1 to 4 Hours.

A study of selected topics in Computer Science at an advanced level. Specific topics vary from semester to semester. Permission of the instructor required.