Course Descriptions

 View flowchart for recommended course sequences.

 Computer Science Courses

COSC 100 - Elements of Computer Science - 2 credits 

 
A survey of topics necessary for modern-day professional computer literacy.  Includes laboratory exercises. Credit not given to computer science majors or minors.

COSC 101 - Computer Programming: Visual Basic - 3 credits 

 
Computer programming in Visual Basic. Algorithm development and data representation, decisions/conditions, looping, procedures and functions, arrays, searching, sorting, object oriented programming, interface design and writing Windows applications using forms, controls, and events.

COSC 130 - Fundamentals of the Internet - 3 credits 

 
This course is for students from all majors who are interested in learning about the technical foundations of the Internet; i.e. how data communications, broadband technologies, “smart” devices, networking, and standards work together to provide this global resource. Discussions on current developments, Internet governance, as well as security/threats to the Internet as we know it. Also includes “hands-on” labwork where students will create and publish multiple Web pages using HTML5.

COSC 135 - Introduction to Computer Science - 3 credits 

 
An introduction to fundamental computer science concepts for non-computer science majors. Provides high-level coverage of topics that may include Operating Systems (such as Windows), Programming Languages, Software Engineering, Computer Graphics, Artificial Intelligence, the Internet and World Wide Web, Computer Architecture (such as those from Intel), Algorithms and Problem Solving, Data Storage, Computer Security, and Social and Ethical Aspects of Computing.

COSC 145 - Algorithmic Thinking - 3 credits 

 
Computers have made possible new ways of thinking about how to solve problems. This course introduces this style of thinking to students from any discipline by applying tools and techniques designed for beginners to engaging in problems. Topics include basics of algorithm design and development, abstraction, modularization, information organization, and object-oriented concepts.

COSC 150 - Computer Programming: C++ - 3 credits 

 
Object oriented programming, objects and classes, data abstraction, functions, looping, selections, control structures, arrays, searching, and sorting. Credit is allowed for at most one of COSC 150, COSC 160, and COSC 170.

COSC 160 - Computer Programming: Java - 3 credits 

 
Object oriented programming, objects and classes, data abstraction, functions, looping, selections, control structures, arrays, searching, and sorting in an environment with scientific and mathematical applications. Credit is allowed for at most one of COSC 150, COSC 160, and COSC 170. Offered every semester.

COSC 170 - Computer Programming: Python - 3 credits 

 
This course is an introduction to the Python programming language for the students without prior programming knowledge and experience. Topics include Variables, Expressions, Built-indata types, Sequences, Control Structures, Methods, Objects, Classes, Exceptions, List, Files and Inheritance. Credit is not allowed for COSC 150, COSC 160 and COSC 170.  Offered fall and spring.

COSC 200 - Computer Science Tools - 3 credits 

 

This course focuses on several commonly-used tools that are not necessarily part of the standard course sequence but that may be useful in other classes across the discipline or in other departments. Topics presented include command-line interfaces and the Unix/Linux operating system, scripting languages and Python, pointer-based languages and C++ . Prerequisite: grade of "C" or better in COSC 150, COSC 160, or COSC 170. Offered irregulary.

COSC 215 - Data Structures in Java - 3 credits 

 
Data abstraction, queues, linked lists, recursion, stacks, trees, string processing, searching and sorting, and hashing. Java API support for data structures. Prerequisite: grade of "C" or better in COSC 160, and either a grade of "C" or better in MATH 135 or concurrent enrollment in MATH 135. Credit is not allowed for COSC 215 and COSC 216. Offered every semester.

COSC 216 - Data Structures in Python - 3 credits 

 
Data abstraction, queues, linked lists, recursion, stacks, trees, string processing, searching and sorting, and hashing. Python API support for data structures. Prerequisite: grade of "C" or better in COSC 170, and either a grade of "C" or better in MATH 135 or concurrent enrollment in MATH 135. Credit is not allowed for COSC 216 and COSC 215. Offered every semester.

