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 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

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

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

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

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

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

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

3

CSC 1051 : Algorithms & Data Struc I

Object-oriented design: objects, classes, methods, encapsulation; programming fundamentals: data, variables, selection, loops, arrays, input/output; basic graphics and exceptions.

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.

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

3

CSC 1600 : Operating Systems

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

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

3

Prerequisites

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

CSC 1800 : Organ of Prog Languages

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

Credits

3

Prerequisites

CSC 1052 :D- and (CSC 1300 :D- or MAT 2600 :D-)

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

1

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

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

3

Prerequisites

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

3

Prerequisites

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

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

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

3

Prerequisites

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

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

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

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

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

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

3

Prerequisites

CSC 1052 or ECE 2620

CSC 3300 : 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 rankings, compression, search in images, graph manipulation.

Credits

4

Prerequisites

CSC 3400 : Information Retrieval

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

Credits

3

Prerequisites

CSC 1052 :D- and CSC 1300 :D-

CSC 3990 : Computing Research Topics

Team taught. Centered around the development of a research project in one of several selected computing topics. Methods for conducting research: experimentation, data collection, literature review. Standards for written presentation of information. Reports of progress required of all students.

Credits

3

Prerequisites

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

3

Prerequisites

CSC 1700 :D-

CSC 4181 : Compiler Construction

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

Credits

3

Prerequisites

CSC 1600 :D- or CSC 2400 :D-

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

3

Prerequisites

CSC 2053 :D-

CSC 4380 : Info Visualization

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

Credits

3

Prerequisites

CSC 2053 :D-

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 required for resiliency in today's digital workplace.

Credits

3

Prerequisites

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

3

Prerequisites

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

CSC 4490 : Data Warehousing & Mining

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

Credits

3

Prerequisites

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

CSC 4500 : Artificial Intelligence

The nature of intelligence and the question of its computer implementation; search algorithms; knowledge representation; automated deduction; natural language understanding; planning; problem solving.

Credits

3

Prerequisites

CSC 1052 or ECE 2620

CSC 4510 : Machine Learning

The design of software systems that adapt to new circumstances and detect and extrapolate patterns; neural networks; decision tree induction; genetic algorithms and genetic programming.

Credits

3

Prerequisites

CSC 4598 : Machine Translation

Exploration of the broad field of machine translation; automated computer systems that translate human language using statistical approaches; digital representation transformations, such as readability and sentiment analysis, spam filtering, plagiarism detection, and other natural language processing techniques; building machine translation systems using real-world data; formulating and investigating research questions in machine translation; typically includes collaboration with a non-Computer Science course on interdisciplinary, team-based student projects.

Credits

3

Prerequisites

CSC 4630 : Software Dev and Systems

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

Credits

3

Prerequisites

CSC 1600 :D- or CSC 2405 :D- and CSC 2053 :D-

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

3

Prerequisites

CSC 1052 or ECE 2620

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

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

3

Prerequisites

CSC 1052 :D-

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

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

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

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

3

CSC 4900 : Computer Networks

Underlying principles of computer networks; OSI and TCP/IP architecture; LAN technologies; interconnecting devices: hubs, bridges, switches, routers, gateways; IP addressing and forwarding; routing protocols; transport protocols; error, flow, and congestion control; client- server communication; authentication and authorization; security threats and solutions.

Credits

3

Prerequisites

CSC 2405 :D- or CSC 1600 :D-

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

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

3

Prerequisites

Prerequisites may be imposed depending on the topics.

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

3