CISE Special Topics Courses – Fall 2021

Special topics courses provide an opportunity for in-depth study of topics not offered elsewhere and of topics of current significance.  

  • CIS4930 for undergraduate students
  • CIS6930 for graduate students

Brief descriptions and expected prerequisites can be found below.


Deep Learning for Computer Graphics

Course number(s): CIS4930/CIS6930
Instructor:
Prerequisites:

  • Proficiency in a programming language (python and/or c++ recommended)
  • data structures COP3530
  • Linear Algebra, Calculus

Description:
Deep learning algorithms are prevalent in computer graphics: from convolutional neural networks (CNNs) for denoising rendered movie frames to Generative Adversarial Networks (GANs) for simulating facial animation. This course covers the fundamental theory and application of AI algorithms in the context of computer graphics through lectures, reading assignments and a semester long programming project where students develop GPU programming skills on the new HiPerGator NVIDIA cluster. The course is open to both graduate and undergraduate students.


Software Testing for Continuous Delivery

Course number: CIS4930
Instructor: Byron Williams
Prerequisites:
Description: 
This course will provide theoretical and practical experience with various quality assurance activities including testing, code review, and static analysis tools with a focus on developing an automated deployment pipeline. Students will learn how to identify and conduct various types of testing activities for both waterfall and agile processes. This course will also focus on applying various testing / QA tools to simulate a production development process using a test-first design.


Abstraction, Composition, and Computation

Course number(s): CIS4930/6930
Instructor: James Fairbanks
Prerequisites: COT3100, MHF3202, or equivalent
Description: 
Compositionality allows us to build abstractions that faithfully represent the behavior of our systems. When abstractions compose, complex systems can be designed by combining simple parts, where the behavior of the whole is governed by the behavior of the parts. Abstraction enables scalable engineering design. In software engineering, good abstractions are a key to reliable software and compositionality is the guiding principle of functional programming. Students will learn to recognize generally applicable patterns in systems from diverse fields of computer science and how to use these patterns to understand abstractions and design patterns. Category theory is a mathematical tool for organizing mathematics, computation, science, and engineering around the principle of composition. Students will learn category theory through examples from functional programming, databases, linear algebra, design of engineered systems, and network science. The course will explore both theoretical and computational aspects of these applied category theory topics.


Computational Neuroscience

Course number(s): CIS4930/6930 co-listed
Instructor: Arunava Banerjee
Prerequisites: None
Description:
The goal of Computational Neuroscience is to acquire a formal understanding of how the brain (or any part thereof) works. The central dogma is that there are computational principles lurking in the dynamics of systems of neurons in the brain that we can harness to create better machines for such disparate tasks as computer vision, audition, language processing etc (note that in all these cases human beings far surpass the best known solutions). This course is aimed at giving an overview of the field. In addition, we shall take a tour through some essential neurobiology and a couple of mathematical areas.


CS Teaching and Learning

Course number(s): CIS4930 for undergrad only, CIS6930 for grad only, CIS4930/6930 for co-listed
Course number(s): CIS4930/6930
Instructor: Jeremiah Blanchard
Prerequisites: COP3502
Description:
Covers basic methods & practices of teaching, especially as it relates to computer science and engineering. Content focuses on three fundamental elements in education – learning environment, educational theory, and educational practice – as well as approaches to engineering-specific training. Topics include effective student interaction, models of learning & expertise development, & how to implement techniques in the classroom. (1 credit hour)


Digital Health

Course number(s): CIS6930
Instructor: Abdelsalam (Sumi) Helal
Prerequisites: None
Description:
Health and Wellness are undergoing digital transformations requiring a skilled workforce catering to the emerging Health Tech industry as well as the top Computer Tech industry including Microsoft, Google, Amazon, Facebook, among many others. The code name for this new interdisciplinary area, emerging technology, skill set, and eventually own-industry is Digital Health. Digital Health entails the use and application of informatics and cybernetic technology in the pathways of disease diagnosis, treatment, healthcare delivery, health-related learning, and discovery, and in general staying active and healthy throughout the entire lifespan. This is a special topic graduate-level class. Ideally, the class should include students from both the health and medicine domain as well as from the computing and engineering domain.


