Computing Sciences

Chair: Daniel Joyce, Ph.D.
Office Location: Mendel Science Center Rm. 161
Telephone: (610) 519-7307
Website

About

The Department of Computing Sciences seeks to provide outstanding education, to advance scholarship, and to engage in activities that benefit society as a whole, in accordance to the University mission. The Department aims to equip students with a solid foundation in computing theory, and to prepare them for lifelong independent learning and innovative thinking in a constantly changing discipline. Its faculty members strive to maintain professional currency, and to involve students and colleagues in their research investigations. These endeavors support the University mission to transmit, pursue, and discover knowledge in an atmosphere of collegiality in the university community. Supported by a liberal arts education, the Department seeks to develop the total person, sensitive to social and ethical concerns affected by the computing discipline, and committed to addressing the needs of a diverse and interconnected modern society.

Programs

Courses

CSC 1010: Programming for All

Credits 3

Programming fundamentals using the Python programming language: data, variables, selection, loops, arrays, input/output, basic graphics and functions. Object-oriented design: encapsulation, objects, classes and methods.

Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
201530

CSC 1020: Computing and the Web

Credits 3

Information representation and manipulation; file systems and directories; compatibility and data exchange; security and privacy; elements of computer architectures and operating systems; computer networks, the Internet, and the World Wide Web; web site design principles and creation; PC-based examples and illustrations.

Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
200510

CSC 1035: Databases for Many Majors

Credits 3

No background in computing necessary. Design and implementation of your own database as a group project. Cooperative learning techniques to demystify key concepts: the relational model, normalization, the Entity-Relationship model and SQL.

Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
201320

CSC 1040: Computing with Images

Credits 3

Computing systems as tools for designing and publishing graphically rich material in many forms; image processing techniques and systems; image style and related tools; digital image processing theory; computational complexity; multimedia presentations.

Last Offered
Spring 2022, Spring 2021, Spring 2020, Spring 2019
Effective Term
199830

CSC 1051: Algorithms & Data Struc I

Credits 4

Object-oriented design: objects, classes, methods, encapsulation; programming fundamentals: data, variables, selection, loops, arrays, input/output; exceptions. EXCLUSION: This course may not be taken by students who have already taken and passed ECE 1620.

Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
199820

CSC 1052: Algorithms & Data Struc II

Credits 4

Object-oriented design: inheritance, interfaces, polymorphism; problem analysis; recursion; abstract data types; dynamically linked structures; data structures: stacks, queues, lists, collections, trees, maps, priority queues, library collections framework.

Prerequisites

CSC 1051 :C or CSC 2014 :C

Prerequisite Courses
Last Offered
Fall 2025, Spring 2025, Fall 2024, Spring 2024
Effective Term
201930

CSC 1300: Discrete Structures

Credits 3

Mathematical structures that support computer science: sets, matrices, trees, graphs, logic and proof, mathematical induction, relations, functions, sequences, summations, and elementary combinatorics.

Prerequisites
Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
199520

CSC 1700: Analysis of Algorithms

Credits 3

Efficiency classifications and mathematical analysis of recursive and nonrecursive algorithms; design techniques: brute force, greedy, divide-and-conquer, dynamic programming, backtracking, branch-and-bound, space and time tradeoffs; NP-completeness; approximation algorithms; computational problems: sorting, searching, string processing, graphs, arithmetic, linear algebra.

Prerequisites

(CSC 1300 or MAT 2600) and (CSC 1052 or ECE 2620 or ECE 2160)

Prerequisite Courses
Last Offered
Fall 2025, Spring 2025, Fall 2024, Spring 2024
Effective Term
199520

CSC 1990: Enrichment Sem in Computing

Credits 1

Skills for success in computing: research questions and methodologies, oral and written presentation techniques, argumentation and critical thinking, time and project management strategies, study skills.

Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
201220

CSC 2000: Digital Divide,Theory&Praxis

Credits 1

Students will research the effects of the digital divide and implement a program that addresses the needs of underserved high school students preparing for their transition to college.

Prerequisites

CSC 1990

Prerequisite Courses
Last Offered
Spring 2021
Effective Term
202130

CSC 2014: Java Bootcamp

Credits 1

Fast-paced coverage of object-oriented programming using Java and the Java API, including packages for creating graphics and applets; Java syntax and control structures; arrays; designing objects, classes, and methods; graphical user interfaces; input streams, exception handling and threads.

Prerequisites

CSC 1010 or ECE 1620 or MIS 2020

Prerequisite Courses
Last Offered
Fall 2023, Fall 2022, Spring 2022, Fall 2021
Effective Term
201430

CSC 2045: AI for All

Credits 3

History of artificial intelligence. Principles of machine learning and training set development. Overview of natural language understanding technology and computer vision technology. Social and ethical issues. Survey of software tools for implementing artificial intelligence. For non-computer science/engineering majors.

Prerequisites

CSC 1010

Prerequisite Courses
Effective Term
202520

CSC 2300: Statistics for Computing

