CSS 490: Multimedia Data Processing
Description: Currently, multimedia including image, video, and audio accounts for 60% of internet traffic, 70% of mobile phone traffic, and 70% of all available unstructured data. Multimedia data processing techniques are critically needed in applications ranging from entertainment, science, to education and business forecasting, to name a few.
In this course, we will discuss multimedia data processing concepts and overview current approaches for multimedia data compression, indexing and retrieval. This course has both theoretical and practical components, where many basic concepts are illustrated through real-world multimedia applications. Students will also learn to apply multimedia data processing techniques to practical problems.
CSS 590 A: Data Provenance Techniques
Instructor: Asuncion, Hazeline
Days: T Th
Description: This course will first introduce students to the concept of data provenance. Understanding the sources or history of data sets, known as data provenance, is important not only in scientific research, but in any area that manages and manipulates data. The course will also provide a survey of the various provenance techniques and tools. Students will learn the pros and cons of each technique/tool and will gain practice in selecting and using the most appropriate technique for a given context.
CSS 490 A: Security and Privacy in Emerging Environments
Instructor: Lagesse, Brent
Computational systems and networks continue to emerge in many new environments that present different threats and constraints from traditional desktop computing environments. This course will explore security concerns and potential solutions in a variety of emerging environments and non-traditional computing platforms. Potential environments include vehicular networks, electronic voting, sensor and mobile ad-hoc networks, mobile phone systems, and other pervasive systems. Students will explore techniques for designing useable security mechanisms, managing trade-offs in resource-constrained systems, and reasoning with uncertain information.
CSS 590/490 B: Collaboration in the Workplace: Using Video Analysis to Study Collaboration among Professional Software Developers
Instructor: Socha, David
Days: T Th
Description: Are you interested in how people collaborate in a workplace setting? Are you interested in how different modes of communication (such as speech, gestures, body orientation, and inscriptions) and materials mediate the processes by which people work together? Do you want to experience the process of doing new and exciting research by analyzing videos of professional software developers doing their actual work in their place of work?
This course focuses on ways to think about, analyze, and describe collaboration among professional software developers in the workplace. It draws from social science research traditions that study professionals at work in order to understand the nature of collaboration in workplace settings. Following best practices, students will work in small groups analyzing videos of professional software developers collaborating in the workplace. Each group will address a particular research question chosen from a provided set. Students will learn: 1) underlying theoretical frameworks of collaboration (such as social cognition, and distributed cognition), 2) specific data analysis techniques (such as interaction analysis, and ethnomethodology), and 3) how to describe and document their research results. Students will gain additional skills by presenting their in-progress results as the Undergraduate Research Symposium at UW Bothell. Note that this course does not need any specific CSS knowledge, and could be suitable for students in areas such as CSS, Community Psychology, Media & Communications Studies, and Business.
CSS 490 D: Algorithms in Bioinformatics
Instructor: Kim, Wooyoung
Days: M W
Description: Bioinformatics is one of the most exciting fields with many computer science applications along with computational methods. Computer scientists have been involved in this field by developing algorithms and implementing them as tools to help create, analyze and manage biological data. Instead of learning about those computational tools, this course will focus on learning the algorithms that implemented the tools and computational models applied to bioinformatics. Students will learn how those algorithms have been developed to solve a variety of bioinformatics problems: Dynamic programming for DAN/protein sequence alignment; Graph algorithms for delineating dynamics of biological processes, Pattern matching technique to search databases; Combinatorial algorithms for DNA sequence processing; Hidden Markov models for sequence annotation; Statistics for haplotype frequency inference; Clustering and Trees for gene expression analysis, etc. This course also uses Python programming language to implement these algorithms for given problems. Students will conduct group projects which develop bioinformatics tools/platforms with any programming language including Python.
Prerequisite: CSS 343
CSS 490 E: Elements of Scientific Computing with Julia
Instructor: Ferracina, Fabiana
Description: In this course we will explore a variety of problems (e.g. recommender systems, data classification, etc) whose solutions rely on numerical and statistical methods such as: numerical integration, solving systems of linear equations, linear least squares and optimization. We will be learning and using Julia, a high-level, high-performance, dynamic programming language, specially designed for parallel and technical computing. Although we will focus most of the course on learning the mathematical toolkit of scientific computing, we will also spend some time on collaborative development and presentation tools (i.e. version control systems and LaTeX). The course will be designed to be self-contained, so prior knowledge of linear algebra and statistics is not required, but might make the concepts more interesting. The course will also serve as an overview of topics in mathematical optimization, statistical learning, data analysis and parallel computing.
CSS 290 A: Service-Based Learning: Teaching Coding in Middle School
Instructor: Gruenbaum, Peter
Middle school is the age where kids often decide what they want to do with their lives. The problem is, hardly any middle school educators know how to code, so how can kids learn how cool computing is? That's where you come in.
This class teaches you how to use Scratch, a drag-and-drop programming language developed by MIT, and then gives you training in how to work with middle school students. You'll work together to develop lesson plans and then teach middle school students how to create a simple computer game in an afterschool program. It's an opportunity to share your knowledge and learn some valuable skills in teaching and communication.
CSS 490B: Wireless Networking and Pervasive Computing
Instructor: Thamilarasu, Geethapriya
Days: M W
Time: 3:30 - 5:30
This course explores current state of the art in wireless networking, mobile and pervasive computing with emphasis on network architectures and protocols. Important topics include wireless network access technologies, wireless LANs, wireless MANs, mobile ad hoc networks, smart phones and tablet computers, sensor networks, RFID technologies, Zigbee, mobile OS (Android and iOS), location-sensitive applications, the Internet of things, security and privacy control, and mobile cloud computing.