Mobile App Development 

Mobile App Development 

Sharif University of technology
Yumcoder

CLASS VENUE

Online Class Link

Saturday and Monday 16:30 to 18:00 (year: 2021)

channel: telegram

group: telegram

COURSE STAFF:

  • Omid Jafarinezhad (instructor): Yumcoder, omid.jn@gmail.com
  • Hamed Khanaki (Head TA): khanaki@ce.sharif.edu
  • AmirHoseinRostami: AHReccese, amirhssin6rst@gmail.com
  • Zahra Yousefi Jamarani: zahra.yousefi@student.sharif.edu
  • Sajjad Rezvani: majidstic@yahoo.com
  • Mahsa Sheikhi: mahsa.shk09@gmail.com
  • Ali Pourghasemi: alipourghasemi78@gmail.com

SYLLABUS

This course covers the fundamentals of mobile app development:

GRADING POLICY

According to the situation‌ (covid-19), the grading policy will be as follows:

  • 4 thematic programming exercises (20%): 1) application architecture, 2) Android, 3) iOS, and 4) Flutter app.
  • Group project (15%): students will develop their own app. Projects are made up of small (2 or 3 people) teams and require strong collaboration. The goals of this activity are to help you develop the confidence, skills, and habits necessary to write real mobile apps while part of a team.
  • Mid-term exam, open book: short and simple exam (10%)
  • Final exam, open book: short and simple exam (15%)
  • 2 issues (10%): solve issues from an open-source project, in addition to building confidence, will also help you to find a suitable job position in the future!
  • 2 short articles (10%):
  • class activities (1)

LECTURES (Android)

Introduction to the course and review common Android design patterns
  • Reading: Java Concurrency (Race Conditions, Volatile, ThreadLocal, Deadlock, Locks, Thread Pools, Reentrance Lockout)
Android Studio and Java concurrency
Java and Android concurrency
Android concurrency and Telegram app (android) architecture
Android concurrency and Telegram app (android) architecture
Android - User Interface: Linear Layout, Relative Layout, Button
Android - User Interface: EditText, AutoCompleteTextView, Checkbox, RadioGroup, Spinner, DialogFragment, Time and Date picker, Menu, Dialogs (ProgressDialog, AlertDialog, CustomDialog)
Android - User Interface: Dialogs, Toasts, Styles, Activities, Fragments, Activity Lifecycle
Android Activity Lifecycle and Fragment
Android Animation
Android - User Interface (2): Grid View, RecyclerView, Cards, Custom View
Android Services : tarted and Bound
Android storages
Android database

LECTURES (iOS)

Swift introduction
Swift programming language: Basics, Basic Operators, Strings and Characters, Collection Types, Control Flow, Functions, Closures, Enumerations, Structures and Classes
Swift programming language: ----
  • Video 04: Link
Swift programming language: ----
Swift programming language: ----
Swift programming language: ----
Swift programming language: ----
  • Video 08: Link
Swift programming language: ----

LECTURES (Flutter)

Flutter: ----
Flutter: ----
Flutter: ----
Flutter: ----
  • Video 05: -


ASSIGNMENTS and DEADLINE

4 thematic programming exercises (20%):

  • application architecture exercise: homework 1 (#hw1_1400), request example, deadline: Thursday, March 11 (extended to March 13), 2021
  • Android exercise: homework 2 (#hw2_1400), deadline: Tuesday, April 27, 2021
  • Swift exercise: homework 3 (#hw3_1400), deadline: Tuesday, June 8, 2021
  • Flutter exercise: date

Mid-term exam(30%):

  • Mid-term exam: Saturday, May 29, 2021
  • Mid-term article: recommended topics (but not limited to these), deadline: Saturday, May 15, 2021
  • Mid-term resolve-issue: recommended projects (but not limited to these), deadline: Saturday, May 15, 2021

Final exam (35%):

  • Final exam: date
  • Final article: date
  • Final resolve-issue: date

Group project (15%):

  • Group project: date


POLICY FOR LATE ASSIGNMENTS

you should always meet your deadlines. Penalties: 

< 8 hours: 10%; 
< 24 hours: 20%; 
< 48 hours: 40%; 
more: no credit.

Our late policy seems a bit harsh at first but here's the reasoning. To balance this late policy I add this sweetner: you get two free 24 hour pass without penalties. These are atomic units -- you can't divide them up before you ask. Take it when you like but put a note in your README.txt file and email the TA

Report Page