Credits 3

Probability, counting, discrete and continuous distributions, descriptive and inferential statistics, experimentation, reading of scientific papers -- all taught from the point of view of computer science. Some programming may be required.

Prerequisites

CSC 1051 and CSC 1300

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
201430

CSC 2400: Computer Systems I

Credits 3

Architecture of computer systems: representation of data; processor, memory and I/O organization. Assembly language programming. C programming language constructs and their relationship to the underlying architecture. Basics of operating systems: interrupts, concurrency, process scheduling, security, networking.

Prerequisites

CSC 1052 and (CSC 1300 or MAT 2600)

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Summer 2024, Fall 2023
Effective Term
202510

CSC 2405: Computer Systems II

Credits 3

Processes, threads and concurrent programming. Scheduling and dispatching. Linking and relocation. Memory management. Virtual memory. System-level I/O Device management. File systems. Security and protection in depth. Real-time and embedded systems. System performance evaluation. Scripting.

Prerequisites

CSC 2400

Prerequisite Courses
Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
202430

CSC 2993: Internship in Computing

Credits 3

Internship in computer science involving computer system development, maintenance, or evaluation in an environment which supports sound software engineering techniques. Restricted to second semester sophomore with junior standing and above.

Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
202430

CSC 3010: Overview of Cybersecurity

Credits 3

Exploration of the basic concepts and terminology in cybersecurity for students from a variety of technical or non-technical backgrounds; major sub-disciplines of cybersecurity; impact of cybersecurity on business, ethical, and technical levels; data protection concepts, privacy, and intellectual property; data protection techniques, encryption, and authentication; security in wired and wireless networks, operating systems, applications, databases, and the cloud; ethical hacking and vulnerability management; lab exercises and case studies to introduce technical concepts; prepares students to study cybersecurity in-depth in future coursework; course is the introductory required course for a minor in cybersecurity.

Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
201930

CSC 3080: Info Security & Protection

Credits 3

Explores the criticality of protecting information's availability, accuracy, authenticity, confidentiality, and integrity. Analysis of topics to include redundancy, backup and recovery, business continuity, security technologies, and controls such as audit, change management and testing.

Prerequisites

CSC 2400 or ECE 2042

Prerequisite Courses
Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
200430

CSC 3150: Game Development

Credits 3

Theory of game development, game programming, artificial intelligence, state machines, 2D/3D assets, visual communication, game mechanics, navigation meshes, path planning.

Prerequisites

CSC 1052 or ECE 2620 or (ECE 2160 and ECE 2161)

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Spring 2019, Spring 2017
Effective Term
202430

CSC 3300: Linear Algebra for Computing

Credits 4

Fields, vectors and vector spaces, linear transformations, matrices and matrix algebra, eigenvalues and eigenvectors; Structures and computations in Python for these mathematical objects; Computational applications selected from data science, machine learning, computer vision, graphics, image processing, graph algorithms, quantum computing, information retrieval and web search.

Prerequisites

CSC 1300

Prerequisite Courses
Last Offered
Spring 2021, Spring 2020, Spring 2019, Spring 2018
Effective Term
201710

CSC 4170: Theory of Computation

Credits 3

Finite automata and regular expressions; push down automata and context-free grammars; Turing machines; Church's thesis; computability; NP-completeness.

Prerequisites

CSC 1700 :Y :D-

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
199520

CSC 4181: Compiler Construction

Credits 3

Lexical and syntactical analysis; code generation; error recovery; recursive descent compilation; handling of run-time environment.

Prerequisites

CSC 2400 or ECE 2042

Prerequisite Courses
Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
200220

CSC 4300: Computer Graphics

Credits 3

Hardware and software in computer graphics; graphics programming language; input/output device handling; modeling in 3D space; development of interactive software.

Prerequisites

CSC 1052 :D- and MAT 2400

Prerequisite Courses
Last Offered
Fall 2025, Fall 2023, Fall 2021, Fall 2019
Effective Term
199520

CSC 4450: Digital Forensics

Credits 3

In-depth study of digital evidence presentation, digital forensic techniques, and data analysis. Password cracking, encryption/decryption, volatile data extraction and network forensics of advanced forensic tools, legal and ethical issues related to forensics and security management techniques.

Prerequisites

CSC 2400 or ECE 2042

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
202520

CSC 4480: Principles of Database Systems

Credits 3

Concepts and technology of database management systems and data modeling with an emphasis on the relational model; database querying and normalization; physical data organization. A group project to design and implement a database is a key aspect of this course.

Prerequisites

(CSC 1051 or ECE 1620 or ECE 1260) and (CSC 1300 or MAT 2600)

Prerequisite Courses
Corequisites
Last Offered
Fall 2025, Summer 2025, Spring 2025, Fall 2024
Effective Term
200220

CSC 4500: Artificial Intelligence

Credits 3

History of AI, what it is and isn't; the nature of intelligence and the question of its computer implementation; search algorithms; knowledge representation; automated deduction; machine perception techniques; machine learning; planning; problem solving.

