Skip to main content

Special Topics

CSC 9010-001 TOP:Quantum Computing CRN: 32165
R 2:20-5:05pm, Instructor: Kristin Erica Obermyer
This course will provide a foundation in quantum computing through hands-on exercises.  We’ll learn a bit of physics and math that underlie the strange and surprising world of qubits (quantum bits), entanglement and superposition.  Quantum algorithms that rely on these core concepts will be explored and implemented using two different approaches from Microsoft Microsoft (QDK/Q#) and IBM (Qiskit).    

We’ll use what you already know about classical computers (i.e., the ones we’re all using today) as a bridge to understanding how quantum computers work.  We’ll see what NISQ (Noisy Intermediate-Scale Quantum) computers can do in the near-term, and we’ll look ahead to the exciting applications of fault-tolerant quantum computers in the future.  We’ll analyze Google’s 2019 claim of reaching “quantum supremacy.”  If you’re curious about quantum computing, this practical approach will help you be prepared to join the quantum workforce and to pursue new opportunities in this rapidly evolving field.

Prerequisite background: Programming experience in one high-level language

CSC 9010-002 Top: IoT Security in Context, A Hands-On Approach CRN: 32166
T 6:15-9:00pm, Instructor: James Solderitsch
Industrial Control System Security, Cyber-Physical System Security and Security within the Internet of Things (IoT) are all concerned with making our interactions with devices in the physical world safe and reliable. Medical devices, fitness devices, Smart-Home devices and our instrumented cars are beneficial to modern life but are also subject to compromise and have the potential to harm us. In this course, we will be taking a hands-on approach to the IoT by using real devices that employ sensors and actuators at the edge, are connected through a local gateway, and communicate to a cloud backend. Devices from Texas Instruments will be paired with a Raspberry Pi computer and students will use these devices at their own locations for labs and exercises. Cloud providers like Amazon Web Services (AWS), the IBM cloud and others will be connected to the class devices to provide an edge to cloud experience that is realistic and indicative of the commercial world of IoT. All along this experiential journey, we will be looking at how to make these kinds of devices and connections secure and what malicious actors can do to affect security and privacy. A midterm exam along with a final research report (or extended hands-on investigation) will be primary contributors to a student's grade. In addition student interaction will be facilitated and monitored through the Yellowdig platform that Villanova has integrated into its Learning Management System. While there are no formal prerequisites, students must be willing to work with development environments designed to enable the production of IoT systems. Some programming background will help students to get up to speed quickly.  Some references related to planned course content include:

AWS IoT: Developing and Deploying an Internet of Things

A Hand Wash Sensor built from Off-the-Shelf Hardware

Build an Earthquake Early Warning (EEW) system and visualize historical seismic datasets

LPSTK: a new IoT hardware platform

 

CSC 9010-003 TOP: Cloud Native App Design & Development CRN: 32167
M 6:15-9:00pm, Instructor: Juan Carlos Vega
Cloud computing is a shared platform where users can consume storage, processing power, and other services on demand, without having to physically add more system resources to their environments. This course focuses on exploring and using such technologies to create innovative and complex business solutions that can drastically reduce the cost of creating such solutions, while offering new career opportunities for software and solution engineers looking to stay on the leading edge of the technology industry.

The course will explore the three companies that are often associated with Cloud Computing – Microsoft, Amazon, and Google. Each company has significantly contributed to growing the cloud platform and so, we will take an in-depth look at what each has to offer.

The learning objectives are to gain a thorough understanding of how to create real world applications using current cloud technologies; deep understanding of the cloud computing solution offerings from Amazon, Microsoft, and Google; a basic understanding of emerging technologies, such as OpenShift, Kubernetes, Heroku, Netflix OSS, and others; and, high level understanding of key concepts such as Cloud Provisioning and Orchestration.

 Students should have a basic understanding of Cloud Computing Technologies, Development Environments and IDEs, and Programming Concepts & Languages.

Summer 2020 CSC Special Topics Course Descriptions

1.  CSC 9010 - 030 TOP: Python for Machine Learning & Data Science

Python has become the language of choice for analytics, including machine learning, data science, and optimization. This course has three primary objectives:

  • Learning the Python language and its best practices
  • Understanding the basics of data science and analytics
  • Using various libraries in Python such as sci-kit learn, tensorflow, keras, matplotlib, and pyomo for data science and analytics

Topics include:

  • Fundamentals of Python
  • Python libraries for numerics (numpy), plotting and data visualization (matplotlib), data manipulation (pandas, itertools)
  • How to structure Python projects
  • Python coding style (especially the PEP-8 standard)
  • Unit tests in Python
  • Overview of about 10 different machine learning algorithms, including logistic regression, support vector machines, boosted trees, neural networks
  • Using machine learning algorithms in Python – benchmarking, visualization, understanding outputs
  • Tuning of machine learning algorithms in Python
  • Many case examples will be presented
    • Using Python for optimization and discrete event simulation
    • Use of Jupyter Notebooks for data science
    • Time permitting, advanced topics

Homeworks will include:

  • Elemental Python exercises
  • Building a machine learning algorithm using Python and Numpy
  • Developing your own data analysis of a few different datasets.  Including descriptive statistics, various visualizations, and machine learning
  • Developing an optimization for a simple example.

2.  CSC 9010 - 031 TOP: Containers & Microservices

Containers and Microservices technologies are the next advancement in highly scalable, performance-driven systems implementation.  In this course, we will seek to understand Containers, what they are, and how they are used.  Additionally, we will explore Microservices as an example of the kinds of services that may be hosted within Container technologies.

The course seeks to give the student a broad and high level of understanding & consideration when implementing decoupled, highly scalable, and highly available services.  No previous understanding of Containers is required.  However, strong software development knowledge is needed, since the focus of the course will assume that students are already knowledgeable in software development practices.

Finally, we will look at implementing and consuming such services from containers, examine the readiness perspective of the Enterprise, how these changes affect individual developers, organizations, and future software design & evolution.  These ideas are the basis for Cloud Application Development practices.

Topics include:

  • Containers
    • High level overview of Container Technology
    • Concepts in Technologies
    • Impact of Container Technology in business and for developers
    • Container Orchestration
    • Working with Docker
    • mplementing Docker Solutions
  • Microservices
    • What are Services?
    • Emergence of Microservices
    • Microservices Design
    • Microservices Technologies
  • Implementing Microservices & Containers
    • Installing Microservices on Containers
    • Implementing Docker Swarm
    • Automation:  A DevOps Approach

3.  CSC 9010 - 032 TOP: Exploration of Technological Singularity

This is a seminar style course that would entail reading about the fundamentals and synergies of Wireless Networking, IOT, Bigdata, and AI. Discussions surrounding the business, philosophical, scientific, legal and political ramifications of technology advancing without human direction. Student readings and presentations integral to the course.

4.  CSC 9010 - 036 TOP: AI & DSS in Health Informatics
Attributes: 100% Distance Learning

Artificial Intelligence (AI) and Decision Support Systems (DSS) have become cornerstones for novel health informatics developments. The FDA recently released (April 2019) a discussion paper detailing proposals for regulating medical devices based on artificial intelligence or machine learning algorithms. As stated on the FDA paper, “Artificial intelligence and machine learning have the potential to fundamentally transform the delivery of health care,” The FDA has already approved certain AI algorithms for clinical use, including a tool to help detect wrist fractures and a device to highlight diabetic retinopathy.

Decision Support Systems (DSS) are a variety of tools developed to enhance decision-making in healthcare workflow. Tools include alerts and reminders to providers and patients; diagnostic support guidelines; dedicated data reports; tailored analytics; among others. In 2017, the Office of the National Coordinator for Health IT (ONC) collaborated with the National Academy of Medicine (NAM) to develop strategies and recommendations to optimize DSS and improve healthcare.

The object of the course is to familiarize the students with the multiple approaches related to AI and DSS, including decision trees, fuzzy logic, genetic algorithms, machine learning and deep learning.  Students will be able to develop a simple AI/DSS system for healthcare, utilizing the guidelines and regulations proposed by ONC and FDA to adopt DSS and AI in Healthcare.

CSC 9010 - 001 TOP:DevOps:Tools&Techniques CRN: 22807

Days: T from 06:15 pm to 09:00 pm

DevOps is a software engineering principle and practice aimed at unifying development and operations. The guiding principle is automation and monitoring all aspects of software: construction, integration, testing, deployment, and infrastructure management. The course is intended to give an overview of DevOps including principles, practices, approaches, methods, tools, and techniques.

 

CSC 9010-003 TOP:Intro to Data Science CRN: 22728

Days: W from 03:00 pm to 05:45 pm


Data Science is an inherently interdisciplinary subject, requiring components of computer science, statistics, and some domain to provide the data and the problems to solve.  In this course, we focus on the computer science components of data science.  We will use the Python programming language and libraries that support managing datasets, libraries such as pandas, numpy, and scikit-learn for machine learning.  We will work with a variety of large datasets.  Topics will include data cleaning, data wrangling (reorganizing datasets), visualization, time series, machine learning fundamentals.  Students will select a project to complete during the semester to exercise a good collection of these elements.  The course will be graded based on frequent quizzes, weekly programming assignments, and the final project.

Contact Information

Department of Computing Sciences
Tel: 610.519.7310
Fax: 610.519.7889

Director of Graduate Programs:  Dr. Vijay Gehlot