Computer Science

Classes

COMSC 1450: Introduction to Programming and Computer Science

Students will learn to analyze computational problems and develop solutions to them as algorithms. The algorithms will be implemented in Python, a modern programming language. Students will learn the fundamental principles of computer science, basic hardware and software components of a computer system, computational thinking, basic algorithms, and programming. Students will get hands-on experience in problem solving by designing, writing, testing and debugging Python programs.

COMSC 1451: Object Oriented Programming

Software is everywhere, including enterprise systems, mobile devices, avionics, sensors, and big data. This course focuses on Object Oriented Programming (Java) and its key concepts: object, classes, encapsulation, abstraction, polymorphism, and inheritance. In addition, topics such as generics, interfaces, threads and events/listeners complement the software development process.

COMSC 2351: Data Structures

Continuation of COMSC 1351: Introduction to abstract data types, records, linked lists, stacks, queues and trees and graphs; recursion; analysis of algorithms; additional sorting and searching techniques. Prerequisites: COMSC 1351

COMSC 3055: Computational Methods Research

This course will introduce students into different methods, techniques, and approaches for conducting computational research applied to different disciplines such as Biology, Health Sciences, Textual Analysis, Humanities, and more.

COMSC 3365: Organization of Computer Programming Languages

The organization of programming languages with emphasis on language semantics; language definition, data types, and control structures of various languages. Principles of object oriented and functional programming and the translation and execution of programs. Prerequisite: COMSC 1351

COMSC 3371: Introduction to Data Analytics

Data analytics is a process that turns data into usable information for answering questions. This course will introduce the process of acquiring, managing and analyzing data. Readily available real-world data sets will be analyzed using supervised and unsupervised learning methods.

COMSC 3372: Data Visualization

Appropriate visualizations of data are a key to revealing patterns and communicating important findings in research. This course will build on statistical and analytical thinking by emphasizing the role and use of visualizations in the analysis of data. Theories, techniques and software for managing, exploring, analyzing, displaying and communicating information about various types of data will be introduced. Visualizations will be produced using readily available real-world data sets. Prerequisites: MATH 2435, or MATH 3332, or MATH 3450, or PSYC 3433, or instructor approval.

COMSC 3375: Database Systems

Organization concepts and terminology of data models and the underlying data structures needed to support them. Thorough presentation of the relational database management system including an introduction to SQL programming, normalization and database design. Introduction to the programming interface to databases. Prerequisite: junior standing; COMSC 1450.

COMSC 3385: Computer Architecture

Introduction to digital logic, machine representation of data, assembly programming, processor design, memory organization, and interface communication. Prerequisite: COMSC 1351.

COMSC 4191: Internship

Practicum of on–the–job experience under the guidance of a practicing specialist in the field. This course is designed to provide opportunities for students to enhance their practical skills through application of classroom concepts and theories to real life situations. To be supervised individually by a department faculty member with the approval of the department chair.

COMSC 4320: Operating Systems

A study of concurrency, process scheduling, memory management, security and device management. Topics in syste support for parellelism, virtualization and reliability. Prerequisite: COMSC 3385

COMSC 4330: Human and Social Factors

Topics include human interaction with computers, user interface design, professional ethics, sustainability, security policy, computer crime and law, and history of computing. Prerequisite:COMSC 2351

COMSC 4340: Computer Networks

An introduction to the design and analysis of computer communication networks. Topics included application layer protocols, Internet protocols, network interfaces, local and wide area networks, wireless networks, bridging and routing, and current topics. Prerequisites: COMSC 1351

COMSC 4345: Foundations of Data Science

Data science is an emerging discipline whose main goal is extracting information and knowledge from datasets and using it for decision-making, answering questions, or understanding phenomena. The fundamentals of Data Science will be studied from three perspectives; 1) as a collection of disciplines: exploring the interconnections between computing, mathematics, statistics, visualization, and other domains; 2) as a process: learning the life cycle in a data science project; and 3) understanding its computational foundation. This course also addresses the potential negative impact algorithms can have on people and society.

COMSC 4350: System Development Project

This course is intended as a capstone. Topics include software project management, software design, reliability, verification and validation. The course includes the team development of a software system. Prerequisite: senior standing

COMSC 4391: Internship

Practicum of on–the–job experience under the guidance of a practicing specialist in the field. This course is designed to provide opportunities for students to enhance their practical skills through application of classroom concepts and theories to real life situations. To be supervised individually by a department faculty member with the approval of the department chair.