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.
CIS4930/CIS6930 (for co-taught undergrad and grad sections) Cyber-physical System Security
Instructor: Sara Rampazzi
Prerequisites: COP3503
Description: Covers foundational concepts of cyber-physical system security. In particular, hardware and software threats and mitigation strategies of integrating sensing and actuation, AI computation, infrastructure control, and networking. Students will learn the challenges of building secure systems, analyzing research papers, writing technical essays, presenting security research problems, and conducting hands-on testing.
CIS4930 Enterprise Software Engineering Practices
Instructor: Sarvenaz Myslicki
Prerequisites: CEN 3031
Description: Do you aspire to work in the tech industry? Do you want to learn how software gets built in large, billion-dollar companies? Do you want to stand out among other intern and full-time candidates? This course will be taught by industry leaders and former UF CISE graduates who have put together 100% of the content based on real-world experiences building enterprise software. The course will cover: processes, frameworks, and tools that large companies use to allow hundreds of engineers to collaborate and deliver software; how technology teams interface with other business units to deliver products and solutions; and modern software engineering best practices and enterprise architecture patterns.
CIS4930/CIS6930 (for co-taught undergrad and grad sections) Full Stack IoT Development
Instructor: Jean Louis
Prerequisites: COP3503 Prog. Fundamentals 2
Description: The Internet of Things is driving change in our society in many areas, such as healthcare, agriculture, environmental monitoring, and natural resource management. This course will introduce students to the concepts involved in creating an end-to-end IoT system. We will explore trade-offs and challenges at every level of the IoT stack, including devices, communication, web development, and ML Cloud integration. Students will gain hands-on experience with simulation and physical devices.
CIS4930 Theory of Computation
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 problems, algorithms, 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 the 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.
CIS4930 Intro to Competitive Programming
Instructor: Rong Zhang
Prerequisites: COP 3530 Data Structures and Algorithm with minimum grade of B, COT 3100, and MAC 2234, MAC 2312, MAC 3473 or MAC 3512. MAS 3114 Computational Linear Algebra
CIS6930 Cellular and Mobile Network Security
Instructor: Patrick Traynor
Prerequisites: CNT 5410
Description: Mobile phones and their supporting networks now represent the most widely available computing and communications technologies. Whether as a tool for social networking or enabling business transactions in third-world countries, this infrastructure is now indispensable to over five billion people throughout the world. Unfortunately, few understand how these systems function and the unique security challenges facing them. This course provides an in-depth investigation into security issues in areas including cellular air interfaces, core architectures (2G-5G), and mobile device architectures.
CIS4930/CIS6930 (for co-taught undergrad and grad sections) Emerging Computing Concepts
Instructor: Dr. Amanda Holloman
Prerequisites: Familiarity with C++, C, JavaScript, HTML, and Python
Description: This course involves the exploration of new forms of Human-Computer Interaction (HCI) based on passive measurement of physiological states (cognitive, physical, and affective). These include the measurement of cognitive workload, physical well-being, and affective engagement. Students will read research papers in several related disciplines (i.e. Olfaction, Cognitive Psychology, Cognitive Science, Computational Neuroscience, and others) and present and discuss them in the course. We will employ online resources such as simulators, games, and coding challenges to guide hands-on learning and practical application of emerging computing concepts. These interactive tools will provide students with valuable opportunities to experiment, problem-solve, and reinforce their understanding of the subject matter in a dynamic and engaging manner. Additionally, these activities will foster creativity, critical thinking, and teamwork skills, preparing students to excel in the rapidly evolving landscape of emerging technologies.
CIS4930 Intro to Machine Learning
Instructor: Aashish Dhawan
Prerequisites: COP3503, basic Python programming
Description: The focus of this course will be to introduce machine learning concepts with as little mathematics as possible. We will introduce topics like supervised and unsupervised learning, classification, regression, and prediction techniques. Various Algorithms including different regression types, KNN, and K-means clustering will be discussed. You will learn about various issues with machine learning algorithms like overfitting and underfitting. You’ll also learn some methods for improving your model’s training and performance, such as vectorization, feature scaling, feature engineering, and polynomial regression.