Prerequisites

CSC 1051 or ECE 1620 or (ECE 1260 and ECE 1261)

Prerequisite Courses
Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
199520

CSC 4505: Applied Machine Learning

Credits 3

Introduction to machine learning through Python based projects; machine learning tools; supervised and unsupervised learning algorithms and modeling accuracy, bias, and overfitting issues.

Prerequisites

(CSC 1052 or ECE 2620) and (CSC 1300 or MAT 2600) and (CSC 2300 or MAT 4310 or STAT 4310) and MAT 2400

Last Offered
Fall 2025, Spring 2025, Fall 2024, Spring 2024
Effective Term
202430

CSC 4510: Machine Learn&Theory&Evolution

Credits 3

The mathematical theory behind the design of software by detecting and extrapolating pattern; neural systems that adapt to new circumstances; decision tree induction; genetic algorithms and genetic programming; research foundations.

Prerequisites

CSC 1700 and (CSC 2300 or MAT 4310 or STAT 4310) and MAT 2400

Prerequisite Courses
Last Offered
Fall 2019, Fall 2018, Fall 2017, Fall 2016
Effective Term
202220

CSC 4550: Computing for Data Science

Credits 3

The computing parts of the interdisciplinary subject, Data Science. Topics include: data cleaning, data wrangling, visualization, time series, machine learning fundamentals. Program libraries that support managing datasets. Students will complete a major project.

Prerequisites

(CSC 1300 or MAT 2600) and (CSC 1052 or ECE 2620 or ECE 2160)

Prerequisite Courses
Last Offered
Fall 2022, Fall 2021
Effective Term
202430

CSC 4598: Machine Translation

Credits 3

Computer systems that translate human language transformations, such as readability and sentiment analysis, spam filtering, plagiarism detection, and other natural language processing techniques; typically includes collaboration with a non-Computer Science course on team-based student projects.

Prerequisites

CSC 1052 or ECE 2620 or (ECE 2160 and ECE 2161)

Prerequisite Courses
Last Offered
Fall 2018
Effective Term
202430

CSC 4630: Software Dev and Systems

Credits 3

Operating system structures; system calls; system libraries; interprocess communication; user-interface programming environments; software utilities; software portability.

Prerequisites

(CSC 1600 or CSC 2405 or ECE 2044) and CSC 2053

Prerequisite Courses
Last Offered
Spring 2025, Spring 2023, Spring 2021, Spring 2019
Effective Term
202430

CSC 4700: Software Engineering

Credits 3

Management and production of software systems; the software life cycle; software design techniques and methodologies; participation in a team software development project.

Prerequisites

CSC 2053

Prerequisite Courses
Last Offered
Spring 2025, Spring 2024, Spring 2023, Spring 2022
Effective Term
202430

CSC 4790: Senior Projects

Credits 3

Capstone course centered around a semester long sofware development or research project; project planning; requirements elicitation and specification; teamwork; oral presentations required of all students.

Prerequisites

CSC 4700 :D-

Prerequisite Courses
Last Offered
Fall 2025, Fall 2024, Fall 2023, Fall 2022
Effective Term
199930

CSC 4810: Mobile App Development

Credits 3

Theory and practice of designing apps for mobile devices; interface design, platform-specific and platform-independent programming, sensor-based computing, cloud data management, security, and privacy; entrepreneurial practices for app development: ideation, business planning, and commercialization.

Prerequisites

CSC 2053

Prerequisite Courses
Last Offered
Spring 2021, Spring 2020, Spring 2019
Effective Term
201930

CSC 4900: Networks and Security

Credits 3

Organization of computer networks; TCP/IP protocols; switching and routing methods; IP addressing and forwarding; TCP flow and congestion control; client-server communication; cryptography: secret-key, public key, digital signatures; security attacks and defenses: authentication and authorization, denial of service, firewalls, VPNs.

Prerequisites

CSC 2405

Prerequisite Courses
Last Offered
Spring 2022, Spring 2021, Fall 2017, Fall 2016
Effective Term
202130

CSC 5930: Topics Computer Science

Credits 3

Lecture presentation of selected topics in computer science. May be repeated for credit if topics are different. Prerequisites may be imposed depending on the topics.

Last Offered
Fall 2025, Spring 2025, Fall 2024, Spring 2024
Effective Term
202430

CSC 5993: Independent Study

Credits 3

Reading, research and/or projects in a selected area of computer science under the direction of a member of the staff. May be repeated for credit.

Last Offered
Fall 2025, Spring 2025, Fall 2024, Summer 2024
Effective Term
199520

MSE 2400: CSC:Evol Lrng Cmp Robtcs Agnts

Credits 4

This course explores how software designers and artificial intelligence researchers draw inspiration from biology and learning theory to design programs and robotic agents that learn and adapt to changes in their environment. No prior programming experience is required.

Last Offered
Fall 2021, Fall 2020, Spring 2020, Fall 2019
Effective Term
201410