Computer Science Course Catalog

COSC 2312 Web Programming 3(2,1)

This course is designed to provide the students with an introduction to World Wide Web programming. It introduces the student to the techniques used in programming web pages for interactive content. It specifically addresses the basic elements of AJAX (Asynchronous Javascript and XML) to design web pages that dynamically interact with databases that reside on a server. The course begins by reviewing basic web technologies i.e HTML, CSS style sheets, and explores the use of event-driven programming in Javascript to add interactive elements such as buttons and text fields to web pages. Students will be able to use AJAX tools to build web pages that connect to servers like Google to dynamically access data (maps, search results, videos, images, etc). Students will know how to write their own server-side code to provide access to a custom database.

COSC 3332 Discrete Structures and Combinatorial Analysis 3(3,0)

Discrete Structures and Combinatorial Analysis is the study of objects that have discrete as opposed to continuous values including counting techniques, relations, graphs, trees and combinatorics.   Students of COSC 3332: Discrete Structures and Combinatorial Analysis develop the quantitative skills necessary for continued success in computer science. These skills enhance their ability to both analyze and describe mathematically many of the algorithms and data structure performance characteristics common to computer science as a discipline and to effectively communicate their solutions to fellow professionals. The course makes extensive use of the technology infrastructure of the school for communication within the class and between students and the instructor. Through the use of group tasks and projects this course establishes both mathematical reasoning skills and technical communication skills.

COSC 3361 Computer Networks 3(3,0)

This course covers the architecture and protocols of local and wide area networks, including signaling, data representation, error control, flow control and routing. The Java-based interprocess communication API is used to provide practical examples of communication, error control and flow control. Peer to peer and client/server configurations based upon Unix/Linux and Windows architectures are explored.  This course concentrates on theoretical and technical issues. Students in this course enhance their interpersonal and group effectiveness skills.

COSC 3351 Algorithms 3(3,0)

This course is the study of the design and performance analysis of algorithms. Time and space complexity analysis of algorithms, design paradigms, and graph algorithms are discussed.

COSC 3411 Systems Programming 4(3,1)

Systems programming is the study of the basic programming principles and skills for building systems software, including the introduction to UNIX, shell programming, and Perl programming.

COSC 4361 Operating Systems 3(3,0)

This course is the study of the principles, purposes, and organization of operating systems. The goal is to prepare students an understanding of the theory as well as practices of the design and implementation of operating systems software.

COSC 4461 Programming Languages 4(3,1)

Programming languages is the study of basic concepts and constructs underlying the design of the modern programming languages. Various programming paradigms, including object-oriented, functional, logic, and concurrent programming, are discussed.

COSC 4362 Artificial Intelligence 3(3,0)

The course presents an overview of artificial intelligence and its methods for solving problems. Basic algorithms for finding solutions to problems or adaptively improving responses to situations are discussed. Expert systems, genetic algorithms, and intelligent agents are among the areas that are explored.

COSC 4363 Theory of Computation 3(3,0)

This course is to give an introductory study of automata, formal languages, and computability, including set theory and countability, finite automata and regular languages, push-down automata and context-free languages, Turing machines, Church’s thesis, halting problem, and incommutability.