Computer Science (COSC)
COSC 101. Introduction to Computers. 3 Hours.
An introduction to the uses of computers in a variety of application areas.
COSC 115. Introduction to Web Authoring. 3 Hours.
An introduction to effective communications using Web technologies. No programming background is required. This course focuses on the technologies and tools, including HTML, CSS, and JavaScript, that facilitate the construction of interesting and effective Web sites.
COSC 150. Scientific Investigations Using Computation. 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.
Students learn to develop programs using an object-oriented language. Students are introduced to problem solving and algorithm development with emphasis on good programming style. Completion of this course with a C or higher is a prerequisite for all 300- and 400- level courses in Computer Science.
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 computer graphics. Particular emphasis is placed on the algorithms used to produce 2D and 3D graphics with a computer. Topics include graphics devices, polygons, drawing tools, vectors, transformations, 3D viewing, polygonal meshes, lighting, and shading models.
Prerequisite: MATH 181 with a minimum grade of D and COSC 235 with a minimum grade of C.
COSC 315. Computer Networks. 3 Hours.
An introduction to computer networks including network architecture, communication protocols, algorithms, and the current state of technology used to implement computer networks.
Prerequisite: COSC 273 with a minimum grade of C and COSC 235 with a minimum grade of C.
COSC 320. Programming Languages. 3 Hours.
A comparative study of high-level programming languages, including study of the
design, evaluation, and implementation of such languages. Emphasis is placed on the ways in which such languages deal with the fundamentals of programming.
Prerequisite: (COSC 235 with a minimum grade of C and COSC 273 with a minimum grade of C) or COSC 350 with a minimum grade of C.
COSC 330. Introduction to Databases. 3 Hours.
A study of data models, including relational, object-oriented, hierarchical, and
network models. Topics include the theory of normal forms, database design, query
languages, and implementation of databases.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 335. Web Application Development. 3 Hours.
A study of the design and programming of web applications. Topics include client-side scripting, website organization, responsive web design, server-side scripting, content management systems, web application frameworks, and security.
Prerequisite: COSC 330 with a minimum grade of C or 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, and Turing machines, along with the corresponding elements of formal
languages. These models are used to provide a mathematical basis for the study of
computability and to provide an introduction to the formal theory behind compiler
construction.
Prerequisite: COSC 350 with a minimum grade of C and MATH 181 with a minimum grade of D and MATH 235 with a minimum grade of D.
COSC 350. Data Structures & Algorithms. 3 Hours.
An introduction to the formal study of data structures, such as arrays, stacks, queues, lists, and trees, along with algorithm design and analysis of efficiency.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 351. Advanced Data Structures. 3 Hours.
Advanced data structures, advanced object-oriented programming concepts, and
advanced program design principles.
Prerequisite: 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 that are applicable to a variety of operating systems. Such concepts include processes and threads, process coordination and synchronization, scheduling, physical and virtual memory organization, device management, file systems, security and protection, communications and networking.
Prerequisite: 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 problems on massively parallel and distributed computers. Advanced computer architectures; performance and optimization; and the design, analysis, and implementation of applications in parallel are studied.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 370. Computational Science: Data and Visualization. 3 Hours.
An introduction to data and visualization, part of the interdisciplinary field of computational science. The course contains a brief introduction to the network environment and the UNIX operating system. Because large Web-accessible databases are becoming prevalent for storing scientific information, the course covers the concepts and development of distributed relational databases. Effective visualization of data helps scientists extract information and communicate results. Students will learn fundamental concepts, tools, and algorithms of computer graphics and scientific visualization in three dimensions. Throughout, applications in the sciences are emphasized.
Prerequisite: COSC 235 with a minimum grade of C.
COSC 410. Software Engineering. 3 Hours.
A study of software engineering through a project-oriented approach. The emphasis is on the specification, organization, implementation, testing, and documentation of software. Students work in groups on various software projects.
Prerequisite: COSC 350 with a minimum grade of C.
COSC 420. Compilers. 3 Hours.
This course explores the design and construction of compilers to implement modern programming languages with a focus on procedural and object-oriented programming languages. Students implement a compiler for a small object-oriented programming language. Topics include scanning, parsing, semantic analysis, and code generation as well as garbage collection and optimization.
Prerequisite: COSC 350 with a minimum grade of C and COSC 273 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 (MATH 235 with a minimum grade of D or MATH 260 with a minimum grade of D).
COSC 440. Artificial Intelligence. 3 Hours.
This course provides both an overview of the underlying theory, principles, and techniques in artificial intelligence and an in-depth examination of one or more specific topics in artificial intelligence such as approaches to AI, symbolic programming, heuristic search, neural networks, or robotics.
Prerequisite: COSC 350 with a minimum grade of D.
COSC 460. Computer & Network Security. 3 Hours.
An introduction to computer security in a networked environment. Topics will include ethical and social issues; type of attacks on computers and defenses; physical security and systems administration; authentication, access controls, and biometrics; encryption and network security; and the underlying formalisms and technologies relating to security.
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.