Special Topics courses for Spring 2018 1. CSC 9010-001 TOP: Seminar in Deep Learning CRN: 32257 W 6:15-9:00pm, Instructor: Benjamin R Mitchell Deep Learning is the study of computational learning systems that utilize repeated composition of simple functional elements to produce complex behavior. These methods are currently state-of-the-art on a wide range of problems, and are deployed in areas like computer vision, natural language processing, audio analysis, and game AI. As a result, they have received a great deal of attention in recent years, both in academia and in industry, with companies like Google and Facebook investing heavily in this area. This class will be a seminar style exploration of the field of deep learning, including both its historical roots and the current state of the art. Weekly assignments will consist primarily of reading selected papers from the literature and writing short responses on them, as well as participating in in-class discussions. Students will also help lead these discussions. The culmination of the semester will be writing a scientific paper (either a review paper giving a survey of the field, or a conference style paper on a student project). 2. CSC 9010-002 TOP: Software Quality Assurance CRN: 32258 M 6:15-9:00pm, Instructor: Saurin Shah Role of Software Quality in SDLC, Test Planning Theory, Model Driven Test Development, Problem Solving, SQA. Student projects and presentations integral to the course. 3. CSC 9010-003 TOP: Containers & Microservices CRN: 32259 R 6:15-9:00pm, Instructor: Juan Carlos Vega 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 o High level overview of Container Technology o Concepts in Technologies o Impact of Container Technology in business and for developers o Container Orchestration o Working with Docker o Implementing Docker Solutions • Microservices o What are Services? o Emergence of Microservices o Microservices Design o Microservices Technologies • Implementing Microservices & Containers o Installing Microservices on Containers o Implementing Docker Swarm o Automation: A DevOps Approach 4. CSC 9010-004 TOP: Cybersecurity CRN: 32260 T 6:15-9:00pm, Instructor: Paul Borchardt This seminar will provide the student with a high-level overview of issues, challenges and solutions surrounding cyber security and the protection of people, assets and information. Topics will include the evolution, present state and future of cyber risk; security fundamentals; cyber security drivers 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. The seminar will include lectures, reading assignments and exercises. The following is a brief outline of the topics to be covered: -The evolution of cyber risk - A history of hacks and attacks. - Security fundamentals -Cyber security business drivers -Organization and governance - Operating models – How do companies manage cyber security programs -Techniques and Technologies -The present and future landscape of cyber risk 5. CSC 9010-005 TOP: Software Studio CRN: 32261 W 6:15-9:00pm, Instructor: Kristin Obermyer This hands-on course is for students who like to be elbow-deep in code! Through targeted lectures, expert guidance and a studio-like environment, we will explore the art and science of creating reliable and maintainable code. Topics will 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 reviews, pair programming, software craftsmanship, software experimentation and myth-busting. Programming experience in at least one modern language is a must for this course, and each student will be challenged at their own level. Very experienced students will have an opportunity to mentor, while fledgling practitioners will benefit from apprenticeship in a supportive setting. Come discover this unique opportunity to acquire and refine skills used on a daily basis by professional software engineers. 6. CSC 9010-006 TOP: Internet of Things CRN: 32262 M 6:15-9:00pm, Instructor: Paul Schragger Internet of Things (IoT) and fog computing imply that a large number of data sources are connected to the internet and will be used by intelligent applications to make smart "domain" decisions. A few for the expected domains, of this type of architecture, are energy generation and distribution, industrial controls, retail, agriculture and personal health. It is mostly the advancements of embedded processes and sensor networks that have made the IOT feasible. Course will cover: Introduction, Domains of application, IOT VS M2M, IOT Management, Protocols, Design Methodologies, Hands-on-Design using Raspberry Pi and Python, Reviewing servers and clouds, and data analytics. 7. CSC 9010-007 TOP: Systems Modeling & Simulation CRN: 32263 R 3:00-5:45pm, Instructor: Vijay Gehlot Modeling and simulation (M&S) is an integral part of system design and development. It allows exploration of design alternatives and workings of systems without significant investment into prototyping. For existing systems, such as environmental or biological, M&S can be used to gain insights into emergent behaviors and impacts. M&S approach is also helpful for re-engineering operational systems for, say, better capacity planning, improved workflow and performance, cost reduction, etc. A report of the National Science Foundation (NSF) Blue Ribbon Panel on Simulation-Based Engineering Science identifies several areas in which M&S can play a remarkable role in promoting developments vital to the health, security, and technological competitiveness of the nation and notes that “…The development of computer simulation has drawn from a deep pool of scientific, mathematical, computational, and engineering knowledge and methodologies. With the depth of its intellectual development and its wide range of applications, computer simulation has emerged as a powerful tool, one that promises to revolutionize the way engineering and science are conducted in the twenty-first century….” This course will focus on Colored Petri Nets (CPNs) based approach to modeling, simulation, and analysis of systems. CPN models are built using CPN Tools, which is a graphical software tool for creating, editing, simulating and analyzing models. This course will introduce the basics of CPNs as well as CPN Tools. We will illustrate the key ideas by means of numerous examples and demonstrations that emphasize practical applications of CPNs and CPN Tools. CPNs have been used to model and analyze hardware systems, software systems, biological systems, network and communication protocols, healthcare systems, workflow and business processes, distributed and resource constrained systems, manufacturing systems, control systems, etc. Evaluation: Grading will be based on class participation, presentation, in-class exercises and term project. 8. CSC 9010-008 TOP: Web Technology CRN: 32264 T 6:15-9:00pm, Instructor: Najib Nadi This course will explore various state-of-the-art web technologies, focusing strongly on web standards, architectural models, and site design and accessibility issues. Both clientside and server-side technologies will be investigated. The first part of the semester will cover several topics from the course text book and will focus on the client side. The second part will be conducted in a seminar format and will cover the server side technologies, exploring selected topics such as web server configuration, server side includes, session management, database interaction, PHP, Ruby on Rails, JSP, AJAX, responsive web design and other newer web technologies. There will be two tests, three short quizzes, several homeworks and a major web design project. Each student will also find, investigate and present to the class a web tool that may be used to enhance a site usage or functionality. For detailed information, check the course web site at: http://tinyurl.com/WebTechS18 9. CSC 9010-009 TOP: Information Security CRN: 32265 M 6:15-9:00pm, Instructor: D. Justin Price Information Security is the study of principles and practices relating to securing computer systems and digital information. This course provides the foundation for understanding the key issues associated with protecting information assets, determining the levels of protection and response to security incidents, and designing a consistent, reasonable information security system, with appropriate intrusion detection and reporting features. Students will be exposed to the spectrum of security activities, methods, methodologies, and procedures. Coverage will include inspection and protection of information assets, detection of and reaction to threats to information assets, and examination of pre- and post-incident procedures, technical and managerial responses. 10. CSC 9010-010 TOP: Neuroeducation in Comp Sci CRN: 32266 M 6:15-9:00pm, Instructor: TBA Research shows that there is a remarkable shortage of computer and information scientists to fill the burgeoning number of positions in these fields. The goal of the course is to offer opportunities for students to become familiar with the area of education in the computing sciences with particular emphasis on the new field of neuroeducation, with applications to adult training and professional learning. The course will focus on two main issues: 1) Teaching and learning in the computing sciences. In this context, the course will cover current research on: methods of teaching, learning theories pertaining to the development of students’ programming and computing skills, teaching environments, and paradigms meant to enhance and optimize skills in computer science. 2) Developing a practical understanding of neuroscience underlying learning. Neuroscience attempts to explain the workings of the brain and to contribute to our basic understanding of the neural mechanisms underlying human development and learning. Recent development of brain imaging techniques such as electroencephalography (EEG), have provided additional opportunity for neuroscientists to explore the functional organization of the human brain. Education is one discipline, which, by incorporating neuroscience, can enhance our understanding of mental and physiological processes involved in learning. The attempts towards connecting neuroscience, cognitive science, psychology, and education have resulted in the emergence of a growing interdisciplinary field of study, which has been labeled as neuroeducation.