Internet of Things (Delivered within CNT5517) Mobile Computing

Course number(s): CIS4930
Instructor: Abdelsalam (Sumi) Helal
Prerequisites: COP4600
Description:
This is a combined Graduate/Undergraduate level class on mobile and pervasive computing. You should expect to learn fundamental concepts as well as key emerging technology, including architectures, platforms and protocols. The class will cover mobile platforms, smart spaces and the Internet of Things (IoT) but a major emphasis this semester will be placed on IoT, specifically Personal IoT. You should gain hands-on experience in designing and building systems and applications that utilize smartphones, sensors and other IoT things. If you finish this class successfully, you should be skilled in creating “programmable” smart spaces – spaces that you will be able to create IoT applications for. You will be challenged to innovate new ideas and applications through lab assignments and a group project.


Internet Data Streaming

Course number(s): CIS6930
Instructor: Shigang Chen
Prerequisites: COP 3530 Data Structures and Algorithms
Description:
This 3-credit course introduces cutting-edge theories and technologies that sit at the intersection of the Internet and big data. It covers data structures and algorithms for Internet-based data streaming. The data structures include various hash tables, bloom filters and their variants, count-min sketches, bitmaps, FM and HLL sketches, virtualized data structures, non-duplicate sampling, etc. They have applications in network security, traffic measurement, e-commerce, and big data analytics.


Multimedia Networking Principles

Course number(s): CNT 4731
Instructor: Jonathan Kavalan
Prerequisites: CNT4007c. However, students are permitted to take this course when they are taking CNT4007c in the same semester. The other students can contact Instructor: for possible permission case by case.
Description:
Design and analysis of multimedia networking. Major effort is devoted on multimedia elements, and their impact on higher-level protocols at the application- and transport-layer


Programs, Functions, Strange Loops, and Consciousness

Course number(s): CIS4930/6930 for co-listed
Instructor: Stephen Thebaut
Prerequisites: CEN 3031, Intro to Software Engineering; basic knowledge of discrete math (including symbolic logic)
Description:
What do computer programs, mathematical functions, strange loops, and human consciousness have in common? They are all considered in this thought-provoking special topics survey of approachable ideas from the minds of the late mathematician and computer scientist Harlan Mills and cognitive scientist Douglas Hofstadter. Adopting a mostly computer and cognitive science (as opposed to a computer engineering) point of view, the course will cover an interesting and relatively painless introduction of Mill’s functional program correctness theory (including some of its interesting implications concerning loop invariants) and most of Hofstadter’s popular 2007 book, “I Am a Strange Loop” which argues that the key to understanding consciousness is the “strange loop” that inhabits our brains.


Trustworthy Machine Learning

Course number(s): CIS6930
Instructor: Vincent Bindschaedler
Prerequisites:
Description:
Explores research at the intersection of machine learning and security and privacy. Topics include: adversarial machine learning; differential privacy; membership inference; fairness & transparency; explainable/interpretable ML; deepfakes and disinformation.


Cyber-physical systems security

Course number(s): CIS4930/6930
Instructor: Sara Rampazzi
Prerequisites: COP 3530 (Data Structures and Algorithms), programming experience recommended.
Description:
Cyber-physical systems integrate sensing, computation, control, and networking into devices and infrastructure, connecting them to the Internet and to each other while interacting with the physical world. The inherent interconnected and heterogeneous combination of behaviors in these systems makes their security a challenging task. From IoT to autonomous systems, from healthcare devices to critical infrastructure, which are the common threats and the strategies adopted to protect these systems? This introductory course covers foundational work and current hot topics in cyber-physical system security. Students will learn the challenges of building secure systems, analyzing research papers, writing technical essays, and conducting basic hands-on analysis. Students will learn methodologies for reproducible research, and gain knowledge of cyber-physical systems security principles, from threat modeling to privacy risks.


Spoken Dialogue Systems

