COMPUTER SCIENCE (CSC)

Courses

CSC 113: INTRODUCTION TO COMPUTER SCIENCE

Credits 3
This course presents an overview of computers and their applications. Students are exposed to a variety of platforms (e.g. MAC, PC, etc.). Topics include popular applications as well as hardware, software, the Internet, social implications and multimedia. Not open to those who have taken CSC 117. (Intersession)

CSC 117: INTRODUCTION TO PROGRAMMING

Credits 3
The goal of this course is to equip students with fundamental problem-solving skills with a high-level, modern programming language (e.g., Python). The emphasis is not on mastering a specific programming language but developing principles of computational thinking, algorithm design, and logical reasoning. These foundational skills enable students to address real-world problems effectively and prepare them for more advanced computer science courses. Topics covered include: representing information (numeral systems, logic circuits, Von Neumann architecture); basic data types, input/output, flows control, collection data types, and procedural programming (including defining functions, using libraries, and recursion).

CSC 120: STATISTICS PROGRAMMING

Credits 3
This course introduces the Python programming language and the R programming language for statistical computing. Students will gain proficiency in writing computer programs to solve basic problems in data analysis. Applied problems will be chosen from a wide variety of subject areas.

CSC 130: DATA VISUALIZATION

Credits 3
This course introduces computer-based techniques for the visual display of quantitative information. Students will gain proficiency in the use of Excel, Tableau, and R to produce effective data visualizations and information graphics.

CSC 175: DATABASES AND SPREADSHEETS

Credits 3
This course covers the establishment and effective use of a database using Access: design, screen forms and data-entry, queries, updating, linking related tables, report generation, and export/import to other programs. It also presents the design and application of spreadsheets using Excel: formatting, ranges, built-in functions, user-defined formulas, array formulas, table-lookups, summaries by pivot tables, graphing, linking, and macros. Some mathematical background is assumed.

CSC 231: COMPUTER ARCHITECTURE

Credits 3
A course introducing the student to computer architecture and assembly language programming. Topics will include memory and addressing, data representation, real and integral arithmetic, instruction formats and sets, indexing, subroutines, and error correction.

CSC 233: LARGE DATA SETS

Credits 3
This course gives the student a detailed introductory experience in skills required for performing data analytics. These skills may include, but are not limited to: data extraction and import; data tidying and transformation; data visualization for exploratory analysis; constructing statistical models from the data; assessing and improving the models; and communicating the results. The programming language, e.g. R or Python, is determined by the instructor.

CSC 250: INTERMEDIATE PROGRAMMING

Credits 3
This course advances the computer programming concepts introduced in the introductory programming course. Its goal is to enhance programming skills in a high-level language (e.g., Python) through more complex coding challenges. The course focuses on programming paradigms, algorithm development, and structured software design. Key topics include advanced control structures and recursion, object-oriented programming principles (encapsulation, inheritance, polymorphism), the application of data structure libraries (e.g., lists, dictionaries, stacks, and queues) to solve real-world problems, as well as debugging and error-handling techniques.

CSC 260: COMMAND LINE INTERFACES

Credits 3
This course introduces a command language computing environment, the bash shell interface to the Linux operating system. Topics covered include: an exploration of the bash shells, hierarchical file structure, file permissions, multiuser systems, utilities, shell scripts, I/O redirection, pipes, and programming in C++.

CSC 261: SIMULATION

Credits 3
Exposition of basic ideas of digital computer simulation of stochastic processes, and the application of those ideas to practical problems such as inventory, queueing, shipping and manufacturing.

CSC 299: SPECIAL TOPICS IN COMPUTER SCIENCE

Credits 3
This course will explore a contemporary computer science topic based on the interest of the professor and needs of the students. It will use literature, and a cross-disciplinary approach, as appropriate, that is consistent with all other computer science courses. The course will avail students and faculty an opportunity to investigate computer science topics that are not part of the regular computer science curriculum. It fulfills an elective requirement for the Computer Science Major and Minor.

CSC 301: SYSTEMS ANALYSIS AND DESIGN

Credits 3
A course dealing with all aspects of system design and implementation. Problem definition, feasibility study, system design tools, system development control, and implementation and evaluation of systems will be covered.

CSC 303: OPERATING SYSTEMS

Credits 3
This course introduces operating system design emphasizing process management for multiuser and networked systems. Topics covered include: process scheduling, interprocess communication, race conditions and solutions, memory, device and file management.

CSC 305: DATA STRUCTURES

Credits 3
This course introduces complex data structures such as trees, lists, stacks, and matrices. It also covers the classification of an algorithm by computing its order. The algorithms that will be analyzed include various sorting and searching methods.

CSC 317: JAVA PROGRAMMING

Credits 3
Java is an object-oriented programming language with many interactive multimedia capabilities. This course covers the fundamentals of Java programming language, including how to write, debug, and execute Java programs. The course covers object-oriented programming techniques, as well as creating Java applets and applications.

CSC 321: DATABASE MANAGEMENT SYSTEMS

Credits 3
This course deals with both the operational and decision support environment of database systems. Topics include indexing, randomization, physical blocking, and relational and hierarchical structures. Previous experience at the level of CSC 175 or equivalent is recommended.

CSC 327: OPERATIONS RESEARCH

Credits 3
Concepts, methods, and introduction to the theory of optimization of linear systems. Topics to include simplex method, duality, sensitivity, formulation, and classic problems, e.g., maximal flow, travelling salesman, and assignment.

CSC 333: MACHINE LEARNING

Credits 3
This course studies the construction of computer algorithms that can learn from and make predictions on data sets. Methods for supervised learning (linear regression, logistic regression, regularization, support vector machines, decision trees, naïve Bayes, linear discriminant analysis) and unsupervised learning (k-means, principal component analysis, matrix factorization, singular value decomposition). Issues of feature selection, dimensionality reduction, bias-variance tradeoff, cross-validation.

CSC/CYB 230: NETWORKING AND DATA COMMUNICATIONS

Credits 3
This course expands upon the principles and current trends in computer networks as identified in Cybersecurity Fundamentals. Students will deepen their understanding of wide area networks (WANs), local area networks (LANs) and their architectures across which data travels and communicates. Subjects will include the open systems interconnection (OSI) model, transmissions control protocol / internet protocol (TCP/IP), open systems, topologies and internet connected devices. Through in-class projects, theoretical and practical approaches toward building and maintaining local area networks will be covered.

CSC/CYB 235: SECURING WIRED AND WIRELESS NETWORKS

Credits 3
This course provides students who have a basic understanding of computer networking and data communications with the methods and techniques used to secure networks. Students will be required to design and build a secure local area network, incorporating all elements of the seven layers of the OSI Model. Students will learn the capabilities, limitations and vulnerabilities of a cyber network that can be dynamic yet strong against aggressive hackers and virus outbreaks. Also the goal of this course is to provide students with both technical and theoretical approaches to the deployment, securing and defending of wireless networks. Topics will address network attacks, intrusion detection, malware, rogue wireless networks and wireless networking through the cloud. Students must already possess a basic knowledge of information security and networks. Team projects and presentations are required for completion.