Office hours:

Tuesday: 13.15-15.15, Discord (ask for invitation)
It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)

Running classes:

  • Embedded Security Systems - MSc programe
    • Monday 15.15-16.45 (lecture), virtual class on MS Teams
    • Wednesday 9.15-11.00 (lab), r. 317.2 D-1
    • Wednesday 11.15-13.00 (lab), r. 317.2 D-1
    • Wednesday 13.15-15.00 (lab), r. 317.2 D-1
  • Praca dyplomowa \ Diploma thesis
    • Tuesday 13.15-15.15, Discord (e-mail z prośbą o zaproszenie)

Embedded Security Systems - MSc programe

Rules

The student's knowledge and the manner and timeliness of the presented solution stages will be assessed at the laboratory classes. The lecturer will require a detailed knowledge of the solution techniques used, may ask to modify or add new fragments to the existing source code. The final grade will consist of the average of grades for each list, including timeliness and activity. Each stages of classes will require sum up in a form of written report, which will be evaluated.

Additional information

After finishing some part of material students will be requested to prepare recapping report covering what they did during solving assignments, including objectives, experiments, codes snippets, results and the most important part - discussion and reflections. Report should be prepared in written form (PDF file) and submitted by e-mail till the end of the highlighted week.

Exam terms

  • Primary take - 05.02.2021, 10.00 AM (online)
  • Secondary take - 12.02.2021, 10.00 AM (online)
  • LECTURES

    Introduction

    Hardware and Software Reverse Engineering

    Trusted Platform Module

    Embedded Systems Vulnerabilities

    Software Defined Radio

    Automotive Security

    Side-channel attacks and analysis

    LABORATIRIES

    Lists

    • List 1: IrDA and oscilloscope showcase. Saleae download page for logic analyzer software. We used infrared receiver TSOP31236 datasheet and some code for Arduino. Traces of IrDA communication from the remote as picked up by the receiver will be send to respective students via email for decoding.
    • List 2: Securing IrDA transmission with A5/1. Using Arduino platform and the IrDA hardware from the showcase build a transmission link protected with A5/1 implementation of stream cipher. There are two cases to implement:
      • The two communicating PCs separately produce the keychains from A5/1 and pass it to Arduino boards using UART. The encrypted message is sent between the Arduinos over IrDA link (this is case for people who have got two pieces of Arduino).
      • Adruino board is connected via UART link with PC for keystream transmission. The keystream is received from the sending PC and forwarded in parallel with the cryptogram via IrDA link in a broadcast mode. In this case logical signal analyzer is helpful to capture the data on the transmitter side You can compare plain text and encrypted signal.

      REPORT SUBMISSION (31 October 2020)

    • List 3: You will pick one of the chosen device with embedded system implemented (for instance router, camera, electronic baby sitter, etc.) and try to reverse engineer it. You have to perform ad least:
      1. Information and data gathering,
      2. UART detection, determine voltage levels and pins order, establish the connection,
      3. Get firmware from the board or download it from manufacturer,
      4. Analyze firmware, extract it, get access to the essential resources of the device,
      5. Retrieve root password or get access to the root shell on the device.

      Your task is to overcome each security means by using different analysis methods and prepare scripts/toolkits facilitating attacks. You should be able to establish connection between target board and your computer via UART or other interface in order to perform the communication and take control over the device.

      Useful commands and tools: busybox, dd, grep, sed, regular expressions, python, bash scripts, pearl, binwalk, strings, u-boot, command line for u-boot,...

      Toolkits:
      Ghidra - software reverse engineering suite provided by NSA and guide video (thanks to Pawel Cyprys)

    • REPORT SUBMISSION (30 November 2020)


      Additional resources:
      EMV Integrated Circuit Card Specifications for Payment Systems
      Prezentacja Laboratorium Programowania Kart Elektronicznych
      A Rambling Walk Through an EMV Transaction

    Marks

    ...

    Praca dyplomowa / Diploma thesis

    Na spotkaniach będziemy omawiać postępy w realizacji prac dyplomowych oraz prezentować zgromadzony materiał, dyskutować nad otrzymanymi wynikami i ustalać dalsze etapy pracy do wykonania.

    Spotkania odbywają się zdalnie na kanale Discorda - o link proszę pisać mailowo, bo niestety są ataki botów :(.

    Dodatkowe informacje

    ...

    Konsultacje / Office hours:

    Czwartek/ Thursday: 13:15-15:15, 218 D-1

    Uwaga! Konsultacje odbywają się zdalnie na kanale Discorda - o link proszę pisać mailowo, bo niestety są ataki botów :(.

    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)
    It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)

    Prowadzone kursy / Running classes:

    • Systemy wbudowane - I st., WPPT ( o kursie)
      • Poniedziałek 18.55-20.35 (laboratorium), s. 317.3 D-1
    • Compliance and Operational Security - II st., WPPT (about) (jointly with Dr P. Kubiak)
      • Wednesday 9.15-11.00 (lecture), r. A-2 L-1
      • Wednesday 11.15-13.00 (exercise), r. A-2 L-1
    • Praca dyplomowa - WPPT
      • Poniedziałek 11.15-13.00, s. 218 D-1
    • Biometria - I st., WEKA
      • Wtorek 15.15-16.55 (wykład), s. 2 C-5
      • Wtorek 17.05-18.45 (seminarium), s. 2 C-5
    • Systemy biometryczne - I st., WEKA
      • Czwartek 15.15-16.55 (wykład), s. 2 C-5

    Systemy wbudowane

    Zasady zaliczenia

    Na laboratoriach będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych rozwiązań. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już rozwiązania. Szczegółowe zasady oceniania dostępne na stronie prowadzącego wykład.

    Materiały i listy


    Compliance and Operational Security - MSc program

    About

    This year the course is conducted jointly with Dr Przemyslaw Kubiak. The first 7 weeks of the course are run by Dr Kubiak, last 8 weeks by me. Scope of the course is rather not technical nor technological, we will focus on organizational, legal and compliance aspects of IT systems. We will go through some worldwide recognizable security standards like ISO 27001 or Common Criteria.

    More about first part of the course available at Dr Kubiak's website.

    Rules

    The student's knowledge and the manner and timeliness of the presented solution stages will be assessed at the exercise classes. There will be two group projects, each stage will require sum up in a form of written report, which will be evaluated. The final grade for exercise will consist of the average of grades for each project, with possible modifiers including timeliness and activity. There will be also written exam covering material from the lecture.

    Final grade for the course is: F=0.4*L+0.6*E, where L-grade from exam, C-grade from exercise.

    Tasks

    Each group works on one selected task. Each task is planned for 4-weeks time frame. Eventually, final report must be prepared for an evaluation.

    1. Prepare a Contingency Plan for a large internet shop(1.1) or auctions portal(1.2). Remember that you must protect personal data of your clients (e.g., delivery addresses, transactions made). Try to justify the costs.

    2. Prepare an Incident Response Plan for a large scale e-lottery system(2.1) or SCADA system in power grid(2.2). Try to justify the costs. For cryptographic protocols utilized by some exemplary e-lottery system - see: Trust Engineering: From Requirements to System Design and Maintenance - A Working National Lottery System Experience or/and Electronic National Lotteries.

    Deadline for the reports:
    Incident Response Plans - 29.05.2020, 23:59 (the results shall be announced in the evening on the 08.06.2020)
    Contingency Plans - 08.06.2020, 23:59 (the results shall be announced in the evening on the 15.06.2020).

    Content

    Lecture 1

    Introduction

    Security Information and Event Management (SIEM) and Security Operation Center (SOC)

    Lecture 2

    Incident Response Planning

    Lecture 3 & 4
    Lecture 5 & 6

    Contingency Plan

    Lecture 7

    Personal Data Protection


    Additional resources

    SIEM and SOC

    Incident Response Planning


    Biometria / Systemy biometryczne

    O kursie i zasady zaliczenia

    Karty przedmiotów dostępne są pod linkami: Biometria, Systemy biometryczne.

    Podstawą zaliczenia tych grup kursów jest uzyskanie pozytywnej oceny z wchodzących w ich skład zajęć - tj. wykładu (kolokwium zaliczeniowe), seminarium (ocena prezentacji i projektu) oraz laboratorium (jeśli dotyczy, rozwiązywanie list zadań oraz praca na zajęciach).

    Wzór na ocenę końcową przedstawia się następująco:

    • Biometria: O = 0.6xW + 0.4xS
    • Systemy biometryczne: O = 0.4xW + 0.4xL + 0.2xS
    • Gdzie, W - ocena z wykładu, S - ocena z seminarium, L - ocena z laboratorium

    Punktacja kolokwium:

    0-62.0
    73.0
    8-93.5
    10-114.0
    12-134.5
    14-155.0

    Wyniki - Systemy Biometryczne
    Wyniki - Biometria

    Seminarium

    • Zajęcia seminaryjne będą odbywać się w zespołach, oznacza to, że w każdej grupie zostaną sformułowane zespoły i przydzielone obszary tematyczne.
    • Każdy z zespołów będzie prezentować się dwukrotnie, każde wystąpienie będzie oceniane pod względem merytorycznym, ale także przekazu treści, formy prezentacji i kontaktu z audytorium.
    • Dodatkowym elementem seminarium będzie sesja konfrontacyjna, w której pozostałe zespoły atakują broniący się pytaniami.
    • Zespół otrzymuje ogólną ocenę swoje pracy, a następnie wewnętrznie ustala oceny cząstkowe swoich członków na drodze konsensusu, tak aby średnia ocena wszystkich jego członków nie przekroczyła oceny ogólnej.
    • Obecność na laboratoriach jest obowiązkowa, dopuszczalna jest jedna nieusprawiedliwiona nieobecność.

    Laboratorium

    • Praca na laboratorium będzie wymagała wcześniejszego przygotowania się w domu. Zalecam pracę na własnym sprzęcie, instalację maszyny wirtualnej oraz przygotowanie środowiska pracy według zaleceń prowadzącego laboratoria. Proszę o przygotowanie sobie środowiska programistycznego C++, Python oraz Arduino.
    • W ramach zajęć będą do przygotowania 4 raporty podsumowujące przeprowadzone działania, ich opis, wyniki i wnioski, które będą podstawą zaliczenia, każdy z raportów musi być ostatecznie oceniony minimalnie na 3.0.
    • Prowadzący laboratoria podczas zajęć wprowadza w tematykę opracowywania, pokazuje przykłady i zadaje zadania do samodzielnego wykonania, należy je zrealizować na zajęciach i w okresie pomiędzy kolejnymi laboratoriami oraz odpowiednio opisać w raporcie. Wyniki pracy nie będą sprawdzane podczas laboratoriów.
    • Obecność na laboratoriach jest obowiązkowa, dopuszczalna jest jedna nieusprawiedliwiona nieobecność.

    Opisy:
    Laboratorium 1
    Laboratorium 2
    Laboratorium 3*
    Laboratorium 4
    Laboratorium 5
    Laboratorium 6
    (*) - będzie zmiana kolejności z laboratorium nr 4 z uwagi na zdalne zajęcia

    Prezentacje:
    Laboratorium 1
    Laboratorium 2


    Praca dyplomowa - diploma thesis

    Na spotkaniach będziemy omawiać postępy w realizacji prac dyplomowych oraz prezentować zgromadzony materiał, dyskutować nad otrzymanymi wynikami i ustalać dalsze etapy pracy do wykonania.

    Spotkania odbywają się zdalnie na kanale Discorda - o link proszę pisać mailowo, bo niestety są ataki botów :(.

    Dodatkowe informacje

    ...

    Konsultacje / Office hours:

    Wtorek / Tuesday: 11:15-13:15, 218 D-1

    Uwaga! 17.12 konsultacji nie ma! / Attention! On December 17 office hours are cancelled!

    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)
    It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)

    Prowadzone kursy / Running classes:

    • Bazy danych i systemy informacyjne - studia inżynierskiej ( o kursie)
      • Środa TN 9.15-11.00, s. 303A C-7
      • Środa TP 9.15-11.00, s. 303A C-7
      • Środa TN 11.15-13.00, s. 303A C-7
      • Środa TP 11.15-13.00, s. 303A C-7
    • Praca dyplomowa / diploma thesis
      • Poniedziałek 11.15-13.00, s. 218 D-1

    Bazy danych i systemy informacyjne

    Zasady zaliczenia

    Na ćwiczeniach będą oceniane wiedza studenta oraz sposób, terminowość przedstawianych rozwiązań i aktywność na zajęciach. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już rozwiązania. Na ocenę końcową składać się będzie ocena z kolokwium, kartkówki za poszczególne listy z uwzględnieniem terminowości oraz aktywności. Szczegółowe zasady oceniania dostępne na stronie prowadzącego wykład.

    Listy

    Literatura

    * J.D. Ullman, J. Widom, A First Course in Database Systems
    * J.D. Ullman, Principles of Database Systems
    * H. Garcia-Molina, J.D. Ullman, J. Widom, Systemy baz danych
    * T. Pankowski, Podstawy baz danych
    * W3Schools, Manual dialektu

    Prezentacje

    Normalizacja 1NF - 5NF
    Normalizacja Schematów Logicznych Relacji

    Wyniki

    Grupa A TN 9.15
    Grupa B TN 11.15
    Grupa C TP 9.15
    Grupa D TP 11.15
    i to by było na tyle ;)

    Praca dyplomowa - diploma thesis

    Na spotkaniach będziemy omawiać postępy w realizacji prac dyplomowych oraz prezentować zgromadzony materiał, dyskutować nad otrzymanymi wynikami i ustalać dalsze etapy pracy do wykonania.

    Dodatkowe informacje

    ...

    Konsultacje / Office hours:

    Środa / Wednesday: 11:15-13:00, 218 D-1

    Uwaga! 04.06 konsultacji nie ma! / Attention! On June 4 office hours are cancelled!

    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)
    It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)

    Prowadzone kursy / Running classes:

    • Embedded Security Systems - MSc programe (About the course)
      • Tuesday 13.15-15.00, r. 317.3 D-1
      • Tuesday 15.15-16.55, r. 317.3 D-1

    Embedded Security Systems - MSc programe

    Rules

    The student's knowledge and the manner and timeliness of the presented solution stages will be assessed at the laboratory classes. The lecturer will require a detailed knowledge of the solution techniques used, may ask to modify or add new fragments to the existing source code. The final grade will consist of the average of grades for each list, including timeliness and activity. Each stages of classes will require sum up in a form of written report, which will be evaluated.

    Additional information

    After finishing some part of material students will be requested to prepare recapping report covering what they did during solving assignments, including objectives, experiments, codes snippets, results and the most important part - discussion and reflections. Report should be prepared in written form (PDF file) and submitted by e-mail till the end of the highlighted week.

    Lists

    • List 1: introduction to VHDL - hello world, testing, text I/O. Nice VHDL Tutorial with Examples.
    • List 2: A5/1-like cipher and randomness analysis. [Code]

    • REPORT SUBMISSION

    • List 3 (on March 12, 19): IrDA and oscilloscope showcase. Saleae download page for logic analyser software. We used infrared receiver TSOP2238 datasheet and some code for Arduino. Traces of IrDA communication from the remote as picked up by the receiver will be send to respective students via email for decoding.
    • List 4 (on March 26, April 2, 9): Securing IrDA transmission with A5/1 - two-weeks long assignment. Using Arduino platform and the IrDA hardware from the showcase build a transmission link protected with A5/1 implementation of stream cipher. There are two cases to implement:
      • The two communicating PCs separately produce the keychains from A5/1 and pass it to Arduino boards using UART. The encrypted message is sent between the Arduinos over IrDA link.
      • The two communicating Adruino boards are connected via UART link for message transmission. The keystream is received from the sending PC via UART link and forwared in parallel with the cryptogram via IrDA link.

      REPORT SUBMISSION

    • List 5 (on April 29, May 7,14) Embedded systems password breaking and side-channel analysis (timing attack - see example). You will be equipped with Arduino with a few implementation of following features:
      1. Door keypad - PIN (for getting access)
      2. Login/Password (for getting privileges)
      3. Bluetooth interface (for establishing connection)
      Your task is to overcome each security means by using different analysis methods and prepare scripts/toolkits facilitating attacks. You should be able to establish connection between Arduino and your computer via serial port in order to perform the communication or use another Arduino.

    • REPORT SUBMISSION (till May 26)

    • List 6 (on May 21,28) Android App Reverse Engineering, enter the website and go carefully through the whole tutorial. Perform each of exercises and note down your insights.

      Additional resources:
      Potentially Harmful Application (PHAs) Categories
      Beginners Guide to Reverse Engineering Android Apps
      Structure of Android Application
      OWASP Mobile Security Testing Guide

    • List 7 (on June 4 ,11) Smart cards, in order to talk with reader: you need the following software installed on your system:
      • pcscd -- system daemon, provide connection to readers, go agead and install also pcsc_tools
      • libccid -- libraries containing drivers for various readers
      • scs3 -- Smart Cards Shell 3
      • gpshell -- a GlobalPlatform shell -- interactive environment to exchange APDUs (link/readme)
      • there are also different APIs for pcsclite library ported to many languages (see for example Python example)

      Checkout this repository. Go to JCAlgTest/AlgTest_JavaCard/!uploader and examine the upload.bat file (it uses java implementation of gpshell). Examine also archived_legacy_uploaders.zip and search for installAlgTest_NXP_JCOP_CJ3A081.txt. This GPShell file is known to work with provided cards. Note. The cards support JC API 2.2.2, so you need to build your applets with that API.

      You can also use the reader to try to access your student ID card and your credit/debit cards :)

      Additional resources:
      EMV Integrated Circuit Card Specifications for Payment Systems
      Prezentacja Laboratorium Programowania Kart Elektronicznych
      A Rambling Walk Through an EMV Transaction

      REPORT SUBMISSION (till June 9)

    Marks

    Report 1 - Evaluation

    Report 2 - Evaluation

    Report 3 - Evaluation

    Report 4 - Evaluation (new update)

    Final Grades (new update)

    Konsultacje / Office hours:

    Tuesday/ Wtorek: 10.00:-12:00 209 D-1

    Uwaga! 16.10.2018 konsultacje nie odbędą się z uwagi na moją chorobę.


    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)
    It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)


    Prowadzone kursy / Running classes:

    • Programowanie zespołowe (P) Inf/PPT I st.
      • Środa 9.15-11.00, s. 249, A-1
    • Architektura komputerów i systemy operacyjne (C) Inf/PPT I st. (Informacje o kursie)
      • Piątek 15.15-16.55, s. 202 C-7
    • Identification Systems (C) Inf/PPT Master Programme (About class)
      • Wednesday 15.15-16.55, s. 303 C-7

    Programowanie zespołowe (P) Inf/PPT I st.

    Zasady zaliczenia

    Celem kursu jest realizacja zespołowego projektu programistycznego (systemu) na wybrany temat, zdobycie praktycznych doświadczeń w zakresie pracy zbiorowej nad projektem IT, zarówno pod względem technicznym jak i organizacyjnym.

    Etapy realizacji projektu:

    • 3 zajęcia: ostateczny podział na zespoły i wstępna wersja specyfikacji systemu;
    • 4 zajęcia: pełna specyfikacja systemu (cel systemu, zakres systemu, wymagania funkcjonalne i niefunkcjonalne) oraz harmonogram prac z przydziałem zadań a także link do repozytorium projektu (github) i opcjonalnie link do systemu zarządzania projektem (podwyższa ocenę);
    • 7 zajęcia: projekt systemu w UML (diagramy w pełni opisujące projektowany system);
    • 10 zajęcia: działający prototyp systemu (wersja alfa);
    • 12 zajęcia: działający prototyp systemu (wersja beta);
    • 14 zajęcia: ostateczna wersja systemu z dokumentacją techniczną.

    Projekt uważa się za zakończony jeżeli:

    • sporządzono w terminie pełną specyfikację systemu i harmonogram prac,
    • oddano w terminie projekt systemu i jest on zgodny ze specyfikacją,
    • oddano w terminie system i jest on zgodny z projektem,
    • stworzono dokumentację techniczną systemu.

    Jeżeli powyższe warunki zostały spełnione to zrealizowany projekt (system) może być poddany ocenie. Przy ocenianiu brane będą pod uwagę:

    • terminowość realizacji poszczególnych etapów,
    • jakość stworzonego oprogramowania,
    • jakość stworzonej dokumentacji,
    • ergonomia interfejsu, łatwość użytkowania systemu.

    Oceną projektu jest liczba od 2.0 do 5.5 z dokładnością do jednej dziesiątej.

    Wykorzystanie niestandardowych języków, bibliotek i kodów źródłowych wymaga akceptacji prowadzącego.

    Projekty można realizować w zespołach 4-5 osobowych (średnia ocen członków zespołu musi być mniejsza lub równa ocenie projektu i cały zespół musi oceny zaakceptować, w przeciwnym przypadku wszyscy otrzymują identyczną ocenę nie wyższą niż ocena projektu).

    Oceny

    Dostępne w systemie JSOS.


    Architektura komputerów i systemy operacyjne Inf/PPT I st.

    Zasady zaliczenia:

    Odbędą się dwa kolokwia w tygodniach 47 roku 2018 oraz 3 roku 2019

    Punktacja - na każdym kolokwium można zdobyć maks. 15pt + punkty za aktywność na ćwiczeniach

    • ocena 5.5 >=37pt
    • ocena 5.0 >=27pt & <37pt
    • ocena 4.5 >=24pt & <27pt
    • ocena 4.0 >=21pt & <24pt
    • ocena 3.5 >=18pt & <21pt
    • ocena 3.0 >=15pt & <18pt

    Dodatkowe informacje

    M.Morris Mano Architektura komputerów, Wydawnictwo Naukowo-Techniczne, 1988, s.389

    Wyniki

    Wyniki sumaryczne


    Identification Systems Inf/PPT Master Programme

    Rules

    Final grade is calculated as follows: fG = 0,5 * aG + 0,5 * pG, where aG is the evaluation of the assignments and pG is the evaluation of the project.

    Assignments lists

    List 1

    Projects

    Implement chosen biometrics in a form of simple authentication/identification system. Create toolkit for enrollment of raw biometric data and processing them into the biometric templates. Perform simulations and evaluate FAR/FRR curves, try different sensitivity thresholds, think about template model. Feel free to use libraries like OpenCV or OpenBR, the main aim of the project is to perform dozen experiments and dive into practical aspects of using biometrics. Prepare final report recapping the project.

    • Option 1 - Keystrokes/Touchscreen Dynamics
    • Option 2 - Face Recognition
    • Option 3 - Iris Recognition
    • Option 4 - Fingerprint
    • Option 5 - Signature/Handwriting Recognition

    Terms

    Project deadline - first iteration must be sent by e-mail before 10 January 2019, each week of delay causes decrease of final mark by one grade.

    Quiz - 10 January 2019, scope includes assignment lists and content discussed at exercicecs. Some of the important issues are listed below:

    1. Fundamental terms like FNMR/FMR, FAR/FRR and how to calculate them.
    2. Generic biometric-based security scheme and its parts.
    3. Cancelable biometrics
    4. FIDO - UAF / U2F
    5. Secure biometrics concepts (i.a. homomorphic encryption schemes, secure sketch, Garbled circuits)
    6. Biometric vocabulary - ISO/IEC 2382-37
    7. Biometric Performance Testing And Reporting - Access Control Scenario And Grading Scheme - ISO/IEC 19795-5

    Results

    Final results

    Konsultacje / Office hours:

    Thrusday/ Czwartek: 11:15-13:00 209 D-1
    Uwaga! 8.03.2018 konsultacje nie odbędą się.

    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)
    It is highly recommended to send me specific inquires by e-mail in order to give me some time for thinking :)

    Prowadzone kursy / Running classes:

    • Nowoczesne technologie www Inf/PPT I st. (Informacje o kursie)
      • Czwartek 9.15-11.00, s. 317.2 D-1
    • Embedded Security Systems Inf/PPT II st. (Informacje o kursie)
      • Tuesday 17.05-18.45, r. 317.2 D-1

    Nowoczesne technologie WWW Inf/PPT I st.

    Zaliczenie

    Na laboratorium/ćwieczeniach będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych etapów rozwiązań. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już kodu źródłowego. Na ocenę końcową składać się będzie średnia ocen za poszczególne listy z uwzględnieniem terminowości oraz aktywności.

    Informacje dodatkowe

    Zajęcia

    ...

    Oceny

    Na razie brak :(

    Embedded Security Systems Inf/PPT II st.

    Rules

    ...

    Additional information

    Classes

    Marks

    Konsultacje:

    Poniedziałek 9:15-11:00 209 D-1
    Konkretne problemy warto wcześniej podesłać mailem, żebym mógł przemyśleć :)

    Uwaga! 19.01.2018 (piątek) odbędą się specjalne konsultacje w godzinach 17.05-20.00

    Prowadzone kursy:

    • Bazy danych Inf/PPT (Informacje o kursie)
      • Poniedziałek TN 13.15-15.00, s. 317.3 D-1
      • Poniedziałek TP 13.15-15.00, s. 317.3 D-1
      • Wtorek TN 18.55-20.30, s. 317.2 D-1
      • Wtorek TP 18.55-20.30, s. 317.2 D-1
      • Piątek TN 15.15-16.55, s. 317.3 D-1
      • Piątek TP 15.15-16.55, s. 317.3 D-1
      • Piątek TN 17.05-18.45, s. 108 C-2

    Zaliczenie

    Na laboratorium będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych etapów rozwiązań. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już kodu źródłowego. Za każde rozpoczęte dwa tygodnie spóźnienia oddania danej listy, ocena końcowa będzie obniżana o 0,5. Na ocenę końcową składać się będzie średnia ocen za poszczególne listy z uwzględnieniem terminowości oraz aktywności.

    Informacje dodatkowe

    Zajęcia

    Oddawanie projektów: Każdy projekt będzie oceniany na podstawie 5 minutowej sesji prezentacyjnej, oznacza to, że twórcy wybierają elementy, które uważają za najważniejsze/najciekawsze i przedstawiają mi poprzez pokazania fragmentów kodu, przeklinanie w interfejsie i opowiedzenie o nich. Jest to zadanie bardzo trudne, bo to krótki okres czasu i chciałoby się "tak dużo" powiedzieć o swoim dziele, ale właśnie na tym polega to ograniczenie, że trzeba wybierać. Będę mieć timer, który będzie odmierzał czas i po nim sesja prezentacji się kończy. Proszę aby członkowie zespołów zastanowili się co pokazać i o czym opowiedzieć, a potem to przećwiczyli, bo potem nie będzie już możliwości poprawy.

    Oceny

    Oceny końcowe na 20.01.2018

    Konsultacje:

    Środa 9:15-11:00 209 D-1, proszę zapowiedzieć się mailem

    Prowadzone kursy:

    • Architektura komputerów i systemy operacyjne Inf/PPT (Informacje o kursie)
      • Poniedziałek 15.15-16.55, s. 317.3 D-1
      • Poniedziałek 17.05-18.45, s. 317.3 D-1
      • Wtorek 17.05-18.45, s. 317.3 D-1
      • Piątek 09.15-11.00, s. 317.3 D-1

    Zaliczenie

    Na laboratorium będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych etapów rozwiązań. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już kodu źródłowego. Za każdy tydzień spóźnienia ocena będzie obniżana o jeden stopień. Na ocenę końcową składać się będzie średnia ważona ocen za poszczególne etapy z uwzględnieniem terminowości oraz aktywności. Obecność obowiązkowa.

    Infromacje dodatkowe

    1-2 Tydzień

    Pojęcia do przyswojenia: S.M.A.R.T, POST, UEFI, boot loader, NCQ, LBA, SCSI, DMA, INT / IRQ, EPROM, EEPROM, Flash Zastanowić się nad następującymi zagadnieniami: na czym polega zapis informacji na dysku?, co robi procedura usuwania danych?, jak skutecznie usunąć zapisaną informację? jak wygląda przekierowanie strumienia wykonania programu przy wystąpieniu przerwania?

    3-4 Tydzień

    Pojęcia do przyswojenia: zasilacz AT / ATX, sprawność zasilacza, RS232C / COM, LPT, USB (1.1, 2.0, 3.0), szyny komunikacyjne ISA, PCI, AGP, PCI eXpress, kontrolery IDE Zastanowić się nad następującymi zagadnieniami: jak zasilany jest komputer? jakie napięcia są wykorzystywane i w jakich miejscach? jak wygląda transmisja danych przez port szeregowy typu COM, a jak przez port równoległy typu LPT?

    4-5 Tydzień

    Pojęcia do przyswojenia: ANSI bomb, shellcode, debugger, breakpoint, stos, wierzchołek stosu, rejestr, asemblacja, deasemblacja, buffer overflow, stack overflow Zastanowić się nad następującymi zagadnieniami: jak można wykorzystać sekwencje ANSI w odniesieniu do kwestii bezpieczeństwa, jak wywołać shellcode z poziomu kodu programu języka wyższego poziomu.

    9-10 Tydzień

    Pojęcia do przyswojenia: zagłodzenie procesu(ang. starving), zakleszczenie procesu(ang. deadlock), sesja krytyczna, synchronizacja wątków, semafory Zastanowić się nad następującymi zagadnieniami: jak można zoptymalizować przydział wspólnych zasobów dla wielu procesów (np. na przykładzie problemu filozofów)

    Oceny

    Oceny (wszystkie grupy)

    Konsultacje:

    Wtorek 11:15-13:00 1.09 C-13, proszę zapowiedzieć się mailem

    Prowadzone kursy:

    Zaliczenie

    * Część I - aplikacja bazodanowa

    1. Wybór i zgłoszenie tematu. Wstępny zakres projektu. (termin: 2 tydzień)
    2. Projekt aplikacji zawierający:
      • analizę biznesową (jaki rzeczywisty problem rozwiązujemy, dlaczego i jak)
      • wymagania użytkownika (funkcjonalne oraz techniczne/sprzętowe)
      • diagram przypadków użycia (jakie funkcjonalności ma program)
      • diagram bazy danych (UML)
      • koncepcja architektury systemu (jak aplikacja jest zbudowana, jakie ma warstwy, itd.) (termin: 4 tydzień)
    3. Implementacja aplikacji (termin: 8 tydzień)

    * Część II - hurtownia danych

    1. Projekt hurtowni danych na podstawie aplikacji zawierający:
      • analizę biznesową (do czego będzie nam służyć ta hurtownia, jakie dylematy pomoże nam rozwiązać)
      • projekt hurtowni danych (UML)
      • przykładowe analizy, które można wykonać (termin: 9 tydzień)
    2. Implementacja hurtowni danych zawierająca:
      • Stworzenie bazy hurtowni danych
      • Stworzenie bazy OLAP (termin: 10 tydzień)
      • Stworzenie raportów dla użytkownika
      • Stworzeni transformacji danych z aplikacji bazodanowej do bazy hurtowni.(termin: 12 tydzień)

    Na laboratorium będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych etapów rozwiązań. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego już kodu źródłowego. Za każdy tydzień spóźnienia ocena będzie obniżana o jeden stopień. Na ocenę końcową składać się będzie średnia ważona ocen za poszczególne etapy z uwzględnieniem terminowości oraz aktywności. Obecność obowiązkowa.

    Infromacje dodatkowe

    Do zabaw z kostkami OLAP i analizami polecam rozwadze jedno z poniższych narzędzi:

    • Microsoft Analysis Services (komponent MS SQL Server), lub add-in do MS Excela o tej samej nazwie
    • Cognos OLAP Moldeling (IBM)
    • Hyperian Essbase

    W dniu 11.03.2014 r. na zajęciach będziemy gościć specjalistę z firmy Nokia Solutions and Networks, który opowie nam o bazach danych NoSQL.

    W dniu 25.03.2014 r. na zajęciach będziemy gościć specjalistę z Wrocławskiego Centrum Transferu Technologii, który przeprowadzi crash course z metodyki Design Thinking.

    Oceny

    Oceny

    Konsultacje:

    Wtorek 11:15-13:00 1.09 C-13, proszę zapowiedzieć się mailem

    Uwaga! 15.10 konsultacje nie odbędą się, termin zastępczy to 17.10 w godz. 13.15-15.00

    Dodatkowe konsultacje: 31.01.2014 r w godzinach 13:00-14:00 (ostateczny termin zaliczenia w sesji list, konsekwencją nieprzygotowania będzie ocena niedostateczna)

    Konsultacje w sesji: Wtorek 11.02.2014 r. 10:00-14:00/15:00 (ostateczny termin zaliczenia listy 7)

    Prowadzone kursy:

    • Architektura komputerów i systemy operacyjne Inf/PPT (Informacje o kursie)
      • Środa 13.15-15.00, s. 317.4 D-1
      • Czwartek 15.15-17.00, s. 317.4 D-1

    Zaliczenie

    Na laboratorium będą oceniane wiedza studenta oraz sposób i terminowość przedstawianych rozwiązań zadań z list. Prowadzący będzie wymagał szczegółowej znajomości użytych technik rozwiązania, może poprosić o modyfikację lub dodanie nowych fragmentów do istniejącego juą kodu źródłowego. Podstawowe listy zadań będą pojawiać się na stronie wykładowcy, prowadzący może wprowadzić listy dodatkowe lub kartkówki, za nieterminowe oddawanie zadań będzie obniżana ocena końcowa z przedmiotu. Na ocenę końcową składać się będzie średnia ocen za poszczególne listy i kartkówki z uwzględnieniem terminowości oraz aktywności.

    Oceny

    Grupa środowa (aktualne oceny)
    Grupa czwartkowa (aktualne oceny)

    Konsultacje:

    Środa 13:15-15:00 1.09 C-13, proszę zapowiedzieć się mailem

    Prowadzone kursy:

    • Aplikacje bazodanowe Inf/PPT (Informacje o kursie)
      • Wtorek 7.30-9.00, s. 317.4 D-1
      • Wtorek 9.15-11.00, s. 317.4 D-1
    • Kurs programowania Inf/PPT (Informacje o kursie)
      • Wtorek 15.15-16.55, s. 317.2 D-1

    Aplikacje bazodanowe Inf/PPT

    Zaliczenie

    * Część I - aplikacja bazodanowa

    1. Wybór i zgłoszenie tematu. Wstępny zakres projektu. (termin: 2 tydzień)
    2. Projekt aplikacji zawierający:
      • analizę biznesową (jaki rzeczywisty problem rozwiązujemy, dlaczego i jak)
      • wymagania użytkownika (funkcjonalne oraz techniczne/sprzętowe)
      • diagram przypadków użycia (jakie funkcjonalności ma program)
      • diagram bazy danych (UML)
      • koncepcja architektury systemu (jak aplikacja jest zbudowana, jakie ma warstwy, itd.) (termin: 4 tydzień)
    3. Implementacja aplikacji (termin: 8 tydzień)

    * Część II - hurtownia danych

    1. Projekt hurtowni danych na podstawie aplikacji zawierający:
      • analizę biznesową (do czego będzie nam służyć ta hurtownia, jakie dylematy pomoże nam rozwiązać)
      • projekt hurtowni danych (UML)
      • przykładowe analizy, które można wykonać (termin: 9 tydzień)
    2. Implementacja hurtowni danych zawierająca:
      • Stworzenie bazy hurtowni danych
      • Stworzenie bazy OLAP (termin: 10 tydzień)
      • Stworzenie raportów dla użytkownika
      • Stworzeni transformacji danych z aplikacji bazodanowej do bazy hurtowni.(termin: 12 tydzień)

    Informacje dodatkowe

    Do zabaw z kostkami OLAP i analizami polecam rozwadze jedno z poniższych narzędzi:

    • Microsoft Analysis Services (komponent MS SQL Server), lub add-in do MS Excela o tej samej nazwie
    • Cognos OLAP Moldeling (IBM)
    • Hyperian Essbase

    Na początku kwietnia na zajęcia zostanie zaproszony gość z firmy Fast White Cat, który opowie nam o integracji systemów, zaś pod koniec kwietnia kolejny, który wprowadzi nas w świat hurtowni danych, mocno zachęcam do udziału w tych spotkaniach.

    Prezentacja z wykładu gościnnego (18.03.2013 r.) dr. inż. Macieja Nikodema pt. Szyfrowanie danych w SZBD

    Tutaj znajdziedzie Państwo przykładowy generator danych do tabel - www.generatedata.com

    Interesujące opracowanie pana Pawła Ciejki dotyczące zarządzania użytkownikami baz danych w Postgresql - opracowanie

    Oceny

    Proponowane oceny (obie grupy)

    Kurs programowania Inf/PPT

    Zaliczenie

    Ocena z laboratorium bierze pod uwagę umiejętności nabyte w trakcie kursu oraz terminowość oddawania zadań. Zadania powinny być zaimplementowane samodzielnie przez studenta. Podczas zaliczania danej listy zadań, prowadzący może żądać modyfikacji programu pokazujących, że student opanował wymagany poziom zrozumienia zagadnienia i języka, w którym został ów program napisany. Listy dzielą się na dwie kategorie: na zaliczenie i na ocenę - średnia z ocen tych drugich jest podstawą zaliczenia laboratorium. Każdy tydzień spóźnienia dowolnej listy obniża końcową ocenę z laboratorium o 0,2. Aby zaliczyć laboratorium wszystkie listy muszą być oddane i pozytywnie ocenione.

    Debugowanie kodu

    Aby znaleźć w programie błędy należy niekiedy udać się po pomoc dodatkowych narzędzia np. debugger'a czy profiler'a, dla języka C/C++ mamy dostępne na licencji GNU takie narzędzia jak gdb, gprof czy oprofile , polecam zaznajomić się z nimi, stanowią one bardzo cenne źródło infomracji co się dzieje z naszą aplikacją.

    Dokumentowanie kodu:

    Celem zapewnienia naszej aplikacji przyzwoitej dokumentacji, która nie będzie wymagała od nas dużo pracy, należy skorzystać z narzędzi, która skorzystają z komentarzy umieszczanych w poszczególnych miejscach programu. Stosując kilka dodatkowych znaków formatujacych jesteśmy w stanie wygenerować sobie czytelną i przejrzystą dokumentację np. w formacie HTML stosując w Javie prosty javadoc albo bardziej zaawansowany doxygen dla języków C/C++, C, C#, PHP, Java, Python i innych.

    Problemy dodatkowe

    Dla tych z Państwa, którzy chcieliby spróbować rozwiązać nieco trudniejsze zagadnienia przedstawiam kila propozycji:

    1. Na rozgrzewkę: zaimplementować struktury danych dużych liczb "BigInt" i obliczyć np. 1000!
    2. Rekurencja:
      • znajdź na szachownicy takie ustawienie 8 hetmanów, aby żaden nie był w konflikcie z pozostałymi
      • znajdź takie układ ruchów konia szachowego, aby odwiedził wszystkie jej pola (miejsce startu jako parametr wejściowy programu)
      • zdefiniuj sobie pewien obszar, podzielony na pola, wprowadź na nim szereg nieprzekraczalnych przeszkód i znajdź drogę z jednej części obszaru na drugą
    3. Sztuczna inteligencja: chcemy zagrać z komputerem w jedną ze znanych gier planszowych (np. gomoku czy connect four), napisz algorytm, który dla każdego ruchu gracza przeanalizuje sytuację na planszy kilka ruchów do przodu i oceni ją na podstawie przyjętej heurystyki oraz wybierze najlepsze w danej chwili zagarnie dla komputera
    4. (Nie)Bezpieczeństwo: wkrótce...