Zajęcia 1 – zasady zaliczenia przedmiotugalaxy.agh.edu.pl/~gsmyk/didactic/PI/zajecia1.pdf•...

24
Programowanie obiektowe Informatyka Stosowana - Zajęcia 1 – zasady zaliczenia przedmiotu Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo–Hutnicza im. Stanisława Staszica Kraków, rok akademicki 2016/2017

Transcript of Zajęcia 1 – zasady zaliczenia przedmiotugalaxy.agh.edu.pl/~gsmyk/didactic/PI/zajecia1.pdf•...

Programowanie obiektowe

Informatyka Stosowana

- Zajęcia 1 – zasady zaliczenia przedmiotu

Wydział Inżynierii Metali i Informatyki Przemysłowej

Akademia Górniczo–Hutnicza im. Stanisława StaszicaKraków, rok akademicki 2016/2017

mgr inż. Grzegorz Smyk

KATEDRA INFORMATYKI STOSOWANEJ I MODELOWANIA

PRACOWNIA MODELOWANIA SYMULACJI PROCESÓW

www.isim.agh.edu.pl

• B5 p. 605

[email protected]

• www.galaxy.agh.edu.pl/~gsmyk/

http://skos.agh.edu.pl

Prowadzący:

• 1 godzina zegarowa dla wszystkich

• poniedziałek

• 14:00 – 15:00

Zajęcia

PROGRAMOWANIE OBIEKTOWE

• Typ:

– LABORATORIA

• Podział na grupy:

– GR. 1: ŚR. 15:15 – 16:45 B5*601

– GR. 3: PN. 08:00 – 9:30 B5*601

– GR. 5: WT. 13:15 – 14:45 B5*601

– GR. 7: WT. 16:45 - 18:15 B5*601

Egzamin z przedmiotu

Prowadzący:

• Prof. dr hab. inż. Mirosław GłowackiWYDZIAŁ INŻYNIERII METALI I INFORMATYKI PRZEMYSŁOWEJ

KATEDRA INFORMATYKI STOSOWANEJ I MODELOWANIA

PRACOWNIA INFORMATYKI

HTTP://HOME.AGH.EDU.PL/~IP/INDEX.PHP?LANG=PL&GO=3&ID=2

Zasady przystąpienia:

- pozytywne zaliczenie ćwiczeń laboratoryjnych

Polecane materiały

Materiały online:

• http://www.cplusplus.com

• http://cpp0x.pl/

Literatura• „Symfonia C++” – Tom II, III - Jerzy Grębosz

• „Pasja C++” – Jerzy Grębosz

• „Thinking in C++” – Bruce Eckel

Zasady zaliczenia laboratoria

Obecność na zajęciach

– obecność na zajęciach jest obowiązkowa,

– możliwa jest jedna nieobecności nieusprawiedliwione,

– nieobecność nieusprawiedliwiona wymaga pisemnego zwolnienia lekarskiego na następnych zajęciach,

STUDENT, MUSI MIEĆ CO NAJMNIEJ 80% OBECNOŚCI

USPRAWIEDLIWIONYCH W SKALI SEMESTRU

Zasady zaliczenia laboratoria

Praca na laboratoriach

– studentów obejmuje harmonogram przedstawiony przez

prowadzącego,

– student jest oceniany indywidualnie na każdych zajęciach,

– student musi przygotować pisemny konspekt na każde zajęcia

odnośnie omawianego zagadnienia,

– ocena końcowa jest procentowym wynikiem punktów uzyskanych

przez studenta z wagami 1/3 – zajęcia, 2/3 – kolokwia,

– uzyskane oceny są przekazywane prowadzącemu przedmiot

0 – BRAK PRZYGOTOWANIA DO ZAJĘĆ

+1 – PRZYGOTOWANIE TYLKO KONSPEKTU

+2 – PRACA NA ZAJĘCIACH NA PODSTAWIE KONSPEKTU

Zasady zaliczenia laboratoria

Kolokwia

• w czasie semestru odbędą się trzy kolokwia w czasie wykładu,

• niezaliczone kolokwia nie będą poprawiane w trakcie semestru,

• kolokwia liczone są podwójnie do oceny końcowej z laboratoriów,

• możliwe jest dodatkowe kolokwium w trakcie ćwiczeń,

• ocena końcowa jest pozytywna, jeśli średnia jest równa lub większa od

3.0.

