Computing Sciences

Degrees and Certificates

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.

Classes

CSC 1000 : The Practice of Computing

Anatomy of a computing system including tiny systems such as cell phones; resource management - memory, processes, file structure; network analysis - network topology, performance, privacy, security; application scripting - concepts & practices of programming.

Credits

Credits 3

CSC 1010 : Programming for All

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.

Credits

Credits 3

CSC 1020 : Computing and the Web

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.

Credits

Credits 3

CSC 1030 : Prob Solv with Computers

Using the microcomputer as a problem solving tool; system use; general purpose language programming; spreadsheet analysis and modeling; retrieving information from the Internet; strengths and weaknesses of computer based problem solutions.

Credits

Credits 3

CSC 1035 : Databases for Many Majors

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.

Credits

Credits 3

CSC 1040 : Computing with Images

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.

Credits

Credits 3

CSC 1043 : Laptop Instrument

Music structure and theory; programming structures, algorithms and language to create music on your laptop; component of Living in the KnowlEdge Society project (NSF) connecting computing with other disciplines.

Credits

Credits 3

CSC 1045 : 3D Modeling and Animation

Computer-assisted animation & its programming dialects; cartoon creation from story-boarding to product delivery; algorithms - efficiency, correctness, understanding via animation.

Credits

Credits 3

CSC 1051 : Algorithms & Data Struc I

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.

Credits

Credits 4

CSC 1052 : Algorithms & Data Struc II

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.

Credits

Credits 4

Prerequisites

CSC 1051 :C or CSC 2014 :C

CSC 1300 : Discrete Structures

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

Credits

Credits 3

Prerequisites

CSC 1600 : Operating Systems

System software design and implementation; process and resource management; concurrency, scheduling, and deadlock; memory management; file systems and security.

Credits

Credits 3

Prerequisites

CSC 2400 :D- or ECE 2042 :D-

CSC 1700 : Analysis of Algorithms

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.

Credits

Credits 3

Prerequisites

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

CSC 1800 : Organ of Prog Languages

High level language features: data types, control structures; formal lexical and syntactical analysis; operational semantics; language translation.

Credits

Credits 3

Prerequisites

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

CSC 1930 : Explorations in Computing

Emerging technologies & their applications; computing in support of investigations & applications in the humanities & social sciences.

Credits

Credits 3

CSC 1990 : Enrichment Sem in Computing

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.

Credits

Credits 1

CSC 2000 : Digital Divide,Theory&Praxis

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.

Credits

Credits 1

Prerequisites

CSC 1990

CSC 2014 : Java Bootcamp

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.

Credits

Credits 1

Prerequisites

CSC 1010 or ECE 1620 or MIS 2020

CSC 2020 : Web Devel & Tech I

Design of web content, utilization of web tools, configuration of supporting technologies. Emphasis on client-side services: HTML, style sheets, Javascript, DHTML.

Credits

Credits 3

Prerequisites

CSC 1020

CSC 2025 : Web Devel & Tech II

Design of web content, configuration of supporting web technologies. Emphasis on server-side services: databases and forms, XML, AJAX, cookies, security CGI.

Credits

Credits 3

Prerequisites

CSC 2020

CSC 2053 : Platform Based Computing

Python APIs, internet programming and security, mobile app programming, a team project.

Credits

Credits 3

Prerequisites

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

CSC 2300 : Statistics for Computing

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.

Credits

Credits 3

Prerequisites

CSC 1051 and CSC 1300

CSC 2400 : Computer Systems I

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.

Credits

Credits 3

Prerequisites

CSC 1052 and (CSC 1300 or MAT 2600)

CSC 2405 : Computer Systems II

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.

Credits

Credits 3

Prerequisites

CSC 2400

CSC 2500 : Survey of Information Science

Brief introductions to several areas in which problems in information use are important. Examples are business, law, biology, medicine, electronic commerce, and libraries.

Credits

Credits 3

CSC 2993 : Internship in Computing

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.

Credits

Credits 3

CSC 3010 : Overview of Cybersecurity

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.

Credits

Credits 3

CSC 3070 : Emerging Technology Trends

Investigate new technologies and current applications. Explore when and how to apply new technologies with sensitivity to feasibility, financial viability, and overall effectiveness. Culminates in team-driven exploitation of a new technology.

Credits

Credits 3

CSC 3080 : Info Security & Protection

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.

Credits

Credits 3

Prerequisites

CSC 2400 or ECE 2042

CSC 3150 : Game Development

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

Credits

Credits 3

Prerequisites

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

CSC 3300 : Linear Algebra for Computing

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.

Credits

Credits 4

Prerequisites

CSC 1300

CSC 3400 : Information Retrieval

Theory and practice of location, organization, and rendering of meaningful content from largely unorganized sources.

Credits

Credits 3

Prerequisites

CSC 1052 :D- and CSC 1300 :D-

CSC 4170 : Theory of Computation

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

Credits

Credits 3

Prerequisites

CSC 1700 :Y :D-

CSC 4181 : Compiler Construction

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

