Języki programowania do zastosowań biomedycznych

Podobne dokumenty
KARTA PRZEDMIOTU. Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę*

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

Paradygmaty programowania

Informatyka II stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Egzamin / zaliczenie na ocenę*

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Specjalnościowy Obowiązkowy Polski Semestr 5

Wykład 0 Informacje Podstawowe

Języki skryptowe. zasady zaliczania literatura wprowadzenie

PRZEWODNIK PO PRZEDMIOCIE

edycja 3 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

KARTA MODUŁU KSZTAŁCENIA

Programowanie obiektowe 1 - opis przedmiotu

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

PRZEWODNIK PO PRZEDMIOCIE

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

KARTA KURSU. Języki skryptowe

Programowanie obiektowe Object programming. Elektrotechnika II stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Języki programowania imperatywnego

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

INŻYNIERIA OPROGRAMOWANIA

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

KARTA KURSU. Projektowanie aplikacji mobilnych

PRZEWODNIK PO PRZEDMIOCIE

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

tel. (+48 81) /22 fax (+48 81) Cel przedmiotu

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria oprogramowania - opis przedmiotu

Informatyka I stopień ogólnoakademicki niestacjonarne Teleinformatyka Zakład Informatyki dr inż. Adam Krechowicz mgr inż.

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Inżynieria systemów mobilnych

KARTA KURSU. Systemy operacyjne

Opis efektów kształcenia dla modułu zajęć

Kurs wybieralny: Zastosowanie technik informatycznych i metod numerycznych w elektronice

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

Podstawy programowania. Wprowadzenie

KARTA KURSU (realizowanego w module specjalności)

Rok akademicki: 2012/2013 Kod: EAR s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Technologie cyfrowe semestr letni 2018/2019

Kierunkowy Wybieralny Polski Semestr V

PRZEWODNIK PO PRZEDMIOCIE

APLIKACJE KLIENT-SERWER Client-Server Applications Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

PRZEWODNIK PO PRZEDMIOCIE

KARTA PRZEDMIOTU. Programowanie wieloplatformowe, D1_1

Przegląd języka Python. Łukasz Anwajler

Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W E, 2L PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Karta Opisu Przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe 2 - opis przedmiotu

Kandydaci powinni spełniać warunki określone w Ustawie z dnia 27 lipca 2005 r. Prawo o Szkolnictwie Wyższym ( Dz. U. z 2012 r. poz. 572).

Języki programowania deklaratywnego

PRZEWODNIK PO PRZEDMIOCIE

przedmiot specjalnościowy obowiązkowy polski semestr V semestr zimowy nie

KARTA PRZEDMIOTU. Warsztaty z programowania mobilnego w Python. Python Mobile Programming Workshop

edycja 14 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr nr 14/2012 i 15/2012 i 34/2012

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

Języki programowania I - opis przedmiotu

PRZEWODNIK PO PRZEDMIOCIE

KARTA MODUŁU KSZTAŁCENIA

Egzamin / zaliczenie na ocenę*

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

PRZEWODNIK PO PRZEDMIOCIE

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

KARTA KURSU. Programowanie obiektowe

EFEKTY KSZTAŁCENIA DLA KIERUNKU STUDIÓW

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Programowania. Języki programowania

KARTA PRZEDMIOTU. Cel 1 Zapoznanie studentów z architekturami i platformami mobilnymi

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA realizacja w roku akademickim 2016/2017

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C15

Aplikacje wspomagające pomiary jakości kształcenia na WI ZUT

PRZEWODNIK PO PRZEDMIOCIE

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016

Opis efektów kształcenia dla modułu zajęć

PRZEWODNIK PO PRZEDMIOCIE

Programowanie w Javie nazwa przedmiotu SYLABUS A. Informacje ogólne

Egzamin / zaliczenie na ocenę*

PROGRAM STUDIÓW WYŻSZYCH ROZPOCZYNAJĄCYCH SIĘ W ROKU AKADEMICKIM 2010/2011. Wydział Matematyczno-Fizyczno-Techniczny

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Systemy Informatyki Przemysłowej

Wstęp do Informatyki dla bioinformatyków

edycja 20 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr ZW 124/2017 i 112/2017 i 113/2017

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Język Java i technologie Web - opis przedmiotu

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Kierunkowy Wybieralny Polski Semestr V

