Kursöversikt

Course-PM

DIT341 Web and Mobile Development lp1 vt19 (7.5 hp)
This course is given by the Software Engineering division at Campus Lindholmen.

Contact details

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

Co-Teachers
Joel Scheuner (scheuner@chalmers.se) - primary contact for assignments
Gregory Gay (ggay@chalmers.se)

Teaching Assistants
Mohammad Dergham (gusdrgmo@student.gu.se)
Melinda Ivók (gusivkme@student.gu.se)
Ranim Khojah (guskhojra@student.gu.se)
Hanien Kobus (guskobuha@student.gu.se)

Student Representatives

Hassan Mualla (gusmuaha@student.gu.se)
Fredrik Ullman (gusullmfr@student.gu.se)
Nafen Haj Ahmad (gushajana@student.gu.se)

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, including basic technologies for interactive full- stack Web programming (HTML, CSS, JavaScript) and native mobile applications (Android). 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 and mobile applications 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

Schedule
TimeEdit

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 and supervisions, and then applied in the context of an integrated, graded assignment. Assignments are developed in teams of 3 students.

Teaching and Learning Activities

Lectures: There will generally be two lectures per week (Monday and Thursday), with the exception of two slots where we will skip lectures to give students time for self-study based on the provided material (see Schedule). Attendance in the lecture is highly suggested but not mandatory.

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: We will work through a specific subset of exercises as part of the supervision sessions (Wednesdays). This gives students the chance to ask a teaching assistant for help or clarifications with the exercises, as well as get some demonstrations. Attendance in supervision sessions is optional.

Assignment Follow-Ups: Every Friday, each student group is expected to discuss their progress in the assignment with their teaching assistant. For milestone meetings (see assignment description), attendance of the entire group is mandatory (please notify us in advance if a student is sick or has some other important appointment). For follow-up meetings without a milestone attached, at least one member of the team should present the progress to the teaching assistant.

Forum: Any questions related to the lecture, exercises, or assignment can be asked in the Canvas discussion forum. If you have any questions or doubts regarding the course material, this is a good place to check.

Deadlines and Re-Assessment:

All deadlines mentioned in the assignment description are to be considered hard deadlines. For deadlines 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.

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. After re-submission, a new presentation date will be arranged on an individual basis. However, re-submissions will only be accepted until one month after the (first) written exam. After this cut-off, a failed assignment needs to be repeated from scratch (i.e., with a new project topic) in the next iteration of the course.

Changes made since the last occasion

Structural changes: we have improved the structure of the teaching and learning objectives. The assignment is now structured along with defined milestones and assessed in a final presentation. More additional reading and exercises have been added, and the constructive alignment between lecture, exercises, and assignment has been improved.

Content changes: this year, one lecture with networking fundamentals as well as a lecture on cloud deployment has been added. In turn, the guest lectures from the previous iteration have been removed.

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, and Android GUI programming
  • 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 CSS, XML, and JavaScript
  • develop mobile cross-platform applications using responsive design
  • develop and test native Android applications
  • handle database connectivity and asynchronous processing
  • handle lower-level programming complexities such as sockets and threads

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 hall exam at the end of the teaching period. The exam will cover the concepts presented in the lecture, but may also contain program and API comprehension questions. The exam will not require students to "program on paper".

Grading scale: >=50 (of 100) pts G; >=85 (of 100) pts VG

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 or Android client 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