Courses

COSC 109 Introduction to Information Management (3)
An introduction to fundamental principles, concepts and techniques that providers of information use to organize their data. Also studies techniques for using information effectively in decision making. Basic networking, web, database, spreadsheet and programming concepts will be covered. Does not count toward the Computer Science major or minor requirements.

COSC 110 Introduction to Computer Science (3)
Prerequisite: Minimum ACT composite score of 23 or COSC 109 recommended. Introduction to the fundamental ideas and techniques of computer science. Introductory programming topics such as variables, sequence, selection, repetition, and objects will be covered. Students will spend a significant amount of time out of class writing and debugging code in a programming language. (MR)

COSC 130 Data Structures (3)
Prerequisite: COSC 110 or COSC 115. Studies the implementation of common data structures such as stacks, queues, linked lists, and trees. Intermediate programming topics such as recursion, analysis of algorithms, and other topics will be introduced. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging classes and programs.

COSC 210 Database and the Web (4)
Prerequisite: COSC 110. Introduction to the client-server paradigm using web clients and database servers. The interaction of web client languages HTML, CSS, and Javascript with server languages such as PHP and SQL will be explored.

COSC 220 Software Design (4)
Prerequisite: COSC 130. Introduces current design methodologies for developing computer programs. Object-oriented programming concepts will be covered. Designing classes and interaction between objects will be emphasized. In addition, API’s for common data structures will be included. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging classes and programs in an object- oriented programming language.

COSC 235 Discrete Structures (3)
Prerequisite: COSC 110. An introduction to the mathematical ideas that are most often used in computer science. Topics covered include recursion and induction, graphs and trees, counting techniques and discrete probability, and prepositional and digital logic. (MR)

COSC 245 Computer Organization and Architecture (4)
Prerequisite: COSC 130. A study of the internal organization and design of computing devices. The machine will be examined at different levels such as digital logic, microprogramming, conventional machine and assembly language. Advanced architectures such as RISC and parallel machines will be explored.

COSC 255 Programming: “Language” (2)
Prerequisite: COSC 130. A study of a selected programming language not covered in other computer science courses. This course may be repeated with a different language.

COSC 325 Mobile Application Development (4)
Prerequisite: COSC 220. Studies the principles of software development for mobile platforms.

COSC 330 Algorithms (3)
Prerequisite: COSC 130. A survey of many advanced programming algorithms. Topics include sorting and searching, string, geometric and graph algorithms. Students will spend a significant amount of time out of class designing, writing and debugging computer programs in programming languages such as Java or C++.

COSC 345 Computer Systems (4)
Prerequisite: COSC 245. Studies fundamental system concepts such as memory management, input/output, process and thread management, concurrency, and networking.

COSC 346 Cybersecurity (4)
Prerequisite: COSC 130. Overviews computer security in software systems and the internet. The course will evaluate risks to computer and network systems, examine and design security systems against attacks, and apply security principles to solve real- world problems. A “learning by doing” approach using self-contained labs will be used to demonstrate security flaws and their remedies.

COSC 362 Computer Graphics (3)
Prerequisite: COSC 130. Introduction to the principles and techniques of computer graphics programming. Offered alternate years.

COSC 390/490 Topics: Computer Science (Arr)
Prerequisite: COSC 220. Various topics in computer science can be studied depending upon the interest of the students. Some possible areas of study are advanced programming techniques and systems analysis.

COSC 420 Senior Project (4)
Prerequisite: COSC 220.  Students will learn current development practices and apply them to design and implement a semester project of their choice. Students are expected to present (orally and in writing) the results of their work.

DATA 210 Introduction to Data Science (3)
Prerequisite: COSC 110.  An introduction to concepts, tools, and techniques in data science including data acquisition, cleaning, analysis, modeling, and visualization. No prior familiarity with data science is assumed.

DATA 310 Data Visualization (3)
Prerequisite: Second-year standing. Studies principles of effective visualization based on insights from many disciplines, including cartography, psychology, cognitive science, and graphic design. Students will learn to analyze visualizations based on these principles, and apply the principles to create effective visualizations of their own.

DATA 440 Applied Machine Learning (3)
Prerequisite: MATH 131, COSC 110. The course focuses on the regression, classification, and clustering tasks with the scikit-learn machine learning library in Python. The basic data structures used in machine learning such as numpy arrays and pandas data frames will be introduced in the beginning of the course. Students will spend a significant amount of time out of class designing, writing, collaborating on, and debugging Python programs. (Previously taught as COSC-390.)