CSc 59866/59867
Senior Capstone Course


Course Description

In this project-based course, students are grouped into teams to work on building apps for iOS, Android, web, and Windows/Mac platforms. The capstone course will last two semesters. In the first semester, we will study how to build, test, and deploy mobile, web, and desktop apps from a single codebase. The second semester will focus on implementation of exciting real-world problems, including projects of practical importance in the fields of image processing, computer vision, computer graphics, and gaming. Projects will be selected based on the interests of the students and professor.

Two-Semester Course

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 research similar apps in their chosen topic and resolve how their own app will distinguish itself from the available offerings, present these findings to the class, demonstrate a deep understanding of the principles and algorithms that the app will implement, 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.

Programming

Building apps for the iOS, Android, and the Windows/Mac desktop environments, can require the programmer to learn an array of tools and languages. For instance, Swift or Objective C have been used to program for the iOS platform. Java, Kotling, C++, and C# can be used for Android App development. This array of options can make app development unwieldy. As a result, we will be learning how to use the Flutter framework and the Dart programming language to make iOS, Android, and web apps from a single codebase. The course material will be entirely self-contained.

Course Objectives

Through this large project of considerable technical depth, students are expected to expose themselves to the forefront of app development, with possible applications in image processing, graphics, vision, and gaming. 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:

Piazza

Resources