Course Details

Topics

In this course we will look at a broad range of topics from computer vision, graphics, geometry, human-computer interaction (HCI), and audio processing related to the creation and manipulation of digital content.

Types of Course Content:

  • Theory related to representing and manipulating different types of media.
  • Practical experience with computational tools for editing media. This means assignments where you will be expected to use creative software to actually create things… It also means some lectures will be tutorials on how to use such software, with extra commentary connecting features to the aforementioned theory you will learn.
  • Practical research skills, e.g.,:
    • Paper reading and mock-reviewing
    • Learning and using tools to make better papers, videos, and websites for your projects.

Sample Topics (subject to change):

  • Understanding the relationships between and corresponding merits of:
    • Continuous vs discrete representations
    • Structured vs unstructure representations (e.g., raster vs vector)
    • Primal vs Frequency / basis domain representations
  • How to use basic features of various content creation tools, including:
    • Gimp and InkSkape for creating graphics
    • Jinja for generating websites in Python
    • Adobe Photoshop, Illustrator, Premiere, and possibly After Effects (you do not need to have these already to take the class; more on that later)
  • Advanced image editing Filtering with Bilateral, Local Laplacian, and Nonlocal Means Filtering.
  • Basic audio analysis and manipulation
    • Beat Detection
    • Pitch and speed manipulation

Assignments

TBA

Academic Integrity

Apparently it is encouraged to include a section on academic integrity on course websites. This is a small grad course, so I really hope everyone will know better at this point, but for good measure....

Basics: You are expected to abide by the Cornell University Code of Academic Integrity. More generally: I will assume that any work you present as your own is, in fact, your own. You are welcome to read or watch whatever material is helpful, but always build your own implementation of solutions to assignments. You will be allowed to use third party code in some situations for projects, but should always report this in your writeup.

Collaboration: Group policies may vary from assignment to assignment. In general, I am happy for you to discuss assignments with each other, but do not share code unless it is explicitly stated that this is ok, e.g.,:

  • if you are in a group for a group assignment.
  • if you are given permission by me, in which case I may ask you to post said code in a forum where the whole calss has access to it.

If you feel you can’t complete the work on your own, come talk to me and/or your advisor and we can help you figure out what to do. Think before you hand in! Clear-cut cases of dishonesty will result in failing the course.