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:
-
To gain deeper insights into the workings of real world software engineering.
-
To receive valuable hands-on experience in basic research.
-
To better understand how to build, test, and deploy mobile, web, and desktop apps from a single codebase.
Piazza
- 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 team@piazza.com.
- Find our class page
here
Resources
-
Course Video:
Flutter & Dart - The Complete Guide [2023 Edition] by Maximillian Schwarzmuller
on udemy.com
course
on Udemy.
-
Main Text:
Flutter for Beginners: An Introductory Guide to Building Cross-Platform Mobile Applications with Flutter 2.5 and Dart
by Thomas Bailey, Alessandro Biessek, and Trevor Wills,
Packt Publishing, 2nd Edition, October 18, 2021.
Lectures
Tuesday/Thursday 11:00am-12:15pm, NAC 6/306 (Fall 2023)
Instructor
Professor George Wolberg
Office Hours: Tuesdays, 1:00pm-2:00pm, NAC 8/202G
wolberg@ccny.cuny.edu
George Wolberg, August 24, 2023