Course Syllabus
App Development |
Semester & Location: |
Fall 2024 - 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, to 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 emphasizes 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 serverless 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 15+ years of experience with app development. Co-founder and lead engineer for 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.
• Truecaller: https://www.truecaller.com/
◦ Truecaller identifies and blocks calls for over 400M+ active users with 1B+ downloads
• 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. 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, peer-led oral presentations, discussions, 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. Remember to be in class on time!
- 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 lab 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 behavior that is beneficial to the learning of peers) |
10% |
Mandatory assignments |
40% |
Final Project 1: Basic Functionality and Presentation |
30% |
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 |
---|---|---|