Student, który uzyskał ocenę średnią niższą niż 3.0może w czasie sesji dwukrotnie przystąpić dokolokwium poprawkowego (kolokwium poprawkoweobejmuje materiał z całego semestru), podwarunkiem, ze uczęszczał na zajęcia.

Zasady zaliczenia laboratoria

Laboratoria• Zakaz spożywania jedzenia oraz napojów,

• Kurtki, płaszcze oraz parasole zostawiamy w szatni na parterze budynku B5 (jeśli szatnia jest otwarta),

• „Dopuszczalne” spóźnienie wynosi maksymalnie 15 min,

• Zakaz modyfikowania istniejącej sieci Ethernet,

• Zakaz instalowania oprogramowania niezwiązanego z tematyką zajeć,

• Możliwa jest praca na własnym sprzęcie komputerowym uwzględniając w/w ograniczenie (można korzystać tylko z wolnych gniazdek zasilających),

• W trakcie semestru korzystamy z tego samego stanowiska komputerowego (wyjątkiem są grupy powyżej 15 osób),

• Wszelkie usterki i nieprawidłowości w funkcjonowaniu sprzętu i oprogramowania natychmiast zgłaszamy prowadzącemu.

MetalSoft- informatyczne koło naukowe

Sekcja Metaloznawstwa i Inżynierii Powierzchni

III miejsce - Ivan Milenin

Temat: OCENA MOŻLIWOŚCI ZASTOSOWANIA TEORII STEROWANIA DO MODELOWANIA KINETYKI PRZEMIANY AUSTENIT-FERRYT

Opiekun: prof. dr hab. inż. Maciej Pietrzyk

SEKCJA INFORMATYKI

I miejsce - Paweł WalTemat: FRONTALNY SOLWER METODY ELEMENTÓW SKOŃCZONYCH DLA HETEROGENICZNYCH ARCHITEKTUR SPRZĘTOWYCHOpiekun: dr inż. Łukasz Rauch

III miejsce - Sławomir KwaśniewskiTemat: OPRACOWANIE ALGORYTMU REPREZENTACJI GEOMETRII Z WYKORZYSTANIEM METODY NURBS NA POTRZEBY ANALIZY IZOGEOMETRYCZNEJOpiekun: mgr inż. Daniel Bachniak

Wyróżnienie - Marcin GulikTemat: OPEN AGH E-PODRĘCZNIKI – OTWARTE CYFROWE PODRĘCZNIKI AKADEMICKIEOpiekun: prof. dr hab. inż. Jan Kusiak

SEKCJA PRZERÓBKI PLASTYCZNEJ

III miejsce - Kamil SikoraTemat: OPRACOWANIE MODELU TARCIAW OPARCIU O ANALIZĘ ODWROTNĄ PRÓBY SPĘCZANIA PIERŚCIENIA DLA WYBRANYCH STOPÓWOpiekun: dr inż. Tomasz Rec

Wyróżnienie - Krzysztof Bednarski, Piotr RogowskiTemat: PROPOZYCJA KOMPUTEROWEGO SYSTEMU WSPOMAGAJĄCEGO PROJEKTOWANIE TECHNOLOGII WALCOWANIA BLACH NA GORĄCOOpiekun: prof. dr hab. inż. Maciej Pietrzyk

Działalność koła:

Zacieśnianie więzów współpracy z pracownikami naukowymi katedry ISIM

Stworzenie grup projektowych studentów różnych roczników, w celu rozwiązywania złożonych

problemów naukowych.Podnoszenie specjalistycznych kwalifikacji

zawodowych poprzez nawiązanie kontaktów z przedsiębiorstwami różnych sektorów.

Jak do nas dotrzeć:

• możesz wysłać [email protected] do nas.

• przyjść na zebranie koła

(informacje odnośnie terminów spotkań znajdują się w gablotce

Koła: B-4 1 piętro obok sali 101 lub na stronie :) )

• zapytać się o nas w laboratoriach komputerowych

(B-4 s.101 i B-5 s.601)

SPOTKANIA i WYJAZDY

Zajęcia I – zaczynamy!

File -> New -> Project

Visual C++ -> Empty Procject

Nazwa projektu:

IS_GRXX_ImięNazwisko

Dodajemy plik:

main.cpp

Zajęcia I – „Hello World!”

#include <iostream>

using namespace std;

int main()

{

cout<<„Hello World!”<<endl;

}