COSC 220 - Computer Organization and Assembly Language - 3 credits 

 
Basic structure of computer hardware and software, data representation, addresses and instructions, control structures, device drivers, files, and macros. Prerequisite: grade of "C" or better in COSC 215/216 or concurrent enrollment in COSC 215/216. Offered fall and spring.

COSC 300 - Algorithms - 3 credits 

 
Algorithm design: divide-and-conquer, greedy algorithms, dynamic programming, reductions; algorithm analysis: asymptotic analysis (big-O), amortized analysis; graph algorithms; complexity classes: NP-completeness, Cook's theorem, NP-complete problems. Prerequisite: grade of "C" or better in COSC 160 and COSC 215 or COSC 170 and COSC 216. Offered fall and spring.

COSC 305 - Digital Logic - 3 credits 

 

Boolean algebra and logic gates, combinational logic, decoders, encoders, multiplexers, registers, counters, memory units, flip-flops, algorithmic state machines, and digital integrated circuits. Prerequisite: grade of "C" or better in COSC 220. Offered summer, odd years.

COSC 308 - Numerical Analysis - 3 credits 

 
Linear systems, interpolation, functional approximation, numeric differentiation and integration, and solutions to non-linear equations. May be counted as either mathematics or computer science, but not both. Prerequisites: grade of "C" or better in COSC 150, COSC 160, or COSC 170 and in Math 116. Offered spring only.

COSC 311 - System Programming and Design - 3 credits 

 
Interaction between software and hardware components in an integrated system, program translation issues, assemblers, linkers, loaders, and compilers. Prerequisite: grade of "C" or better in COSC 220. Offered fall, odd years.

COSC 325W - Operating Systems - 3 credits 

 
Organization of operating systems and basic computer architecture. Implementing multiprogramming, memory management, communicating with input/output devices, concurrency, synchronization, file systems and scheduling the processor. Prerequisite: grade of "C" or better in COSC 220. Offered spring only.

COSC 340 - Problem Solving Seminar - 1 credit 

 
Solution and discussion of problems from the ACM International Collegiate Programming Contest and other sources. Permission of instructor required. Prerequisite: grade of "C" or better in COSC 300. Offered fall only.

COSC 350W - Computers and Humanity - 3 credits 

 
An exploration of the impact of computers on present and future society including sociological, philosophical, and ethical issues in computer science. Prerequisite: grade of "C" or better in COSC 200, or in COSC 215, or in COSC 220. Offered summer, even years.

COSC 390 - Internship - 1 to 3 credit(s)

 
Internship suitably related to the program as determined by the Faculty Advisor and dependent on the approval of the Department. May be repeated for a total of up to three credits. Prerequisite: grade of "C" or better in COSC 300, must have completed at least 60 credit hours and minimum GPA of 3.0. For registration approval contact department. Offered every semester.

COSC 401 - Database Management Systems - 3 credits 

 
The use, design, and implementation of database management systems. Topics include data models, current DBMS implementations, and data description, manipulation, and query languages. Prerequisite: grade of "C" or better in COSC 160 and COSC 300. Offered fall, even years.

COSC 410 - Artificial Intelligence - 3 credits 

 

Knowledge representation and natural language processing, search strategies, design and applications of heuristics, expert systems, and applications. Prerequisite: grade of "C" or better in COSC 300. Offered spring, even years.

COSC 418 - Formal Languages and Automata - 3 credits 

 
Formal languages and their relation to automata. Regular expressions and languages, context free languages, recognition of languages by automata, Turing machines, decidability, and computability. Prerequisite: grade of "C" or better in COSC 220 and COSC 300. Offered fall, even years.

COSC 423 - Machine Learning - 3 credits

