This course and its co-requisite lab course will introduce students to the methods and tools used in data science to obtain insights from data. Students will learn how to analyze data arising from real-world phenomena while mastering critical concepts and skills in computer programming and statistical inference. The course will involve hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. The course is ideal for students looking to increase their digital literacy and expand their use and understanding of computation and data analysis across disciplines. No prior programming or college-level math background is required.
This is the co-requisite lab to COMS BC 1016 (Introduction to Computational Thinking and Data Science)
This course will introduce students to the methods and tools used in data science to obtain insights from data. Students will learn how to analyze data arising from real-world phenomena while mastering critical concepts and skills in computer programming and statistical inference. The course will involve hands-on analysis of real-world datasets, including economic data, document collections, geographical data, and social networks. This class is ideal for students looking to increase their digital literacy and expand their use and understanding of computation and data analysis across disciplines. No prior programming or math background is required.
Independent Study. Instructor permission required.
Many stages of state-of-the-art robotics pipelines rely on the solutions of underlying optimization algorithms. Unfortunately, many of these approaches rely on simplifications and conservative approximations in order to reduce their computational complexity and support online operation. At the same time, parallelism has been used to significantly increase the throughput of computationally expensive algorithms across the field of computer science. And, with the widespread adoption of parallel computing platforms such as GPUs, it is natural to consider whether these architectures can benefit robotics researchers interested in solving computationally constrained problems online. This course will provide students with an introduction to both parallel programming on CPUs and GPUs as well as optimization algorithms for robotics applications. It will then dive into the intersection of those fields through case studies of recent state-of-the-art research and culminate in a team-based final project.
Introduction to access technology and the development of accessible systems. In this course, students build and evaluate various access technologies. Topics include: text-to-speech, speech recognition, screen readers, screen magnification, alternative input, tactile displays, and web transformation. This course teaches students the deep inner workings of today’s user interface technology and serve as a guide for building the user interfaces of the future.
In this course, we explore the variety of roles that computation can play in the analysis, creation, and performance of music. We start with the fundamentals of sound in the digital domain, covering issues of representation and audio synthesis. We then move through various synthesis techniques including the additive, subtractive, frequency modulation (FM), and amplitude modulation (AM) synthesis. After covering some core DSP techniques, we put these concepts into performative practice by exploring “live coding”. In the space of live coding, we examine various programming language designs to understand how various domain specific languages (DSLs) support live coding. For the third module, we turn our focus to automated composition and analysis, addressing challenges in music information retrieval, generative art, and autonomous improvisation systems. All the while, we continue to develop our fluency in live coding by putting new topics to practice.
Ubiquitous computing is creating new canvases and opportunities for creative ideas.
This class explores the use of microprocessors, distributed sensor networks, IoT,
and intermedia systems for the purposes of creative expression. The course is delivered
in a mixed lecture and lab format that introduces the fundamental concepts
and theory behind embedded systems as well as issues particular to their creative
employment. The key objective of the course is for students to conceive of and
implement creative uses of computation.
This is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit.
This is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit.
This is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit.
This is an undergraduate seminar for special topics in computing arranged as the need and availability arises. Topics are usually offered on a one-time basis. Participation requires permission of the instructor. Since the content of this course changes each time it is offered, it may be repeated for credit.