CSC 5930: Software Studio
Kristin Obermyer, PhD
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. Come discover this unique opportunity to acquire and refine skills used daily by professional software engineers.
Topics will include:
- test-driven development
- distributed version control
- continuous integration
- code coverage
- code quality metrics
- cultivating an expressive coding style
- professional tools
- code reviews
- software craftsmanship
- defensive programming
- risk-conscious maintenance
- pair programming
- software experimentation and myth-busting
CSC 5930: Computer Vision
Jason Grant, PhD
Computer vision enables computers and systems to extract and derive meaningful information from digital images, videos, and other visual inputs. The goal of computer vision is much the same as human vision, enabling computers to see, observe and understand. In the course, students will implement, test and evaluate several classical algorithms and techniques such as filtering, feature detection and matching, object recognition, stereo imaging, image alignment and stitching, and motion estimation. We will also cover newer, machine-learning based computer vision.
CSC 5930: IoT Security
James Solderitsch, PhD
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.
Courses for Non-Computer Science Majors
Recognizing the need for all educated people to have a level of fluency in information and computing related topics, the Department of Computing Sciences offers several courses for at any student in the University. These three-credit courses have no prerequisites.
Please note, it is not appropriate for Computer Science or Engineering students to take these courses. They are intended for students in other disciplines.
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.
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.
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.
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.
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.
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.
The interdisciplinary Center for Excellence in Enterprise Technology is dedicated to distinction in the discovery, dissemination and application of knowledge and solutions to contemporary software challenges. Home to the University’s CAVE—an immersive, virtual reality facility—the Center promotes interactive learning across the University and through external academic and industry partnerships.