Foundational Theory, Models, and methods of supervised machine learning, including VC dimension, validation, linear models, artificial neural networks, and support vector machines. Various learning algorithms will be implemented and tested, such as perceptron learning, linear regression, and gradient descent. Prerequiste : grade of "C" or better in COSC 300 and MATH 115. Offered irregularly. 

COSC 425 - Computer Graphics - 3 credits 

Geometric generation of two- and three-dimensional graphics. Scan conversion, geometric transformation, clipping, interaction, curves and surfaces, and animation. Prerequisite: grade of "C" or better in COSC 300. Offered spring, odd years.

COSC 430 - Web-Based Systems - 3 credits 

 
Technologies underlying the Web, including TCP/IP, HTTP, HTML, CSS, JavaScript, the DOM, XML, server-side development, client-server communication, and web services. Prerequisite: grade of "C" or better in COSC 160 and COSC 300. Offered spring, even years.

COSC 435 - Theory of Programming Languages - 3 credits 

 
Syntactic and semantic issues in program language definition and implementation. Static vs. dynamic properties, parameter passing, recursion, and language comparisons. Prerequisite: grade of "C" or better in COSC 160 and COSC 300. Offered fall, odd years.

COSC 445W - Software Engineering - 3 credits 

 
Best practices for developing high-quality software within time and budget constraints. Development tools, process models including agile, architectures, software and interface design, patterns, modeling languages including UML, implementation issues, quality assurance, metrics. Prerequisite: grade of "C" or better in COSC 160 and COSC 300. Offered spring, odd years.

COSC 450 - Computer Networks - 3 credits 

 
Network technologies, protocols, and management. Programming networked applications. The effects of the Internet and World Wide Web on computing and society. Prerequisites: grade of "C" or better in COSC 300 and COSC 325W. Offered fall, odd years.

COSC 460 - Computer Security - 3 credits 

 
Network, database, and Web security, threat models, elementary and advanced cryptology, protocol analysis, covert channels, access control and trust issues, legal and ethical issues in security. Prerequisite: grade of "C" or better in COSC 325W. Offered fall only.

COSC 481 - Computer Science Capstone Project - 3 credits 

 
An individual or group project involving a significant programming component on a topic of current interest in computer science. Each student is required to log at least 100 hours of relevant project work outside of class meetings. Prerequisites: Senior Status, at least 18 credits of COSC coursework at the 200-level and above, and grade of "C" or better in COSC 300.

COSC 491 - Selected Topics in Computer Science I - 1 credit

 
Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.

COSC 492 - Selected Topics in Computer Science II - 2 credits 

 
Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.

COSC 493 - Selected Topics in Computer Science III - 3 credits 

 

Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.

 Selected topics listed below are offered irregularly

 Cloud Computing (offered irregularly) - 3 credits 

 
This course will cover different aspects of Cloud Computing Infrastructure and Services. It includes cloud deployment and service models, cloud infrastructure, and the key considerations in migrating to cloud computing.The course covers technologies required to build classic (traditional), virtualized, and cloud data center environments. These technologies include compute, storage, networking, desktop and application virtualization. Additional areas of focus include backup/recovery, business continuity, security, and management. Students will learn about the key considerations and steps involved in transitioning from the current state of their data centers to a cloud computing based data centers. Prerequisite: grade of "C" or better in COSC 300.

 Emerging Computer Technologies (offered irregularly) - 3 credits 

 
This course will cover number of emerging computing technologies related to data generation and processing of today computing systems. It will include the definition and characteristics of the Internet of Things (IoT), its architectural and itssoftware models, data generation and transfer for IoT and different IoT applications. Also, it will focus on the concepts of Big Data computing, Map-Reduce, Hadoop, Yarn and Spark. On the other hand, it will introduce today large scale computing infrastructure represented by Cloud data-centers. Finally, the course will discuses the most recent computing paradigm of Edge Computing and how this paradigm is supporting the integration of IoT applications, big data processing requirements and the cloud in one framework. Prerequisite: grade of "C" or better in COSC 300.