Podstawy programowania.

Transkrypt:

Języki programowania do zastosowań biomedycznych Prowadzący Witold Dyrka Agnieszka Kazimierska Michał Placek

Założenia Państwo: mają uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu języków programowania, potrafią analizować podstawowe struktury danych i algorytmy, potrafią analizować, pisać i uruchamiać praktycznie proste programy w dowolnym współczesnym języku programowania ogólnego przeznaczenia, potrafią samodzielnie znajdować i usuwać błędy w tworzonych programach, potrafią budować wielopoziomową strukturę programu realizującą zadanie programistyczne; Zaliczone kursy: Technologie informacyjne (wykład i laboratorium) Języki programowania (wykład i laboratorium) lub porównywalne

Cele Zapoznanie się z językami programowania oraz technikami programistycznymi znajdującymi zastosowanie w inżynierii biomedycznej i dziedzinach pokrewnych Nauczenie się podstaw pisania programów w dwóch wybranych językach stosowanych w inżynierii biomedycznej i dziedzinach pokrewnych

Formuła Projekt Państwo wybierają temat projektu programistycznego z zakresu inżynierii biomedycznej, a następnie dobierają właściwe narzędzia programistyczne (techniki i języki programowania) z zestawu zaproponowanego przez zespół dydaktyczny przedmiotu. Zasadą jest wybór tematu umożliwiającego nauczenie się nieznanej techniki i/lub języka programowania. Pierwszym zadaniem Państwa jest zapoznanie się z wybraną techniką / językiem i poddanie sposobu jej zastosowania dyskusji na forum grupy. W kolejnym etapie implementowane jest rozwiązanie zadania projektowego zakończona prezentacja oraz krytyczną analizą użytych narzędzi. Laboratorium Zajęcia laboratorium służą ćwiczeniu podstaw języka programowania wybranego do realizacji projektu. W drugiej części semestru laboratorium poświęcona jest nauce podstaw kolejnego języka lub techniki programowania. Zapotrzebowanie na naukę konkretnych technik i języków może być zgłaszane opiekunowi kursu w semestrze poprzedzającym; będzie ono zrealizowane w miarę możliwości kadrowych zespołu prowadzącego.

Zasady zaliczenia Zaliczenia projektu oraz laboratorium uzyskuje się na podstawie pracy samodzielnej (indywidualnej lub grupowej) wykonanej w terminie praca niesamodzielna liczona jest jako 0.0 praca nieoodana w terminie jest oceniana jako ndst (2.0) Podstawą do ocen końcowych jest zaokrąglona średnia ocen cząstkowych Nieobecność na 3 lub więcej zajęciach stanowi podstawę do niezaliczenia projektu/laboratorium niezależnie od uzyskanych ocen cząstkowych

Zasady pracy projekt Praca projektowa jest wykonywana w zespołach 2-3 osobowych Projekt jest realizowany przyrostowo Projekt jest na bieżąco wprowadzany do repozytorium kodu (git) członkowi zespołu przysługuje ocena za realizację zadania projektowego pod warunkiem, że jego wkład do repozytorium wynosi >=37% w przypadku zespołu 2 os. lub >=25% w przypadku zespołu 3 os. Ocena za projekt wystawiana jest na podstawie prezentacji realizacji projektu (2/3) oraz kolokwium (1/3) obowiązujące elementy prezentacji są ustalane w zależności od charakteru projektu, np. historie użytkowników, projekt interfejsu użytkownika, walidacja wyników.

Harmonogram Projekt 1 \ wprowadzenie 03-06.10.17 2 / i przegląd języków/technik. 3 \ wybór tematu. 4 / i dobór narzędzia 24-27.10.17 5 \ 31.10-03.11.17 6 prezentacja tematu. 7 i dyskusja na forum grupy. 8 (1/6 oceny). 9 / 28.11-01.12.17 10 \ 05-08.12.17 11 prezentacja rozwiązania. 12 z krytyczną analiza. 13 (3/6 oceny). 14 / 11-16.01.18 15 kolokwium (2/6 oceny) 18-23.01.18 Laboratorium 1 wprowadzenie i ewaluacja 04.10.17 2 \ 3 język/technika 1 (projektu) 4 lista 1-1 (podstawy) 5 30.10.17 6 lista 1-2 (zastosowania specjalistyczne) 7 15.11.17 8 / lista 1-3 (zaliczenie) 22.11.17 9 \ 10 język/technika 2 11 lista 2-1 (podstawy) 12 20.12.17 13 lista 2-2 (zastosowania specjalistyczne) 14 17.01.18 15 / lista 2-3 (zaliczenie) 24.01.18

