Senior Capstone Course
In this project-based course, students are grouped into teams to work on
projects of practical importance in topics such as digital image processing, computer
graphics, computer vision, and machine learning.
The capstone course will last two semesters.
In the first semester, we will study key principles in one of these selected fields.
The second semester will focus on implementation of exciting real-world problems.
Available project topics span the fields of image processing, computer vision, computer graphics,
and machine learning.
Projects will be selected based on the interests of the students and professor.
In the first semester, after fundamental principles are introduced,
each team chooses one topic and performs research and development
to specify deliverables, milestones, and implementation considerations.
Teams consist of up to three students per group.
Each group must read a collection of papers on their chosen topic,
present them to the class, demonstrate a deep understanding of
the principles and algorithms, and outline a working plan to implement
the software complete with milestones and deliverables.
In the second semester, each team continues their project with detailed
design, implementation, integration, testing, experiment evaluation.
The project is finally delivered with full documentation at the end
of the second semester.
Depending on the project, programming will be done in Python or C/C++.
Machine learning projects will likely be done in Python with Scikit-Learn and Tensorflow.
High-level C++ GUI toolkits such as Qt (qt.digia.com) will be
introduced to the students so that they can integrate their work
directly into a professional graphical user interface.
The OpenGL graphics API, including the GLSL shading language, will be introduced
so that the student can implement high quality graphics rendering using the same tools
that are currently in use by producers of video games and computer animations.
Background in image processing, computer graphics, or computer vision
is helpful but not necessary.
The course material will be entirely self-contained.
Through this large project of considerable technical depth, students are
expected to expose themselves to the forefront of research and development
in digital imaging with a concentration on image processing, graphics,
Furthermore, students have a chance to apply their software engineering
knowledge in a large project full of technical challenges.
The goals of the course are to:
To gain deeper insights into the workings of real world software engineering.
To receive valuable hands-on experience in basic research.
To better understand machine learning and non-conventional imaging algorithms and systems
in an efficient and effective manner.
- This term we will be using Piazza for class discussion.
- The system is highly catered to getting you help fast and efficiently from classmates,
the TA, and myself.
- Rather than emailing questions to the teaching staff,
I encourage you to post your questions on Piazza.
- If you have any problems or feedback for the developers, email firstname.lastname@example.org.
- Find our class page
Hands-On Machine Learning with Scikit-Learn and Tensorflow: Concepts, Tools, and Techniques to Build Intelligent Systems
by Aurelien Geron, O'Reilly Media Inc., 2017.
by Ian Goodfellow, Yoshua Bengio, and Aaron Courville,
MIT Press, 2016.
Deep Learning, vols. 1 and 2: From Basics to Practice
by Andrew Glassner, Imaginary Institute, 2018.
Deep Learning Video:
Andrew Glassner's crash course on deep learning.
It was presented at the ACM SIGGRAPH 2018 computer graphics conference in August 2018.
Notes accompanying Glassner's Deep Learning Crash course:
Part 1 and
Machine Learning Video:
Andrew Ng's Machine Learning course
Text accompanying Andrew Ng's Machine Learning Video:
Machine Learning Yearning book draft
Machine Learning with Scikit-Learn (PyCon 2015)
Video Sequence on Linear Algebra, Machine Learning, Neural Networks:
3Blue1Brown Youtube channel
Convolutional Neural Networks Video: Stanford CS 231n course (2018) on cs231n.stanford.edu
MW 12:30-1:45PM, NAC 7/219 (Fall 2019)
Professor George Wolberg
Office Hours: Monday, 3:30pm-4:30pm, Room NAC 8/202N
Office Hours: Wednesday, 3:30pm-4:30pm, Room NAC 8/202N
NOTE: Always include course number (CSc 59866) in email subject line
George Wolberg, August 28, 2019