Credits

Credits 3

Prerequisites

CSC 2400 or ECE 2042

CSC 4200 : Linear Algebra for Computing

Fields, vectors, matrices. Structures and computations in a high-level language for these mathematical objects. Computational applications including image morphing, page ranking, compression, search in images, graph manipulation.

Credits

Credits 4

Prerequisites

CSC 1300

CSC 4300 : Computer Graphics

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

Credits

Credits 3

Prerequisites

CSC 1052 :D- and MAT 2400

CSC 4380 : Info Visualization

The presentation of information; visual cognition, scientific visualization, illustration presentation, color theory, motion dynamics, image processing.

Credits

Credits 3

Prerequisites

CSC 1052 or ECE 2620 or ECE 2160

CSC 4450 : Digital Forensics

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.

Credits

Credits 3

Prerequisites

CSC 2400 or ECE 2042

CSC 4480 : Principles of Database Systems

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.

Credits

Credits 3

Prerequisites

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

Corequisites

CSC 4490 : Data Warehousing & Mining

Tools and techniques, theory and practice for storage and effective use of massive data sets.

Credits

Credits 3

Prerequisites

CSC 4480 and (CSC 2300 or MAT 4310 or STAT 4310)

CSC 4500 : Artificial Intelligence

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.

Credits

Credits 3

Prerequisites

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

CSC 4505 : Applied Machine Learning

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

Credits

Credits 3

Prerequisites

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

CSC 4510 : Machine Learn&Theory&Evolution

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.

Credits

Credits 3

Prerequisites

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

CSC 4550 : Computing for Data Science

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.

Credits

Credits 3

Prerequisites

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

CSC 4598 : Machine Translation

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.

Credits

Credits 3

Prerequisites

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

CSC 4630 : Software Dev and Systems

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

Credits

Credits 3

Prerequisites

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

CSC 4700 : Software Engineering

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

Credits

Credits 3

Prerequisites

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

CSC 4710 : Info Syst Project Management

Principles and techniques of information systems project management; qualitative and quantitative essentials to include project integration, scope, schedule, cost, quality, human resources, communications, and risk. Practical experience managing a project with complex technology issues.

Credits

Credits 3

CSC 4730 : Human Computer Interaction

Design of the user/system interface; measurement of human-computer interaction; models of the user and user communities; design criteria for the interface; user interface management systems (UIMS); test and evaluation strategies and tools.

Credits

Credits 3

Prerequisites

(CSC 1052 or ECE 2620 or ECE 2160)

CSC 4790 : Senior Projects

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.

Credits

Credits 3

Prerequisites

CSC 4700 :D-

CSC 4797 : Information Systems Capstone

A cumulative experience to complete a student's portfolio of expertise in information systems and technology. Student driven project emphasizing system integration, design and communication skills. Prerequisites: Information Systems majors or FIT certificate candidates only.

Credits

Credits 3

Prerequisites

CSC 4710 :D- and CSC 4700 :D- or DIT 2165 :D- and CSC 2500 :D- and DIT 2175 :D-

CSC 4800 : Web Application Development

Theory and design of web-based applications: stylesheets, applets, HTML, CGI programming, web server design, website design, security, multimedia representations, encryption, compression.

Credits

Credits 3

Prerequisites

CSC 2053 :D-

CSC 4810 : Mobile App Development

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.

Credits

Credits 3

Prerequisites

CSC 2053

CSC 4900 : Networks and Security

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.

Credits

Credits 3

Prerequisites

CSC 2405

CSC 5920 : Logic

Boolean connectives and propositional logic; quantifiers and first-order logic; natural deduction, resolution and other methods of human or computer reasoning; set theory; induction; formal arithmetic.

Credits

Credits 3

CSC 5930 : Topics Computer Science

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.

Credits

Credits 3

CSC 5993 : Independent Study

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.

Credits

Credits 3

CSC 8410 : Operating Systems Concepts

Principles and techniques required for creating and understanding operating systems, including the areas of: system services, concurrent programming, process and resource control; deadlock detection, recovery, and prevention; memory management; file systems; and protection and security.

Credits

Credits 3

Prerequisites

CSC 8400 :Y :C

CSC 8490 : Database Systems

Modern database systems, including relational and NoSQL systems. Emphasize practical knowledge while covering the essential theory design; query lanquages; security; transactions. Focus on both theory and practice.

Credits

Credits 3

Prerequisites

CSC 8500 : Formal Grammars

Machines; nondeterminism; simulation; finite machines and regular languages; grammars; stack, counter, and tape machines; computability.

Credits

Credits 3

Prerequisites

(CSC 8301 :C and CSC 8310 :C)

CSC 8720 : Sys Admin Concepts

UNIX login process. Standard root, device and user directories and files. File system construction and management. Dist status and partitions. Monitoring system performance. Networking and communication.

Credits

Credits 3

Prerequisites

CSC 8700 :C

MSE 2400 : CSC:Evol Lrng Cmp Robtcs Agnts

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.

Credits

Credits 4