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 1024 : Computing for Scientists

Active learning of computing skills necessary for science students: data graphing, regression analysis, animation, symbolic computing, information search techniques, scientific report writing, Web page construction, fundamentals of programming.

Credits

1

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; 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, maps, priority queues, library collections framework.

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

1

Prerequisites

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 2996 : Internship in Computing

Internship in computer science open to second semester sophomores and above. Most likely, intern will participate in computer system development, maintenance, or evaluation in an environment which supports sound software engineering techniques.

Credits

6

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

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 4140 : Theory of Information

Information and coding theory, data compression, cryptology.

Credits

3

Prerequisites

(CSC 1300 :D- or MAT 2600 :D-) and CSC 2500 :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

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 4280 : Parallel Algs & Architecture

Design and analysis of parallel algorithms for arithmetic, matrix operations, sorting, simulation, combinatorial and graph problems, and Fast Fourier Transform. Taxonomies of parallel architectures; interconnection networks, meshes, trees, and hypercubes; scalability and speed-up.

Credits

3

Prerequisites

(CSC 1600 :D- and CSC 1700 :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

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

3

Prerequisites

CSC 1051 or ECE 1620

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

3

Prerequisites

CSC 1052 and CSC 1300 and CSC 2300

CSC 4510 : Machine Learn&Theory&Evolution

The mathematical theory behind the design of software systems that adapt to new circumstances and detect and extrapolate patterns; computational complexity; neural networks; decision tree induction; genetic algorithms and genetic programming; research foundations.

Credits

3

Prerequisites

CSC 1700 and CSC 2300

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. Python or similar libraries that support managing datasets. Students will complete a major project that demonstrates an understanding of the entire data science process.

Credits

3

Prerequisites

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

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 4600 : Distributed Processing

Data concurrency; distributed file systems and database; distributed operating systems; security; interprocess communication; directory services; process migration; process vulnerability to partial failure.

Credits

3

Prerequisites

CSC 1600 :D- and CSC 2053 :D-

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 : Networks and Security

Organization of computer networks (eg., the internet); 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

3

Prerequisites

CSC 2405 :D- or CSC 1600 :D-

CSC 5900 : Seminar in Computing

Study and discussion of selected topics in computer science with presentations by individual students. May be repeated for credit if topics are different. Prerequisites may be imposed depending on the topics.

Credits

3

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

CSC 7000 : Algorithms & Programming

Algorithm design and refinement; extensive programming; loop and selection control; recursion; arrays, pointers, records and strings; abstract data types: linked lists, stacks, queues, binary trees; elementary search and sorting.

Credits

3

CSC 7100 : Computer Systems

Fundamental concepts in computer architecture and operating systems. Information representation, gates and digital logic, ALU and central processing organization, instruction sets, basics of pipelining, processes, memory management and file systems.

Credits

3

CSC 8000 : Found of Algor & Data Struc

Programming in Java or another object-oriented language. Program design with an emphasis on the object paradigm. Classic algorithms and data structures. Significant programming assignments are required.

Credits

3

CSC 8100 : Technol for Human Orgs

"Leading Edge" technologies and their applications in a variety of organizational settings. Presumes literacy in basic computer applications: word processing, desktop publishing; spreadsheets, and communications.

Credits

3

CSC 8200 : Hlth Informatics & EHealth Sys

Evolution, current status, and emerging trends of US and global computerized health information systems, architectures, technical standards, regulations, including administrative and clinical applications, clinical decision support and data-analytics systems, electronic medical and personal health record systems/tools, personal health/fitness and medical device integration solutions, rapidly emerging mobility/tablet/smartphone/ app, product/system interoperability concepts, issues, and implications (aka mHealth, pHealth, and uHealth), and overarching population health patient safety, and health quality/outcome goals, gaps and challenges.

Credits

3

CSC 8210 : Hlthcare Safety Secur Law&Eth

US and relevant international health and data security and privacy laws/regulations, HIPAA and HITECH compliance for EHR software and medical devices, federal and state patient privacy and health data access rights, electronic transmission of health data, health insurance, FDA rules and regulations, unauthorized access, vulnerabilities, unsecured wireless access, inadequate encryption, authentication failures, and other access control vulnerabilities, security risk assessment, privacy and security gaps in health information exchanges, federal and state privacy breach notification laws and related civil and criminal penalities, and successful security compliance audit and management strategies.

Credits

3

CSC 8220 : Software Engr&Hlth Informatic

An introduction to software engineering covering development life-cycle models, requirements analysis and specification, design concepts and methods, UML, testing, maintenance, CASE tools and management concerns, middleware and data/function integration, medical device/system interoperability.

Credits

3

CSC 8230 : Database System&Hlth Infomatic

Architecture of a database system; conceptual and implementation models; query languages; integrity, security, and concurrency; hands-on experieince with selected US government EMR/PHR/MRS/HIS systems; SQL and NoSql DBs; Big Data in eHealth; database access via web services; data representation standards such as XML, JSON, HL7.

Credits

3

CSC 8301 : Design and Ana of Algs

Fundamental strategies for algorithm design; mathematical and empirical techniques for analysis of nonrecursive and recursive algorithms, with applications such as sorting, searching, string processing and graphs; NP-complete problems and approximation algorithms.

Credits

3

CSC 8310 : Programming Languages

Organization, characteristics, constructs, and design principles of programming languages; syntax, semantics, and pragmatics; language implememtation issues; different programming paradigms such as imperative, functional, object-oriented, and logic programming.

Credits

3

CSC 8400 : Computer Systems

A continuation of the study of properties of computing systems. Topics include computer performance; pipelining; storage technologies; systems aspects of interconnection networks; parallel and distributed architectures. Prerequisite is CSC 7100 or the equivalent.

Credits

3

CSC 8411 : Advanced Computer Systems

Advanced topics in computer systems related to systems programming and management and underlying the study of computer networks and distributed computation.

Credits

3

Prerequisites

CSC 8450 : Digital Forensics

Digital forensics plays a vital role in cybersecurity, criminal/civil investigations and internal corporate investigations. This course provides an in-depth study of digital evidence preservation, digital forensic techniques and data analysis. Password cracking, encryption/decryption, volatile data extraction and network forensics are just some of the forensic techniques that will be covered. The course will also cover the use 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

CSC 8470 : Computer Graphics

Interactive program development in 2D/3D graphics: event handling, real-time data sampling, and strategies in programming computer games; 2D/3D modeling; perspective viewing; object transformation; graphical user interface design.

Credits

3

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

3

CSC 8495 : Information Retrieval

Study of storage and retrieval of information on a large collection of resources. Topics include: algorithms for efficient storage and retrieval, information discovery, extraction, NLTK, web crawling, precision and recall, document classification, Python programming, discussion and review of current literature.

Credits

3

CSC 8505 : Compiler Construction

Finite state methods for lexical and syntactical analysis; symbol table construction, run-time-code organization for block structured language, intermediate code generation, and pseudo-object machines. LR(k) and LL(k) parsers. Programming assignments and exercises are given.

Credits

3

Prerequisites

CSC 8301 :C and CSC 8310 :C

CSC 8510 : Theory of Computability

Automata theory: deterministic and non-deterministic finite automata, pushdown automata, regular languages, context-free grammars, pumping lemma. Computability and recursion theory: Turing machines and their variations, decidability and recursive enumerability, mapping reducibility and Turing reducibility, undecidability of the halting problem, logical theories and Godel's incompleteness theorem. Complexity theory: time complexity, space complexity, major open problems on computational complexity. Corequisite: CSC 8301 or degree program in mathematics.

Credits

3

CSC 8515 : Machine Learning

Study of algorithms and systems that can learn without being explicitly programmed. Topics include: clustering, classification, prediction, supervised learning, unsupervised learning, decision trees, support vector machines, random forests, regression, dimensionality reduction, neural networks, deep learning, and probabilistic graphical models.

Credits

3

CSC 8520 : Artificial Intelligence

Problem-solving methods; knowledge representation; search; predicate calculus; automated theorem proving; natural language processing.

Credits

3

Prerequisites

CSC 8301 :C

CSC 8525 : Computer Vision

Graduate research seminar exploring the algorithms and state-of-the-art techniques in the field of computer vision and image processing. Topics include image processing, pattern recognition, feature detection, image and object segmentation, computational photography, object detection, and face recognition. A familiarity with linear algebra and statistical methods is recommended but not required.

Credits

3

CSC 8530 : Distributed Systems

An introduction to distributed systems; distributed system architecture and design goals; networks and distributed protocols; distributed/network operating systems, including distributed resource control and management, concurrency and interprocess communication; remote procedure calling; client/server techniques and issues; reliability of distributed systems; security and authentication.

Credits

3

Prerequisites

(CSC 8301 :C and CSC 8410 :C)

CSC 8540 : Software Engineering

An introduction to software engineering covering development life cycle models, requirements analysis and specification design concepts and methods, testing, maintenance, CASE tools and management concerns. Additional topics may include reuse metrics, experimentation, reengineering, development environments, and standards. The student may be required to write a research paper and/or give an in-class presentation.

Credits

3

CSC 8541 : Requirements Engineering

Requirements elicitation and analysis; requirement specification; test driven development; system modeling; requirements validation; requirements management.

Credits

3

CSC 8542 : Software Design and Evolution

Evolutionary design using agile methods including refactoring; design issues for mobile computing/embedded systems; designing for testability; analysis patterns and design patterns; configuration management; software evolution through release management.

Credits

3

CSC 8543 : Software Testing&Quality Assur

Role of Software Quality in SDLC, Test Planning Theory, Model Driven Test Development, Problem Solving, SQA. Student's projects and presentations integral to the course.

Credits

3

CSC 8544 : Software Project Management

Provides an in-depth study of project management theory, with a focus on the unique characteristics of software projects, using practical examples and team exercises to reinforce concepts. Topics include: managing project goals and constraints, emphasizing fundamental scope, schedule, budget and quality objectives, processes, tools, techniques, risks and outcomes, team building, conflict management and communications.

Credits

3

CSC 8545 : Software Studio

The art and science of creating reliable and maintainable code. Topics include: test-driven development, code quality metrics, code coverage, defensive programming, risk conscious maintenance, debugging, refactoring, professional tools, distributed version control, cultivating an expressive coding style, code review, pair programming, software craftsmanship, software experimentation and myth-busting.

Credits

3

CSC 8550 : 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. Python or similar libraries that support managing datasets. Review of current data science research papers. Students will complete a major project that demonstrates an understanding of the entire data science process.

Credits

3

CSC 8560 : Computer Networks

Computer networks as an application development platform; services required by and provided to distributed application electronic mail systems enhancement; access to remote file systems; integration of remote resources such as components of the World Wide Web into applications; abstract syntax notation; data compression and encryption; session control and synchronization; transport protocols; network addressing and routing; LAN and MAN medium access control; bridging. Treatment of Open Systems Interconnection and Internet protocols and services.

Credits

3

Prerequisites

(CSC 8301 :C and CSC 8410 :C)

CSC 8565 : Cybersecurity

High level overview of issues, challenges and solutions surrounding cyber security and the protection of people, assets and information. Topics include the evolution, present state and future of cyber risk: security fundamentals; cyber security drives including regulations, privacy and brand protection; the techniques and technologies used to address cyber risks; challenges to implementing cyber controls, organization, management and operating models.

Credits

3

CSC 8566 : Internet of Things

The advancement of embedded processes and sensor networks that have made the IOT feasible. Topics include: Introduction, Domains of application, IOT VS M2M, IOT Management, Protocols, Design Methodologies, Hands on Design using Raspberry Pi and Python, Reviewing servicers and clouds, and data analytics.

Credits

3

CSC 8570 : User/System Interface

The design and measurement of human-computer interfaces, with the objectives of developing models of user communities, summarizing current research in user-oriented design, defining design criteria for the user/system interface, and constructing test strategies for interactive software systems.

Credits

3

CSC 8580 : Network Mgmt & Perf

Monitoring and management of computer networks and network devices; SNMP, CMIS CMIP network management protocols and services; Management Information Base (MIB) development; performance analysis including queuing models; comparison of channel access protocols; other related topics as selected by the class. This is frequently run as a seminar requiring a significant paper or project, consistent class preparation and participation. Prerequisites: statistics, probability.

Credits

3

Prerequisites

(CSC 8530 :C or CSC 8560 :C)

CSC 8590 : Advanced Software Engineering

In-depth coverage of software engineering topics such as: reuse, metrics, CASE tools, design methodologies, reengineering, experimentation, automatic programming, software safety, development environments, reliability theory, risk management, and standards. The student may be required to write a research paper and/or give an in-class presentation.

Credits

3

Prerequisites

CSC 8540 :C

CSC 8600 : Object Oriented Design & Prog

Introduces the theoretical and practical issues underlying the object-oriented paradigm, including classes, encapsulation, inheritance, and polymorphism. Primary topics also include object-oriented analysis and design, databases, and technology transfers. The use of an object- oriented programming language, such as Java or C++, is an integral part of the course. Problems involving program design and implementation will be assigned. The student may be required to write a research paper and/or give an in-class presentation.

Credits

3

Prerequisites

(CSC 8301 :Y :C or CSC 8410 :Y :C)

CSC 8610 : Multimedia Technology

Theory and practice of multimedia content, representation, compression, storage, and delivery. Content types include text, audio, images, graphics, animations, and video. Student projects and presentations as integral part of the course.

Credits

3

Prerequisites

CSC 8301 :C

CSC 8620 : 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 8700 : Sys Prog - UNIX & C.

The UNIX operating system: command interpreters, shell programming, process structure, file system, utilities like grep, sed, awk, and perl. C programming: file processing, libraries, program environment, system calls.

Credits

3

CSC 8710 : Adv Sys Prog

The UNIX kernel: architecture, inodes, process control, memory management, I/O subsystem. System calls in C: execution environment, memory management, terminal control, locking, file management, process management, interprocess communication. C libraries. Program development and debugging tools.

Credits

3

Prerequisites

CSC 8700 :C

CSC 8750 : Expert Systems

Knowledge representation and reasoning techniques; forward and backward chaining; semantic net and frame systems; uncertainty, automated knowledge acquisition; practical guidelines for implementing expert systems.

Credits

3

Prerequisites

CSC 8520 :C

CSC 8800 : Appl Computer Science I

Mathematical analysis, probability, statistics, optimization queuing theory, digital signal processing; software engin- eering; UNIX, C, C++. Prerequisites: Permission of the supervisor of the Advanced Course Program, Martin Marietta Corporation

Credits

3

CSC 8810 : Appl Computer Science II

Software engineering: object oriented analysis & design, database management, graphical user interface, system engineering.

Credits

3

Prerequisites

CSC 8800 :C

CSC 8990 : Graduate Computing Practicum

Work experience in computing, CSC graduate program approval required for a specific work opportunity. Prerequisite: Completion of graduate CSC core: CSC 8301, 8310, 8400, 8410, and 8510.

Credits

1

CSC 9000 : Guided Study

Faculty-directed study by small number of students on topic of mutual interest. Topics vary with faculty & student goals. May replicate rarely offered course or research topics not covered in existing courses. Requires permission of instructor & program director. Open to graduate students in computer science or software engineering.

Credits

3

CSC 9010 : Special Topics

Advanced elective study of topics of current interest and importance in the computer field. This may be retaken for a different topic.

Credits

3

CSC 9020 : Independent Study

Individual research project in an advanced area of computer science, conducted under the guidance of a faculty member.

Credits

3

CSC 9025 : Grand Challenges of Computing

Project-based course; research track; research topics, tools for investigation, modes of discovery and presentation, sources of information, inspiration, foundations of computing application; development track: significant software development, approaches, tools, techniques, trends, domains of applications. Restricted to MSCS and MSSE.

Credits

3

CSC 9030 : Thesis Direction

Expanded independent study in which the student makes an original contribution to the computer science field.

Credits

3

SCSC 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

3