INF5750 - Introduction Knut Staring knutst@{ifi, gmail}...DHIS Android SDK Android App DHIS database...

21
INF5750 - Introduction Knut Staring knutst@{ifi, gmail}

Transcript of INF5750 - Introduction Knut Staring knutst@{ifi, gmail}...DHIS Android SDK Android App DHIS database...

INF5750 - Introduction

Knut Staring knutst@{ifi, gmail}

Lecture 1 - overview

● Background to the course ● Content and expectations ● Assignments and group work ● Maven build system ● Revision control system ● Object-Relational Mapping

Prerequisites

○  Thorough general programming background ○  Java and Javascript ○  Willingness to read up on technologies without

detailed guidance ○  Ability to collaborate on substantial group projects ○  Interest in links between software engineering,

platforms and organisations

A decade of INF5750 – philosophy, socio-technical origins and evolution •  Information Systems

–  Technology and organizations

•  ICT meets social sciences –  history, economics, business, sociology,

philosophy, anthropology •  Changing role of ICT => web, open source,

infrastructures, platforms, social media •  Changing tech (eg ECMAScript® 2015) •  Related: 5210, 5761, 5850

Three types of Apps Trois types d’Apps

Web App (desktop or mobile)

Integrations Android App (offline)

DHIS API

DHIS SQL views DHIS Business Logic

DHIS Android SDK

Android App

DHIS database

DHIS Standard UI DHIS web apps

Integra-tions

System X

NEW! APPs SDK

Custom Web Connector

[YouTube]

Android, SMS and USSD

Web technology stack

Client-side Javascript ES6, Angular, React Server-side Java Spring, Hibernate Storage PostgreSQL/PostGIS SQL

INF5750 Content

○  Principles: e.g. ORM, Dependency Injection, Testing

○  Common server components (a smattering of Spring, Hibernate, Node, Express)

○  tooling: git, mvn, npm, webpack, babel, mocha, chai

○  HTML5, Javascript, frameworks, REST web API, single-page web app dev (SPA)

○  Platforms and open source collaboration

Boundary resources

○ Software product ○ API created ○ Platformization

– New group of platform interactors

The course in 1 minute

●  Version control system. Keeps versions/backups and helps you share.

●  Build tools help you organize and build modules ●  Hibernate maps your relational database into

Java objects, and back. ●  Spring: Configure objects & how they connect at

runtime ●  Model View Controller separates user interface,

controllers and data model ●  Javascript-enabled HTML-apps using REST-APIs

on the server (“SPA”)

1.1 6.

6

2.4

Two architectures

Rendering of HTML sent from

server

Javascript parses data

from server and creates HTML

Create HTML dynamically.

APIs providing information in JSON-format.

JSON Static HTML and

Javascript

Server-generated HTML files

Approach

●  Lectures ○ Knut Staring: knutst@ ○ Julie Hill Roa: juliehr@ ○ Guest lecturers

○ Lab sessions ○ Obligatory assignments (individual) ○ Written exam ●  Team projects 3 devs ●  Considerable amount of self-study ●  First part of course and assignments focus on

traditional server-side web development. ●  Group projects focus on Javascripts-enabled

Apps accessing APIs on the server

Evaluation

● Individual assignment 1 (Deadline: ca. 27th Sept) ● Individual assignment 2 (Deadline: ca 7th Oct) ● Group project work ○ 3 milestones and group presentation late Nov

● Individual written exam - Early December ●  A - F

Lab sessions

Check the lab session schedule on http://www.uio.no/studier/emner/matnat/ifi/INF5750/h14/timeplan/index.html

Attend lab sessions. Bring your laptop!

Group project ● Develop functionality for DHIS2 ○ A real-life open source project

● Objective ○ Work with some of the most common open source

components within the open source community and industry ○ Learn to develop in teams, sharing code ○ Learn to test and document

● Several groups will be working on the same project assignment

Individual written exam

+ Will cover both theoretical and practical aspects + Probably a mix of multiple-choice and essay

questions relating to theory and project work

Learning resources

● Articles and books, e.g. Tiwana (2014) (full list later) ● Walls (2014) and other ‘... in action’ books

http://www.manning.com/walls5/ ● UiO guides ● Online documentation, tutorials and examples

Beware: some may be old and not use all modern capabilities

● CodeAcademy, Khan Academy