Kursöversikt

Course-PM

DIT341 Mobile and Web Development lp1 HT20 (7.5 hp)

Course is offered by the department of Computer Science and Engineering

Contact details

Examiner / Course Responsible
Philipp Leitner (philipp.leitner@chalmers.se)

Co-Teachers
Joel Scheuner (scheuner@chalmers.se) - primary contact for assignments and supervisions

Coaches (Teaching Assistants)
Haider Ali (gushaial@student.gu.se)
Ilja Pavlov (guspavloil@student.gu.se)
Hartmut Fischer (gusfisha@student.gu.se)
Jonatan Vaara (jonatan.vaara94@gmail.com)

Student Representatives

Bhavya Shukla (gusshubh@student.gu.se)

Liv Mari Lervik Alterskjaer (gusalteli@student.gu.se)

Mohammad Nablo (gusnabmo@student.gu.se)

Altug Altetmek (altetmek_altug@hotmail.com)

Chalmers IT Support
Contact support@chalmers.se if you don't have a CID or if forgot your credentials. A CID is required for signing into GitLab used for the assignments.

Student Office
Contact student_office.cse@chalmers.se for questions related to the course administration (e.g., registration, signup, grades in LADOK).

CSE Student Pages

Course purpose

This course covers key concepts, technologies, and skills for server-side and client-side Web and mobile programming, with a particular focus on basic technologies for interactive full- stack Web programming (HTML, CSS, JavaScript). The concept of responsive design will be used to show commonalities and differences of Web and mobile applications. Through this course, students will learn how to develop Web applications for desktop and mobile with dynamic and interactive contents. Through the example of web and mobile applications, the course also discusses principles of how to write distributed applications in general.

Schedule

Link to schedule

Course literature

There is no course book for this course. Resources (e.g., slides) are provided on the Schedule page. Further, students are expected to work through a collection of (freely available) mandatory Reading and Exercises.

Course design

The course emphasizes problem-based learning. Basic concepts of Web and mobile development are presented in the lecture, exercised in homework, reading, and exercises, and then applied in the context of an integrated, graded assignment. Assignments are developed in student teams.

Teaching and Learning Activities

Due to the current COVID-19 situation, the course design focuses on remote teaching. There will be a limited number of presence teaching elements, but attendance in presence teaching will be optional and no information will be communicated exclusively through presence teaching.

Lectures: There will generally be two remote lectures per week (Monday and Thursday), with possible exceptions. Attendance in the lecture is highly suggested but not mandatory. Lectures will be streamed through Zoom, and recordings will be made available.

Exercises and Reading: Each lecture will contain pointers to specific resources in the Exercise list, and students are expected to work through at least the mandatory reading before the next lecture. These exercises contain detailed practical information that will be required to succeed in the assignment, and concretise the concepts presented in the lecture.

Supervisions: Supervisions will be held irregularly (depending on demand / need) on Wednesdays. Supervisions will be streamed and recorded (similar to lectures). The focus of supervision sessions is to familiarize students with the technology needed for the project. Attendance in supervisions is highly recommended.

Assignment Progress Meetings: Every Friday, each student group is expected to discuss their progress in the project with their assigned coach (teaching assistant) via a video call. Attendance of the entire group is mandatory (please notify us in advance if a student is sick or has some other important appointment). Every other week is a milestone week, with clearly defined deliverables for each milestone. If not all requirements for a milestone are reached, the missing functionality has to be submitted in the following progress meeting,

Slack: Support throughout the week will be provided via a joint Slack channel.

Deadlines and Re-Assessment:

All deadlines mentioned in the assignment description are to be considered hard deadlines. For deadlines 0, 1 and 2, work that is missing or considered insufficient can be improved until the next deadline (e.g., if we judge the backend built for deadline 1 not to be sufficient, an improved version can be presented along with the Web frontend at deadline 2). However, at deadline 3 (the final presentation) the assignment will be judged in whatever state it is in at the time of submission. If this results in a failed assignment, it needs to be re-submitted for re-assessment after the end of the course.

Assignment Re-Assessment: If during the final presentation, the assignment is judged to not be sufficient as per the specification, students have up to two chances to resubmit an improved version. The first deadline for re-submission will be one month after the end of the course. The second deadline will be before Christmas.

Changes made since the last occasion

  • Given the current COVID-19 situation, most of the presence teaching elements of the course have been replaced through remote teaching (video lectures, video calls, Slack) for this course iteration.
  • Based on student feedback, Android native programming has been removed from the course syllabus. Instead, the course now focuses more strongly on responsive Web development.
  • We are still adapting the size of the project as well as optimal team sizes based on our experiences in the previous two iterations.

Learning objectives and syllabus

Knowledge and understanding

  • define and contrast client-side and server-side web and mobile development
  • explain the concept of full-stack development
  • describe the key concepts and methods for web and mobile application
    development, including session management, database connectivity, asynchronous
    processing (AJAX), responsive design
  • explain different programming techniques for developing web and mobile
    applications with dynamic and interactive contents
  • elaborate on basic concepts of distributed systems programming, such as processes
    and concurrency

Competence and skills

  • develop Web and mobile applications with dynamic and interactive contents
  • design web layouts with technologies such as HTML, CSS, and JavaScript
  • develop full-stack applications using modern web libraries and frameworks
  • develop mobile cross-platform applications using responsive design
  • handle database connectivity and asynchronous processing

Judgment and approach

  • reflect on how web and mobile programs are written, and how different components integrate, thus designing software efficiently

Link to the syllabus: http://kursplaner.gu.se/pdf/kurs/en/DIT341

Examination form

This course consists of two submodules, which are graded independently. Passing the overall course requires a G or better in both submodules. A VG in the overall course requires a G in the assignment submodule and a VG on the written hall exam.

Exam submodule: This submodule is graded through a written exam at the end of the teaching period.

Assignment submodule: This submodule will be graded during the final presentation. A grade G will be given if all minimum requirements as documented are fulfilled. Note that cases of plagiarism (i.e., copied code) will lead to a U even if the minimum requirements are fulfilled. Further note that the program needs to actually work, i.e., if the solution is not testable because, for instance, the backend consistently crashes during testing, a U will be issued (even if it is just a "small" bug that led to this problem). Further, we reserve the right to reject any solution that does not follow the provided templates - if we can't launch and test the assignment, we may not grade it.

Kurssammanfattning:

Datum Information Sista inlämningsdatum