Course number(s): CIS4930/6930
Instructor: Kristy Boyer
Prerequisites: COP 3530 or equivalent; STA 2023 or equivalent
Description:
Designing and building spoken dialogue systems. Fundamentals of speech recognition and generation, natural language understanding, dialogue management, task modeling, and voice user interface design.


Python for non-CISE majors

Course number(s): CIS4930 for undergrad only
Instructor: Pedro Guillermo Feijoo-Garcia
Prerequisites: MAC 1147
Description:
This course is offered to non-CISE students interested in learning to program in Python. We will cover topics related to: 1) Object-Oriented Programming: context-based problems and solutions with a weakly-typed programming language like Python. 2)Structured Programming: concepts focused on scientific programming and machine learning. We will use from numeric methods to classification techniques using Python. 3)Web Programming: principles and components regarding development with Python-based web-frameworks. Students will be introduced to the MVT pattern and learn how to use cloud-based technologies for deployment.


Penetration Testing—Ethical hacking

Course number(s): CIS6930 co-listed with CIS4020
Instructor: Joseph N. Wilson
Prerequisites: Data Structures (COP 3530)
Description:
Introduction to the principles and techniques associated with the cybersecurity practice known as penetration testing or ethical hacking. The course covers planning, reconnaissance, scanning, exploitation, post-exploitation, and result reporting. The student discovers how system vulnerabilities can be exploited and learns to avoid such problems.


Mobile Networking

Course number(s): CIS4930/6930
Instructor: Ahmed Helmy
Prerequisites: Programming skills (using Python, Java, or other) at the level equivalent to COP 3502 or COP 3503 or above
Description:
Concepts of emerging mobile networks architecture, systematic analysis
of effects of mobility on network performance, synthetic and data-driven mobility modeling and simulation, behavior analysis in mobile networks, mobile service and application structure,
development, implementation, and evaluation. Topics include architecture, geographic routing and routing resolution in ad hoc networks, sensor networks, Internet of Things, and vehicular networks.


Bioinformatics

Course number(s): CIS4930 for undergrad only
Instructor: Kiley Graim
Prerequisites: Programming skills (Python, R, or other) at the level equivalent to COP 3502 or COP 3503 or above
Description:
This course covers introductory and intermediate-level topics in computational biology. We study the principles of algorithm design for biological datasets, analyze influential algorithms, and apply these to real datasets. Topics include: sequence and expression analysis, genotype to phenotype relationships, understanding gene function, regulatory network inference, machine learning applications to genomics.


Formal Languages and Computation

Course number(s): CIS4930, co-listed with COT6315
Instructor: Meera Sitharam
Prerequisites: COT 3100 and COP 3530 OR exposure to writing mathematical proofs and analyzing algorithms and Consent of Instructor
Description:
The course will introduce formal models of automation, and definitions of computational problem, algorithm, computability and complexity classes of computational problems. These abstractions that are essential for a full-fledged computer scientist to adapt to emerging models of computation as they evolve. Key concepts and tools from theoretical computer science will be introduced by which the student will learn to think about entire classes of computational problems, their alternate equivalent characterizations and closure properties, containment relationships between classes, representative computational problems in a class, reductions between problems in a class, and develop competence in wielding these concepts and tools towards classification of computational problems into complexity classes. The class will co-locate with the graduate COT 6315 formal languages and theory of computation, with separate assessment criteria for graduate and undergraduate cohorts.


Introduction to Machine Learning

Course number(s): CIS4930
Instructor: Anand Rangarajan
Prerequisites: Calculus and Linear Algebra
Description:
Artificial Intelligence (AI) and Machine Learning (ML) have seen a resurgence of interestin the past decade, primarily due to the arrival of high performance computing. Machine learning now has the ability to produce models at scale provided training sets are available. This has resulted in new ML applications in scientific data analysis, social networks, music etc. – areas far afield from the original ML domains of computer vision and natural language processing. Learning systems can be broadly characterized as unsupervised, supervised or using reinforcement learning. Many learning paradigms exist, but recently it is deep learning that has really captured the imagination of the public at large. This course covers the basics of different learning methodologies and features a project which brings students up to speed on the implementation of modern learning methodologies.