Języki i techniki wspierane przez prowadzących Witold Dyrka Agnieszka Kazimierska Michał Placek Języki C tak - tak, w tym na AVR C++ tak tak tak C# - tak tak Python tak tak tak Java tak - - Matlab tak tak tak R tak - - powłoka Linux (bash, sed, awk) Windows (Powershell) Linux (bash) SQL - tak C# z MSSQL XAML - tak tak DOT tak - - Techniki obliczenia równoległe C++ (OpenMP) - Matlab aplikacje wielowątkowe - - C++ (POSIX) testy jednostkowe Java tak Matlab wzorce projektowe Java, C++ C++ - aplikacje webowe Python (Django) - ASP.NET aplikacje mobilne - Android, ios - grafika windows - WindowsForms/WPF WindowsForms/WPF komunikacja z urządzeniami - - C# (port szeregowy)

języki programowania

język paradygmat koncept Peter Van Roy. Programming Paradigms for Dummies: What Every Programmer Should Know

koncepty rekord (struktura danych) p = Pacjent(imie: Jan, nazwisko: Kowalski, rok_ur: 1950 ) e = Element(wartosc: Obiekt, nastepny: Element)

koncepty funkcja (procedura) domknięcie (funkcja + jej odnośniki) wynik = dodaj(arg1, arg2) print dodaj(1,2) > 3 op=+ wynik = [op]operacja(arg1,arg2) op=* print operacja(1,2) > 3

domknięcie class Operacja { } char op; Operacja(char op): op(op) {}; float operator()(float arg1, float arg2) { if (op=='*') return arg1*arg2; if (op=='+') return arg1+arg2; } Operacja operacja('+'); char op='*'; cout << operacja(1,2); > 3 domknięcie (funkcja + jej odnośniki) op=+ wynik = [op]operacja(arg1,arg2) op=* print operacja(1,2) > 3

koncepty // 1+2+3+4 print dodaj(dodaj(dodaj(1,2),3),4) nazwany stan wynik = dodaj(1,2) wynik = dodaj(wynik,3) print dodaj(wynik, 4)

koncepty współbieżność wspóldzielony stan message passing deterministyczna potencjalny obserwowalny niedeterminizm

przykładowe paradygmaty deklaratywne programowanie opisowe tylko struktury danych: XML, DOT programowanie funkcyjne: struktury danych + domknięcia: Scheme, ML programowanie logiczne i relacyjne struktury danych + domknięcia + unifikacja + szukanie: Prolog programowanie imperatywne struktury danych + funkcje + nazwane stany (zmienne): C, Pascal programowanie zorientowane obiektowo struktury danych + domknięcia + nazwane stany: C++, Java...

Programowanie funkcyjne vs imperatywne fib <- function(n) { if (n <= 2) 1 else fib(n - 1) + fib(n 2) } fib <- function(n) { if (n == 1) 1 else if (n == 2) 1 else { fibval <- c(1,1) for (i in 3:n) fibval <- c(0,fibval[1])+fibval[2] fibval[2] } } https:// en. wikipedia. org/ wiki/ Functional_programming# R

Kryteria wyboru języka pisanie programu czy integracja istniejących aplikacji? skrypty powłoki szybkość prototypowania przeważnie interpretowane języki wysokiego poziomu, dynamicznie typowane dostępność specjalizowanych bibliotek często rozszerzają bazowe paradygmaty wsparcie struktury danych natywna lub biblioteczne efektywność obliczeń języki kompilowane są przeważnie szybsze wsparcie dla obliczeń równoległych

Take home message pomyśl nad tematem projektu który nie będzie stratą czasu pomyśl nad wyborem języka którego paradygmaty odpowiadają potrzebom projektu budżet 3h/os.