Programowanie obiektowe IS/IO - Zajęcia 1 zasady zaliczenia przedmiotu Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica Kraków
Prowadzący: mgr inż. Grzegorz Smyk KATEDRA INFORMATYKI STOSOWANEJ I MODELOWANIA PRACOWNIA MODELOWANIA SYMULACJI PROCESÓW www.isim.agh.edu.pl B5 p. 605 grzegorz.smyk@agh.edu.pl www.galaxy.agh.edu.pl/~gsmyk/ http://skos.agh.edu.pl
1 godzina zegarowa dla wszystkich wtorek 7:00 8:00
Zajęcia PROGRAMOWANIE OBIEKTOWE Typ: LABORATORIA Kierunki: Informatyka Stosowana Inżynieria Obliczeniowa
Egzamin z przedmiotu Prowadzący: Prof. dr hab. inż. Mirosław Głowacki WYDZIAŁ 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 x1 zajęcia, x2 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
Kolokwia Zasady zaliczenia laboratoria 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.0 może w czasie sesji dwukrotnie przystąpić do kolokwium poprawkowego (kolokwium poprawkowe obejmuje materiał z całego semestru), pod warunkiem, 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.
Creative - informatyczne koło naukowe Jak do Działalność nas dotrzeć: koła: WYSTĄPIENIA NA KONFERENCJI STUDENCKICH KÓŁ NAUKOWYCH - SEKCJA INFORMATYKI Zacieśnianie więzów współpracy z pracownikami - SEKCJA METALOZNAWSTWA naukowymi I INŻYNIERII katedry ISIM POWIERZCHNI - SEKCJA PRZERÓBKI PLASTYCZNEJ możesz wysłać pkustra@agh.edu.pl do nas. przyjść na zebranie koła Stworzenie grup projektowych studentów różnych (informacje roczników, odnośnie terminów w celu rozwiązywania spotkań znajdują złożonych się w gablotce problemów naukowych. Koła: B-4 1 piętro obok sali 101 lub na stronie :) ) Podnoszenie specjalistycznych kwalifikacji zawodowych poprzez nawiązanie kontaktów z zapytać się o nas w laboratoriach komputerowych przedsiębiorstwami różnych sektorów. (B-4 s.101 i B-5 s.601)
Zajęcia I zaczynamy! Nazwa projektu: IS_GRXX_ImięNazwisko File -> New -> Project Visual C++ -> Empty Procject Dodajemy plik: main.cpp
Zajęcia I Hello World! Nagłówek: Standard Input/Output Library Typ zwracany przez funkcję #include <iostream> using namespace std; Przestrzeń nazw Zakres funkcji int main() { Funkcja main cout<< Hello World! <<endl; } Console-output stream Znak 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; void copystudents(student[] a1, Student[] a2) void copystudents(student[] source, Student[] destination) Student student; Student astudent; Student thestudent;
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 counter.submit(); class Advise class Advice 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óch zmiennych typu całkowitego z przedziału <10,90>, a następnie wyświetli liczby od mniejszej do większej z krokiem 0.5 przy pomocy pętli: for, while, do while 2. Napisz program, w którym zaalokowana będzie tablica dynamiczna 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ą przechowywane informacje: 1. Imię 2. Nazwisko 3. Kierunek 4. Rok studiów Stwórz i uzupełnij tablicę pięcioelementową typu student.
Zajęcia I 1. Napisz program, który umożliwi na wczytanie dwóch zmiennych typu całkowitego z przedziału <10,90>, a następnie wyświetli liczby od mniejszej do większej z krokiem 0.5 przy pomocy pętli: for, while, do while 2. Napisz program, w którym zaalokowana będzie tablica dynamiczna 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ą przechowywane informacje: 1. Imię 2. Nazwisko 3. Kierunek 4. Rok studiów Stwórz i uzupełnij tablicę pięcioelementową typu student.