Course Syllabus
App Development |
Semester & Location: |
Spring 2025 - DIS Stockholm |
Type & Credits: |
Elective Course - 3 credits |
Major Disciplines: |
Computer Science, Information Science, Design |
Prerequisite(s): |
One year of computer science, a course in algorithms and data structures, knowledge of one object-oriented programming language (such as Javascript, C#, Java, or C++). Basic knowledge of web development and databases is recommended. |
Faculty Members: |
Ivan Dimoski (current students please use the Canvas Inbox) |
Program Contact: | |
Program Director: |
Natalia Landázuri, Ph.D. |
Time & Place: |
Tuesdays, 16:25 – 19:20 Classroom: 1C-505 |
Course Description
Whether your company is a streaming giant or a startup for umbrella sharing, bringing your business and ideas to your customers, through smartphones and other computing devices, is essential. Thanks to the development of apps, smartphones have become an indispensable component of everyday activities. We no longer carry a phone around, but rather a complete computer capable of mediating, supporting, accelerating, and interpreting human needs. Apps are the heart of the popularity and utility of smartphones, making mobile development an increasingly lucrative field to work in. In addition, modern full-stack development has come a long way and we are now able to develop apps for multiple platforms at once, and deploy them to Android, iOS, Web, Desktop and more.
In this course, you will learn programming basics to develop cross-platform Android, iOS and Web mobile applications, with a strong focus on front-end and user interaction, with the ultimate goal of developing user-friendly and easy to products.
Learning Objectives
Cross-platform mobile development
Acquire a background in the processes involved in creating cross-platform mobile applications, from conception, through development, to publication.
Development tools
Flutter
Flutter is an open-source UI software development kit created by Google. It is used to build natively compiled applications for mobile, web, and desktop from a single codebase. Flutter uses the Dart programming language and provides a rich set of pre-designed widgets and tools that allow developers to create visually appealing, fast, and responsive user interfaces. It emphasises fast development, expressive and flexible UI, and native performance.
Dart
Firebase
Firebase is a comprehensive development platform by Google designed to help developers build, improve, and grow applications. It offers a suite of cloud-based services, including real-time databases, authentication, cloud storage, analytics, and server-less computing, among others. Firebase simplifies backend development, enabling developers to focus on creating high-quality user experiences without managing infrastructure.
Faculty
Ivan DimoskiSoftware engineer with 16+ years of experience with app development. Co-founder and CTO at Dreamseer, a journal app that interprets users dreams by leveraging natural language processing and generative AI technologies for text, image, sound, and video (2023–present). Previous experience include Tradera, Sweden's biggest circular marketplace and sustainable shopping app (2020–2023) and Truecaller, beloved caller ID and spam protection app with 1B+ downloads and 400M+ monthly active users (2015-2020). B.Sc. in Information Science and Computer Engineering, Ss. Cyril and Methodius University (2011). With DIS since 2024. |
Readings
Additional sources include scientific papers, blog posts and videos available online.
Field Studies
Possible visits may include:
• Spotify: https://open.spotify.com/
◦ The once tiny startup is now a tech giant. The Stockholm offices are where it all started.
• Done: https://www.doneservices.se/
◦ Flutter first company that greatly simplifies the process of renovating a home
Approach to Teaching
We will implement a hands-on approach to learning that incorporate multiple opportunities to try and test implementations with real live coding, pair and mob programming sessions. Every theoretical concept covered in the course is accompanied by a practical exercise to deepen and interconnect understanding. Students will develop a final project, where they will utilize skills learned during the course to develop apps.
Expectations of the Students
- Students should participate during lectures, discussions, live coding, group work and exercises.
- Laptops should be used at all times for development, note‐taking, fact‐checking, or assignments in the classroom.
- Reading must be done prior to the class session. A considerable part of the class depends on class discussions.
- Students need to be present, arrive on time and participate to receive full credit. The final grade will be affected by unexcused absences and lack of participation. The participation grade will be reduced by 10 points (over 100) for every unexcused absence.
- Classroom etiquette includes being respectful of other opinions, listening to others and entering a dialogue in a constructive manner.
- Students are expected to ask relevant questions in regards to the material covered.
- Students are expected to complete a series of out-of-class assignments
Evaluation
To be eligible for a passing grade in this class, all of the assigned work must be completed.
Students are expected to turn in all the assignments on the due date. If an assignment is turned in after the due date, the grade of the assignment will be reduced by 10 points (over 100) for each day the submission is late.
During the semester students will work on multiple assignments to practice the skills learned. At the end of the semester, students will work on a final project in small teams to put all new skills in practice. Students will develop a fully functional full-stack application. The final project will be presented to the class, and tested by the peers. Presentations and project materials will be part of the grade.
Grading
The factors influencing the final grade and the proportional importance of each factor is shown below:
Assignment |
Percent |
Participation (includes participation in class/exercises/projects/field studies, as well as behaviour that is beneficial to the learning process) |
20% |
Mandatory assignments |
10% |
Final Project 1: Basic Functionality and Presentation |
50% |
Final Project 2: Extra Functionality |
20% |
Academic Regulations
Please make sure to read the Academic Regulations on the DIS website. There you will find regulations on:
DIS - Study Abroad in Scandinavia - www.DISabroad.org
Course Summary:
Date | Details | Due |
---|---|---|