IT1901

  • Velkommen til IT1901 Informatikk prosjektarbeid 1

  • Welcome to IT1901 Informatics, Project 1

Høst 2024 / Fall 2024

Agenda

  • Om IT1901 Informatikk prosjektarbeid 1

  • Smidig utvikling - Utviklingsmetoden Scrum

  • Oppsummering

Viktigheten av IT-systemer

“Software defines, drives, and enables innovation in the systems we use in essentially all areas of modern human activity, including science, engineering, business, government, entertainment, education, energy, defense, health and medicine. As reliance on software grows, society makes exponentially greater demands on the diversity and quality of the software being produced”

Call for position papers, Workshop on the Future of Software Engineering Research, International Symposium on the Foundations of Software Engineering, 2010

Introduksjon til IT1901

Smidig og moderne praksis og konstruksjon

  • praksis i smidige prosjekter

  • verktøy for smidig utvikling

  • mer om objektorientert design

  • enkle, moderne arkitekturer

    • desktop

    • mobil

    • web

IT1901 Goals

  • improve practical software development skills and prepare a solid base of current best practices

    • working with various architectures

    • source code management

    • issue tracking

    • using build tools

    • automatic testing

    • continuous integration

    • documentation

    • code quality

Tools used in IT1901

In the course we will use several tools:

  • Git for source code management

  • GitLab for collaboration: repository sharing, issue tracking, issue boards, code review …​

  • Eclipse Che - automatically spin a workspace that is accessible via a browser to work, collaborate, evaluate …​

  • VSCode - recommended IDE to use as it is the same as the gitpod environment

  • sdkman - recommended tool to manage JDK and Maven

Individual and Group work

  • there is one individual development assignment (mandatory to pass to get a grade)

  • there are 3 group deliverables

  • one individual report

  • students will work in groups of 4

  • fill in the form announced on Blackboard to be assigned to a group

Deliverables and tasks

  • go through the available materials

  • work on individual assignments

  • until you are assigned to a group you must

    • set up your development environment

    • checkout, build and run the todo list example

The first task for the group is to select the domain.

Timeline

  • week 34 - start on individual assignment, intro

  • week 35 - establish groups and start group work, git++

  • week 36 - deliver individual assignment

  • week 38 - Deliverable 1 (10% / group) (basic modular JavaFX application)

  • week 41 - Deliverable 2 (10% / group) (improved modular application)

  • week 46 - Deliverable 3 (50% / group) (final technical)

  • week 47 - Deliverable 4 (30% / individual) Reflection report

Deadlines

  • the deliverables are due on Thursdays at midnight in the week indicated

  • if you are late you need to inform the TA

Evaluation and feedback

  • the point of the tasks is to get you produce high quality code

  • focus is placed on the repository. it is not just the end result that is evaluated but the journey as well

  • deliverables 1-3 will be basically snapshots of the repository at given times

  • we will strive to provide quick feedback based on the repo activity

Using AI tools and other resources

  • Each group will have to document:

    • what tools are used and for what purpose (document)

    • snipets of code generated need to reference properly the source (use comments)

    • snipets of code copied from stackoverflow or similar need to reference properly the source (use comments)

About domain selection

  • choose an app / service that you know well and select a couple of features to implement during the semester

  • point is to learn by implementing these using the required architectures

  • we are not looking for quantity but for quality, so just few core features will suffice

About domain selection (2)

  • the chosen app needs to be suitable for a cloud based service

  • there must therefore be some dynamic data per user managed by the server.

  • eg. a (currency) calculation will NOT fit such a project.

  • one good starting point are the cases from the HCI course (MMI)

Referansegruppe

  • Trenger 3-5 medlemmer til referansegruppe i faget

  • Mulighet til å påvirke kurset og forbedre kurset for de som skal ta det senere år

  • 3 møter; uke 5, uke 9 og etter kursslutt

  • Ca. en time per møte

  • Meld deg i pausen om du er interessert!

  • If until next week there are no volunteers we will randomly select 5 students

Spørsmål underveis i kurset

  • Ta opp faglige spørsmål og spørsmål om gruppene med studentassistent eller undervisningsassistent for gruppen

  • Spørsmål om organisering av faget og forslag til forbedringer tas opp med medlemmer i referansegruppen

Gruppekontrakt

  • Minimumskrav til avtale:

    • Tilstedeværelse

    • Tidsbruk

    • Forventninger til den enkeltes bidrag

    • Hva som skjer ved avvik eller uenigheter

Gruppekontrakt skal godkjennes av studentassistent, signeres av alle gruppemedlemmer - og leveres på Blackboard

Group registration form

  • The form link is on Blackboard

  • https://s.ntnu.no/it1901groups

  • deadline for answering is on September 1st, 23:59

  • in the group form you are expressing preferences

  • course staff will make any changes necessary to get the best group composition possible

Tasks for this week

  • fill in the form for group formation

  • brush up and revisit Java and JavaFX (useful links on BlackBoard)

  • prepare ideas for the project - so you are ready when the groups are done

  • prepare your development environment - git, sdkman, vscode, maven etc

  • log in to https://gitlab.stud.idi.ntnu.no/

  • ask access to https://gitlab.stud.idi.ntnu.no/it1901/students-2024/sandbox and create a test repo

  • start with the individual mandatory assignment as soon as it is available (probably tomorrow, latest on Monday morning)

  • follow BlackBoard for updates

Norwegian University of Science and Technology