Nagłówek:Standard Input/Output Library

Przestrzeń nazwTyp zwracany przez funkcję

Funkcja main

Zakres funkcji

Console-output streamZnak nowej linii oraz czyszczenie strumienia

Czysty kod!

• Robert C. Martin

Dobre nazwy w kodzie

• przedstawiają intencje

• bez mylących i fałszywych wskazówek

• bez zbyt subtelnych różnic

• są spójne i dobrze się sortują w IDE

• można je wymówić!

• łatwo je wyszukać

• bez kodowania typów

• bez przedrostków składników

• bez kodowania interfejsów

• bez jedno-literówek

• nazwy klas mają rzeczowniki

• nazwy metod mają czasowniki

• zamiast przeciążonych konstruktorów stosujemy metody fabryk

• dowcipne nazwy mogą nie być zrozumiane

• spójny leksykon

• bez przesady ze spójnością

• używamy terminologii informatycznej

• w drugiej kolejności używamy terminologii klienta

• dodajemy znaczący kontekst

• bez nadmiarowego kontekstu

• zmiana nazwy na czytelniejszą to nic złego

Nazwy zmiennych

Przedstawiają intencje

int c;

int studentsCount;

List<int> list1 = new List<int>();List<int> temperatureValues = new List<int>();

Nazwy zmiennych

Brak mylących i fałszywych wskazówek

int hp; // hiperprzelicznik

Student[] studentList;

List<Student> studentList;

List<Student> students;

Student[] students;

Nazwy zmiennych

Brak zbyt subtelnych różnic w nazewnictwie

Student VeryGoodStudentInThisCourseOfPhysics;

Student VeryGoodStudentInThatCourseOfPhysics;

Student student;

Student aStudent;

Student theStudent;

void copyStudents(Student[] a1, Student[] a2)

void copyStudents(Student[] source, Student[] destination)

Nazwy zmiennych

• Zrozumiałe dla mózgu

• Umożliwiają dyskusję o kodzie

• Nowe osoby w zespole szybciej zrozumieją kod

class SdntRcrd126

{

private DateTime admymdhms;

private const string pszqint = "126";

}

class Student

{

private DateTime admissionTimestamp;

private const string recordId = "126";

}

Nazwy zmiennych

• Łatwość wyszukania

• Wartości stałe zamiast liczb

• Brak kodowania typów

if (s.Count > 9)

const int MAX_STUDENTS_PER_YEAR = 9;

if (students.Count > MAX_STUDENTS_PER_YEAR)

int securityCodeString; //kiedyś ta zmienna może i była typu string

Nazwy zmiennych

• Brak jedno-literówek

• Profesjonalny kod to czytelny i zrozumiały kod

• Wyjątkiem są liczniki pętli

Uri r = new Uri("http://www.agh.edu.pl");

for (int i = 0; i < 4; i++)

for (int j = 0; j < 4; j++)

for (int k = 0; k < 4; k++)

Nazewnictwo w obrębie klas

• Nazwy klas mają rzeczowniki

• Nazwy metod mają czasowniki

– „get” przed akcesorami, „set” przed mutatorami,

– „is” przed predykatami

class CourseAdvisor

class Advise

class Advice

counter.submit();

if (course.isCompleted())

totalCompletedHours += course.getTotalHours();

counter.setTotal(totalCompletedHours);

Terminologia

Możemy swobodnie stosować terminy informatyczne takie jak:

– nazwy algorytmów

– wzorców)

bo czytelnicy kodu – programiści – je znają!

Zmiana nazwy na czytelniejszą to nic złego!!

(refactoring)

Zajęcia I

1. Napisz program, który umożliwi na wczytanie dwóchzmiennych typu całkowitego z przedziału <10,90>, anastępnie wyświetli liczby od mniejszej do większej z krokiem0.5 przy pomocy pętli:

– for, while, do…while

2. Napisz program, w którym zaalokowana będzie tablicadynamiczna o rozmiarze zadanym przez użytkownika. Przekażtablicę uzupełnioną losowymi wartościami z przedziału <5,15> do funkcji. Funkcja oblicza sumę elementów w tablicy i jązwraca.

3. Napisz strukturę student, w której będą przechowywaneinformacje:

1. Imię

2. Nazwisko

3. Kierunek

4. Rok studiów

Stwórz i uzupełnij tablicę pięcioelementową typu student.