Programski jezik c. C programski jezik

praktični tečaj

Što je?

Svojedobno (1991.-1992.) birajući jezik Si Kao glavni programski jezik za nastavu matematike, autor se suočio s problemom nedostatka normalnih udžbenika koji bi se mogli preporučiti školskoj djeci. To ga je prisililo da napiše svoje bilješke s predavanja, što bi se moglo nazvati "Praktični tečaj programiranja u Si» — sadržavao je podatke koji su autoru stvarno bili potrebni u praksi. Dugogodišnje iskustvo u nastavi pokazalo je da su bilješke zaista tražene i da ih naširoko koriste i školarci i maturanti.

Razvojno okruženje je besplatna ljuska otvorenog koda Dev-C++ koja uključuje GCC kompajler.

Autor će biti zahvalan na povratnim informacijama i konstruktivnim kritikama vezanim uz sadržaj i dizajn ovih materijala. Ukoliko primijetite grešku ili imate prijedloge, primjedbe, pritužbe, zahtjeve ili izjave, pišite.

Licencni ugovor

  1. 1) objavljivanje materijala u bilo kojem obliku, uključujući objavljivanje materijala na drugim web stranicama;
  2. 2) distribucija nepotpunih ili izmijenjenih materijala;
  3. 3) uključivanje građe u zbirke na bilo kojem mediju;
  4. 4) stjecanje komercijalne koristi od prodaje ili drugog korištenja materijala.

Preuzimanje materijala znači da prihvaćate uvjete ovog licencnog ugovora.

preuzimanje datoteka

Sažetak se slobodno distribuira u formatu PDF. Za pregled je potreban besplatni Acrobat Reader. Okvirni sadržaj tečaja podijeljen je u 4 dijela:

  1. Uvod u programiranje u C-u (860 Kb) 29.03.2014
    Proučavanje osnovnih jezičnih konstrukcija i tehnika pisanja programa.
  2. Pohrana i obrada podataka (792 KB) 21.11.2013
    C jezik: nizovi, matrice, strukture, nizovi znakova, strukture, rekurzija.
  3. Izrada programa u jeziku C (937 Kb) 01.03.2014
    Tehnike projektiranja programa, strukturirano programiranje, cjelobrojni algoritmi, numeričke metode, modeliranje.
  4. Dinamičke strukture podataka u jeziku C (666 KB) 11.06.2009
    Liste, nizovi, stabla, grafikoni.

Prezentacije

Nastavnicima i učenicima mogu koristiti prezentacije temeljene na ovom sažetku. Mogu se preuzeti na stranici Prezentacije.

Metodologija

Glavni cilj je upoznati učenike s osnovnim strukturama jezika Si: petlje, uvjetne naredbe, procedure. Proučavanje dijelova vezanih uz grafiku i animaciju vrlo je uspješno.

8. razred

Program uključuje sljedeće dijelove (dio sažetka je naveden u zagradama): Nizovi (II), Rad s datotekama (II), Nizovi znakova (II), Rotirajući objekti (III), Modeliranje (III). Posebna pozornost posvećena je proučavanju algoritama za rad s nizovima, uključujući pretraživanje, sortiranje itd. Dan je koncept učinkovitosti računskih metoda.

9. razred

Glavni fokus je na studiranju metode razvoja softvera u jeziku Si. Studenti rješavaju individualni zadatak tijekom kojeg uče konstruirati grafove na ekranu, upoznaju se s transformacijama koordinatnih sustava, proučavaju metode rješavanja jednadžbi, upoznaju se s numeričkim metodama te uče pravilno projektirati programe (odjeljci 1-2 dijela III). Jedan od zadataka posvećen je korištenju Monte Carlo metoda izračunati površinu složene figure. Iz novih odjeljaka također učimo Matrice (II), nizovi nizova znakova (II). Koncept je predstavljen pokazivači te se proučavaju najjednostavnije operacije s njima.

10. razred

Učenje jezika Si dostiže ozbiljniju razinu. Glavne teme - Upravljanje memorijom (II), Rekurzija (II), Strukture (II). Planirano je proučavanje Pascala kao drugog programskog jezika. Od ovog trenutka algoritmi se u teorijskoj nastavi pišu naizmjenično na dva jezika.

11. razred

Ne proučavaju se toliko značajke jezika koliko algoritmi. Glavni odjeljci - Numeričke metode (III), Modeliranje (III), Dinamičke strukture podataka (IV).

C++ programski jezik

Zadnja izmjena: 28.08.2017

Programski jezik C++ je kompilirani programski jezik visoke razine Opća namjena statički tipiziran, što je pogodno za izradu širokog spektra aplikacija. Danas je C++ jedan od najpopularnijih i najraširenijih jezika.

Ima svoje korijene u jeziku C koji je 1969-1973 u Bell Labsu razvio programer Dennis Ritchie. Početkom 1980-ih, danski programer Bjarne Stroustrup, koji je tada radio u Bell Labsu, razvio je C++ kao proširenje jezika C. Zapravo, u početku je C++ jednostavno nadopunio jezik C s nekim mogućnostima objektno orijentiranog programiranja. I zato ga je sam Stroustrup u početku nazvao "C s klasama".

Naknadno novi jezik počeo stjecati popularnost. Dodane su mu nove značajke koje ga nisu učinile samo dodatkom C-u, već potpuno novim programskim jezikom. Kao rezultat toga, "C s klasama" je preimenovan u C++. I od tada su se oba jezika počela razvijati neovisno jedan o drugom.

C++ je moćan jezik koji nasljeđuje bogate memorijske mogućnosti od C-a. Stoga se C++ često koristi u sistemskom programiranju, posebno pri izradi operativnih sustava, upravljačkih programa, raznih uslužnih programa, antivirusa itd. Usput, OS Windows više dijelom napisan u C++. Ali samo aplikacija za programiranje sustava ovog jezika nije ograničeno. C++ se može koristiti u programima bilo koje razine gdje su brzina i performanse važni. Često se koristi za izradu grafičkih aplikacija i raznih aplikacijskih programa. Također se posebno često koristi za stvaranje igara s bogatom, bogatom vizualizacijom. Osim toga, u zadnje vrijeme sve više uzima maha mobilni smjer, gdje je svoju primjenu našao i C++. Čak i u web razvoju, možete također koristiti C++ za stvaranje web aplikacija ili nekih pratećih usluga koje služe web aplikacijama. Općenito, C++ je široko korišten jezik u kojem možete izraditi gotovo sve vrste programa.

C++ je prevedeni jezik, što znači da prevodilac prevodi izvor u C++ izvršna datoteka, koji sadrži skup strojnih uputa. Ali različite platforme imaju svoje karakteristike, tako da se kompilirani programi ne mogu jednostavno prenijeti s jedne platforme na drugu i tamo pokrenuti. Međutim, na razini izvornog koda, C++ programi su uglavnom prenosivi osim ako se ne koriste neke funkcije specifične za OS. A dostupnost kompilatora, biblioteka i razvojnih alata za gotovo sve uobičajene platforme omogućuje vam kompajliranje istog C++ izvornog koda u aplikacije za te platforme.

Za razliku od C-a, jezik C++ omogućuje pisanje aplikacija u objektno orijentiranom stilu, predstavljajući program kao skup klasa i objekata koji međusobno djeluju. Što pojednostavljuje izradu velikih aplikacija.

Glavne faze razvoja

Godine 1979.-80. Bjarne Stroustrup razvio je proširenje jezika C - "C s klasama". Godine 1983. jezik je preimenovan u C++.

Godine 1985. objavljena je prva komercijalna verzija jezika C++, kao i prvo izdanje knjige "The C++ Programming Language", koja je predstavljala prvi opis ovog jezika u nedostatku službenog standarda.

Objavljen je 1989 nova verzija C++ 2.0 jezik, koji uključuje niz novih značajki. Nakon toga, jezik se razvijao relativno sporo do 2011. Ali u isto vrijeme, 1998. godine, napravljen je prvi pokušaj standardizacije jezika od strane organizacije ISO (International Organisation for Standardization). Prvi standard zvao se ISO/IEC 14882:1998 ili skraćeno C++98. Nakon toga, 2003. godine, objavljena je nova verzija standarda C++03.

2011. objavljena je novi standard C++11, koji je sadržavao mnoge dodatke i obogatio jezik C++ velikim brojem novih funkcionalnosti. Nakon toga, mali dodatak standardu, također poznat kao C++14, objavljen je 2014. Još jedno ključno izdanje jezika zakazano je za 2017.

Kompajleri i razvojna okruženja

Za razvoj programa u C++-u potreban vam je kompajler - on prevodi izvorni kod u C++-u u izvršnu datoteku koju zatim možete pokrenuti. Ali u ovom trenutku postoji mnogo različitih prevoditelja. Mogu se razlikovati u različitim aspektima, posebice u provedbi standarda. Osnovni popis kompilatora za C++ može se pronaći na Wikipediji. Preporuča se za razvoj odabrati one prevoditelje koji razvijaju i implementiraju sve najnovije standarde. Stoga ćemo kroz ovaj vodič prvenstveno koristiti besplatno dostupni g++ prevodilac razvijen od strane GNU projekta.

Također možete koristiti IDE kao što su Visual Studio, Netbeans, Eclipse, Qt itd. za izradu programa.

Učenje osnova i zamršenosti programskog jezika C++. Udžbenik s praktičnim zadacima i testovima. Želite li naučiti programirati? Onda ste na pravom mjestu - ovdje je besplatna obuka programiranja. Bez obzira jeste li iskusni ili ne, ove lekcije programiranja pomoći će vam da počnete stvarati, kompilirati i otklanjati pogreške u C++ programima u raznim razvojnim okruženjima: Visual Studio, Code::Blocks, Xcode ili Eclipse.

Puno primjera i detaljnih objašnjenja. Savršeno za početnike (dummy) i one naprednije. Sve je objašnjeno od nule do detalja. Ove lekcije (200+) dat će vam dobru osnovu/temelj za razumijevanje programiranja ne samo u C++, već iu drugim programskim jezicima. I to potpuno besplatno!

Također u obzir korak po korak stvaranje igre u C++, SFML grafička biblioteka i više od 50 zadataka za testiranje vaših vještina i znanja u C++. Dodatni bonus je.

Za ponovno objavljivanje +20 na karmu i moju zahvalnost!

Poglavlje br. 0. Uvod. Početak rada

Poglavlje br. 1. Osnove C++

Poglavlje br. 2. Varijable i osnovni tipovi podataka u C++

Poglavlje br. 3. Operatori u C++

Poglavlje br. 4. Opseg i druge vrste varijabli u C++

Poglavlje br. 5. Redoslijed kojim se kôd izvršava u programu. Petlje i grananja u C++

Međuindustrijsko vijeće za normizaciju informacijske tehnologije Povjerenstvo RUIE na tehnički propis, normizacija i ocjenjivanje sukladnosti.

Prijavite se na staru web stranicu TK-MTK-22

Ispričavamo se na privremenim pogreškama. Portal je u razvoju pa su neke sekcije privremeno blokirane.

Centar kompetencija u području normizacije informacijskih tehnologija (CC SIT) nastao je u interesu razvoja sposobnosti Međusektorskog vijeća Odbora RSPP-a za tehničku regulativu, normizaciju i ocjenu sukladnosti (u daljnjem tekstu: Vijeće). Praksa je pokazala da funkcioniranje Vijeća samo kao savjetodavnog tijela više ne daje željeni učinak pred novim zadaćama.

Donošenjem i početkom provedbe Programa “ Digitalna ekonomija"U području informatičke standardizacije počeli su se javljati novi zadaci. Prije svega, pokazao se nedostatak informacija dostupnih stručnjacima u ovom području, mnoge odluke nisu dovoljno znanstveno obrazložene, zastarjele su ili nedostaju potrebni propisi i zakonskih akata, a očigledan je i nedostatak specijaliziranih kadrova. I što je najvažnije - pojavila se potreba za međuresornim ili međusektorskim rješenjima na području stvaranja jedinstvenog informacijskog prostora, koji bi trebao postati značajan čimbenik u prijelazu na novi tehnološki. struktura.

Status Vijeća kao javne organizacije prestao je zadovoljavati novonastale zadaće i pojavila se potreba za stvaranjem strukture sa statusom pravna osoba, kojima bi se mogli dodijeliti novi zadaci koji proizlaze iz područja IT standardizacije.

Pregled glavne djelatnosti Središnjeg odbora SIT-a

Standardizacija

Ono što je IT standard - treba postati IT standard - ne treba biti IT standard

Osnove programiranja
Osnove programiranja, osnovni pojmovi i pojmovi

Video tečaj će polaznike upoznati s osnovama programiranja, osnovnim terminima i pojmovima. Naučit će vas kako razvijati algoritme i dati vam stvarno iskustvo u stvaranju web proizvoda. Lekcije uključuju pregled aktualnih programskih jezika i područja, pomažu polaznicima u odabiru onih koji su im najzanimljiviji te pružaju materijale i upute za daljnji profesionalni razvoj.

Lekcija 3. Prvi program

Odabir programskog jezika. Priprema preglednika. Program "Zdravo, svijete!"

Lekcija 4. Varijable

Instaliranje prikladnog uređivača koda. Uvod u varijable. Jednostavan kalkulator.

Lekcija 5. Tipovi podataka

Vrste podataka. Operacije sa različiti tipovi podaci. Pretvorba tipa podataka.

Lekcija 6. Algoritmi i dijagrami toka

Algoritamsko razmišljanje. Vizualni dijagrami toka.

Lekcija 7. Operator grananja if

Odabir opcija u programu. Poslovnica ako. Igra zagonetki.

Lekcija 8. Logičke operacije

Složeni uvjeti selekcije. Logički I, ILI. Igra "Angry Birds".

Lekcija 9. Do, while petlje

Do i while petlje. Igranje ruskog ruleta.

Lekcija 10. For petlja

For petlja. Financijski kalkulator.

Lekcija 11. Nizovi

Veliki skupovi podataka i nizovi. Igra ruleta.

Lekcija 12. Funkcije

Funkcije. Priprema za pisanje igre “Black Jack (21)”.

Lekcija 13. Igra "Black Jack". 1. dio

Pisanje cijele igre. Osnova je dijeljenje karata i brojanje bodova.

Lekcija 14. Igra "Black Jack". 2. dio

Završetak pisanja igre. Utvrđivanje rezultata i pobjednika.

Lekcija 15. Programerska karijera

Pregled glavnih pravaca u programiranju. Kako odabrati programski jezik? Što dalje studirati?

Uvod u Git
Osnove Gita

Tijekom 13 videa, provest ćemo vas kroz osnove Git sustava kontrole verzija. Otkrijmo zašto je to važno u modernom razvoju i kolaborativnom programiranju. Upoznajmo se s osnovnim konceptima Gita: repozitoriji, komitovi, grane i oznake. Naučimo osnovne operacije: stvaranje i kloniranje repozitorija, spajanje grana, postavljanje upita povijesti promjena i još mnogo toga. Pogledajmo kako predati domaću zadaću koristeći Git. Ovo je osnovni tečaj nakon kojeg možete početi učiti bilo koji programski jezik. Osim toga, bit ćete pripremljeni za intervju, gdje se nekoliko pitanja obično fokusira na sustav kontrole verzija.

Lekcija 1. Uvod u sustave kontrole verzija

Što je sustav kontrole verzija?
Vrste sustava kontrole verzija
Git i njegove prednosti
Dokumentacija

Lekcija 2. Rad s naredbenim redkom

Što je naredbeni redak?
Zašto je naredbeni redak važan?
Kako otvoriti naredbeni redak?
Korisne naredbe

Lekcija 3. Lokalni rad s Git spremištem

Uvod u konzolni klijent
Git postava
Inicijalizacija repozitorija
Kloniranje spremišta
Grafički git klijenti

Lekcija 4. Osnovne operacije

Indeksiranje
Objavljivanje promjena
Obvezuje se
Otkaži indeksiranje
Trenutni status

Lekcija 5. Povijest git projekta

Povijest promjena
Vraćanje prema povijesti projekta
Promjena kredita: git blame
Ignoriranje .gitignore datoteka
Web stranica gitignore.io
Čuvanje mapa.čuvati

Lekcija 6. Grane

Upravljanje poslovnicom
Stvaranje i brisanje grana
Prebacivanje između grana
Metode sukoba i njihovo rješavanje
git spajanje

Lekcija 7: Stvaranje udaljenog Git repozitorija

Git hosting (GitHub, GitLab, Bitbacket)
Stvaranje vlastitog bare-git repozitorija
Registrirajte se na GitHubu
Objavljivanje promjena u udaljenom repozitoriju

Lekcija 8. Izbrisane grane

Imena spremišta
Više repozitorija u jednom projektu
.git/config
Upravljanje ograncima na udaljenom repozitoriju

Lekcija 9. Verzija

Metode verzioniranja
Oznake i njihov odnos s obvezama
Dodavanje oznake
Brisanje oznake
Upravljanje oznakom na udaljenom repozitoriju

Lekcija 10. Spajanje i prijenosi

Spajamo promjene. git spajanje
Mičemo grane. git rebase
Premještanje obveza. git trešnja odabrati
Spajamo commit u jedan. git squash
Kuke
Nadimci

Lekcija 11. Gitflow

Kako se koristi i zašto?
Ispitni ciklusi
Moguće plavo/zeleno
Otpustite grane
Hitni popravci

Lekcija 12. SSH

SSH protokol
Zašto se koristi?
Stvaranje ključeva
Prosljeđivanje
SSH agent
Kopiranje datoteka putem SSH
Windows: Git za Windows
Korištenje SSH-a s Gitom

Lekcija 13. Predaja domaće zadaće putem Gita

Osnove baze podataka. 20 lekcija.
Dizajn baze podataka i SQL upiti

Baze podataka (DB) su sustavi za pohranu i obradu podataka kojima se pristupa pomoću jezika SQL (Structured Query Language). Svaka moderna web stranica, igra ili desktop aplikacija treba pohranu podataka. Na ovaj trenutak ima ih mnogo raznih sustava sustav za upravljanje bazom podataka (DBMS), najpopularniji je MySQL. “Osnove baze podataka” je 20 intenzivnih video lekcija (svaka po 10 minuta), gdje ćemo proći kroz sve faze dizajna baze podataka na primjeru online trgovine koristeći jezik SQL upiti. Nakon ovog tečaja moći ćete koristiti različite baze podataka kao što su MS SQL i Postgre Sql kao sintaksu SQL jezik za njih se praktički ne razlikuje.

Lekcija 1: Relacijske baze podataka

Koja je razlika između baze podataka i DBMS-a; koje se baze podataka nazivaju relacijskim; pregled modernog DBMS-a.

Lekcija 2. Instaliranje DBMS-a

Instalacija MySql DBMS i grafički Mysql aplikacije Radni stol.

Lekcija 3. Dizajn baze podataka, normalni obrasci

Dizajn podataka u Excelu; normalni oblici; Osnovni ključ.

Lekcija 4. SQL CREATE naredba

Stvaranje tablica u MySql Workbench GUI; CREATE naredba; tipovi podataka; rad u konzoli.

Lekcija 5. SQL INSERT naredba

Popunjavanje tablica podacima pomoću grafičkog sučelja; INSERT naredba; AUTOMATSKO POVEĆANJE.

Lekcija 7. SQL naredbe DISTINCT, ORDER BY, LIMIT

Primanje i filtriranje podataka pomoću SQL naredbi DISTINCT i LIMIT; sortiranje pomoću naredbe ORDER BY.

Lekcija 9: Dosljednost podataka

Pojam dosljednosti ili dosljednosti podataka.

Lekcija 10. Strani ključ

Koncept stranog ključa i ograničenja vrijednosti stupaca; INOZEMNA KLJUČNA OGRANIČENJA.

Lekcija 11. Stvaranje tablica s odnosom više-prema-više

Dodavanje košarice u bazu podataka online trgovine.

Lekcija 12. Složeni primarni ključ

Korištenje složenog primarnog ključa pri dizajniranju tablice s odnosom više-prema-više.

Lekcija 13. Spajanje podataka iz više tablica

Dohvaćanje podataka iz nekoliko međusobno povezanih tablica; nedosljednost pristupa koji koristi nekoliko SELECT-ova.

Lekcija 14. Operator INNER JOIN

Spajanje podataka iz više tablica pomoću operatora INNER JOIN.

Lekcija 15. Operatori LIJEVI JOIN, DESNI JOIN

Spajanje podataka iz više tablica pomoću operatora LEFT JOIN i RIGHT JOIN.

Lekcija 16. Operator UNION

Kombiniranje rezultata višestrukih SQL upita korištenjem operatora UNION.

Lekcija 17. Funkcije agregacije

Funkcije agregiranja COUNT, SUM, MIN, MAX.

Lekcija 18. Operator GROUP BY

Grupirajte odabrani skup redaka pomoću klauzule GROUP BY.

Lekcija 19. Indeksi

Filtriranje u GROUP BY pomoću HAVING; povećanje brzine izvršavanja upita pomoću indeksa.

Lekcija 20. Transakcije

Koncept transakcije; izjava o TRANSAKCIJI; ACID zahtjevi za transakcijski sustav.

Linux. Radna stanica. 1 mjesec.
Vježbajte administriranje Linux OS-a na računalu

GNU/Linux - popularan operacijski sustav, vodeći na tržištu poslužiteljska oprema, također se koristi kao ugrađeni OS u industrijskoj i potrošačkoj opremi, pa čak i kao softver za stolna računala. GNU komponente također se koriste u MAC OS X, a GNU/Linux također utječe na Windows. Poznavanje Linuxa je neophodno Administrator sustava, tester, web programer, softverski stručnjak sigurnost informacija, svakom programeru koji ima srednji ili viši status. Ovaj tečaj pokriva osnove rada u Linuxu: osnove rada u Linux ljusci, upravljanje korisnicima i dozvolama za datoteke, regularne izraze i pisanje skripti u bashu, rad s procesima i upravljanje pokretanjem i uslugama u Linuxu. Razumijevanje osnova programiranja, brojevnih sustava (binarni, oktalni, heksadecimalni sustav broj) i Booleova logika

Lekcija 1. Uvod i instalacija

Uvod u GNU/Linux. Što je GNU, Linux i UNIX. Virtualizacija. Instalacija Ubuntua u virtualni stroj. Osnovne značajke Linuxa

Lekcija 2. Rad u grafičkom i konzolnom načinu rada

Konzola i grafički način rada u Linuxu; naredbe konzole; stvaranje i uređivanje datoteka.

Lekcija 3. Datoteke i dopuštenja u Linuxu

Korisnici i prava u Linuxu; rad s datotekama; obavljanje operacija u ime superkorisnika.

Lekcija 4. Regularni izrazi

Regularni izrazi. Traži. sed.

Lekcija 5. Bash programiranje

Sintaksa. Timovi. Varijable. Kontrolne strukture. Neke jednostavne skripte. Pokretanje planiranih zadataka pomoću cron-a

Lekcija 6. Web usluge

Linux mrežne mogućnosti. Web usluge. Nginx, Apache2. Idemo šifrirati. Mrežni filter netfilter i uslužni program iptables.

Lekcija 7. Uvod u Git

Uvod u Git.

Lekcija 8. SOA i uvod u Docker

Monolitna i SOA arhitektura aplikacija. Uvod u Docker

Lekcija 1. Uvod

Upoznavanje jezika Pripovijetka. Pregled softvera. Osnovni pojmovi o jeziku. Varijable i tipovi podataka

Lekcija 2. Uvjeti i petlje

Uvjeti. Booleova algebra i binarni izračuni. Ciklusi. Kontrola petlje i izjava o prekidaču

Lekcija 3. Funkcije, nizovi i pokazivači

Funkcije. Pokazivači. Nizovi. Višedimenzionalni nizovi

Lekcija 4. Nizovi, strukture i rad s memorijom

Linije. Strukture podataka. Sustav datoteka. Dinamička dodjela memorije

Tečaj je namijenjen kako početnicima, tako i onima koji već govore druge programske jezike ili jezik C++, ali na nedovoljnoj razini, kao i onima kojima nedostaje jasno razumijevanje organizacije pohrane i obrade podataka u kompiliranom računalni programi. C++ je jezik opće namjene i, kombinirajući svojstva jezika visoke i niske razine, omogućuje vam rješavanje najšireg raspona problema koji se javljaju u programiranju. Predmet prilično u potpunosti uvodi studenta u mogućnosti jezika C++ koji je njemu svojstven za postizanje ovih ciljeva.

Lekcija 1. Prevedeni jezik. Faze prevođenja i asemblera programa

  1. Zašto vam treba C++?
  2. Razvojni alati u C++.
  3. Kako funkcionira kompajlirani jezik.
  4. Faze emitiranja programa.
  5. Kako radi skripta za izgradnju.
  6. Analiza domaćih zadaća.

Lekcija 2. Imena u programu. Podaci, vrste, funkcije i varijable

  1. Imena, tipovi i varijable.
  2. Predstavljanje varijabli i brojeva.
  3. Izračunljivost.
  4. Funkcija. Pojam i značenje.
  5. Funkcije i njihovi argumenti.
  6. Jednostavni nizovi.
  7. Analiza domaćih zadaća.

Lekcija 3. Konstruiranje algoritma u C++

  1. Blokovi. Pojam prostora imena algoritma.
  2. Uvjetne operacije.
  3. Konstantan višestruki odabir.
  4. Ciklička uvjetna operacija dok.
  5. Upravljanje iteracijama (ponovljivost ciklusa).
  6. Ciklus brojanja.
  7. Iznimne situacije.
  8. Analiza domaćih zadaća.

Lekcija 4. Proceduralno programiranje

  1. Sastavljanje kostura projekta za Qt Creator.
  2. Dobivamo pristup datoteci s podacima.
  3. Format hack: dešifriranje metode pohrane podataka.
  4. Dekodiranje PNM/PGM formata.
  5. Transformacije bočnih podataka: očitavanje dimenzija slike.
  6. Konstrukcija izlaznog histograma i izlaz podataka.
  7. Analiza nacrta programa napisanog proceduralnim stilom.

Tečaj za programere početnike upoznate s osnovama jezika C ili C++. Pomaže vam razumjeti osnovne strukture podataka i osnovne algoritme. Daje opće razumijevanje procesa unutar programa i osnovne vještine u izgradnji rada algoritama. Tečaj nije vezan za određeni programski jezik i, unatoč tome što je sve objašnjeno na primjeru C-a, znanje se može primijeniti u bilo kojem imperativnom programskom jeziku.

Lekcija 1. Uvod i upoznavanje

Lekcija 2. Složenost algoritama i jednostavni algoritmi

Lekcija 4. Nizovi

Lekcija 5. Složeno sortiranje nizova

Lekcija 6. Stogovi, redovi i liste

Lekcija 7. Dinamičke strukture podataka

Lekcija 8. Drveće

Lekcija 9. Grafikoni

Lekcija 10. Hash tablice

Lekcija 11. Uvod u kriptografiju

Objektno orijentirano programiranje. 1 mjesec.
Zaronite u OOP

Tečaj upoznaje studente s najboljim tehnikama programiranja u C++. Obradit će se osnovni principi učinkovite uporabe objektno orijentiranog programiranja za pisanje programa, kao i tipični aspekti rada stream I/O biblioteke. Tijekom obuke studenti će napisati cjelovitu igricu koristeći stečeno znanje. Tečaj je namijenjen C++ programerima početnicima koji su završili razinu 1 - proceduralno programiranje.

Lekcija 1. Imenovana stanja

Izvoz imena. Preopterećenje naziva funkcije (globalno).
Pohranjivanje funkcija u stanje. Stanje dostupnosti imenskog prostora. Ključne riječi javno i privatno. Uvodimo pojam objekta. Uvodimo pojam klase. Početno pohranjeno stanje.

Lekcija 2. Nasljeđe

Kontrola pristupa osnovnoj klasi. Graditelji i nasljeđe. Stvaranje hijerarhije klasa na više razina. Pokazivači na izvedene klase. Jednostavno i višestruko nasljeđivanje.

Lekcija 3. Virtualne funkcije i polimorfizam

Osnove virtualnih funkcija. Čiste virtualne funkcije i apstraktne klase. Rani i kasni uvez. Preopterećenje funkcija i metoda. Parametarski polimorfizam

Lekcija 4. Odnosi između objekata u C++

Sastav, agregacija, asocijacija, ovisnost. Klase kontejnera. Operatori konverzije tipa. Primjeri programa u C++

Lekcija 5: Funkcije i metode dijeljenja

Preopterećenje operatera. Predlošci funkcija i klasa. Eksplicitna i djelomična specijalizacija predložaka. Primjeri jednostavnih programa

Lekcija 6. I/O niti

Hijerarhija klasa toka. I/O operacije za standardne tipove. Organiziranje I/O za prilagođene vrste. Rad s datotekama i međuspremnicima u memoriji. Alati za formatiranje izlaza, manipulatori

Lekcija 7. Podrška modularnosti. Pisanje igre Blackjack

Kompilacijske jedinice. Podjela na zaglavne i izvedbene datoteke. Direktive pretprocesora, makronaredbe i uvjetna kompilacija. Pisanje igre Blackjack

Lekcija 8. Mehanizam iznimke

Uzbuđenje i obrada situacije. Savijanje steka, izvođenje konstruktora i destruktora. Podrška za hijerarhiju klasa.
Standardne klase izuzetaka. Primjeri programa koji koriste iznimne situacije

Tečaj za one koji nastavljaju učiti programiranje u C++ posvećen je upravljanju memorijom i radu s podacima na niskoj razini. Daje ideju o načelima upravljanja memorijom u C++ programu, organiziranju pohrane podataka i funkcijama adresiranja. Poseban dio kolegija govori o sustavu tipa C++ i transformacijama između prikaza podataka. Osim toga, ukratko su prikazane mogućnosti C++ pretprocesiranja s mogućnošću generiranja izvornog teksta tijekom prijevoda.

Lekcija 1: Osnove upravljanja memorijom

Lekcija 2. Upravljanje tipkanjem. Vrsta sustava

Lekcija 3. Predobrada. Uvjetna kompilacija

Izrada programa s grafičkim sučeljem u C++. 1 mjesec.
Qt Framework

Lekcija 1. Qt Creator: Osnove

Što je Qt? Kratki osvrt mogućnosti (pomoć, qtdemo, lingvist, uic, itd.). Instalacija QT knjižnice i razvojnog okruženja. Postavljanje Qt Creatora za rad (odabir prevoditelja, programa za ispravljanje pogrešaka, direktorija itd.). Izrada i pokretanje prve aplikacije (Hello world!). Widgeti. Razne vrste polja za ispis teksta. Gumbi i indikatori.
Obrada signala iz widgeta.

Lekcija 2. Modularnost u Qt-u

Osnovni Qt moduli. Hijerarhija klasa. Načelo modularnosti. Odvajanje motora i sučelja. Pojam "model - prikaz". Popis, stablo, tablica i metode za njihov prikaz. Zaštitite izlazna polja. Dokumentacija o Qt modulima i klasama. QMake i auto-build sustavi za projekte. Sustav za sastavljanje i povezivanje modula.pro datoteke

Lekcija 3. Rad s podacima u Qt-u.

Klase kontejnera. Iteratori. Sekvencijalni spremnici. Asocijativni spremnici. Rad sa žicama. Čitanje, prikaz i spremanje slika. Rad s datotekama i imenicima. I/O tokovi. Osnovne metode otvaranja datoteke QFile, QFileDialog. Programski resursi.

Lekcija 4. Interakcija objekata u Qt-u

Qt objektni model. Upravljanje memorijom. Hijerarhija objekata. Signali i utori. Spajanje i rastavljanje objekata. MOC je prevoditelj meta-objekta. Princip petlje događaja. Obrada događaja. Događaji miša i tipkovnice. Filtri događaja. podrška različiti jezici. Lokalizacija programa. Dinamička promjena jezika (QLinguist). Žalba na naredbeni redak iz programa

Lekcija 5. Razvoj GUI-a u Qt-u

QWidget klasa. Vrste widgeta. Hijerarhija widgeta. Povezivanje OpenGl-a i drugih izlaznih biblioteka trećih strana. Izrada obrazaca u Qt Designeru. Korištenje obrazaca u projektima. Izgled widgeta. Politika promjene veličine. Povezivanje signala na utore. Fokus unosa. Stilski listovi. Paleta boja. Izradite vlastite widgete.

Lekcija 6. Razvijanje prozorskog sučelja u Qt-u

Sučelje s jednim i više dokumenata. Zasloni djeteta i roditelja. Podklase (QDialog itd.) Glavni prozor. Alatne trake. Statusna traka. Izrada jelovnika. Padajući izbornik. Kontekstni izbornik. Dijaloški okviri. Otvaranje, spremanje i ispis dokumenata.

Lekcija 7. Rad s grafikom i tekstom u Qt-u

QPainter kontekst crtanja. Koordinatni sustavi. Točka, linija, pravokutnik, poligon. Perje, četke. Modeli u boji. Gradijenti. Okvir za grafički prikaz. Scenska i izvedba. Tekst s elementima oblikovanja. Fontovi. Rad s html označavanjem. Izlaz i spremanje. WebEngine. Implementacija jednostavnog web preglednika.

Lekcija 8. Tajmeri, procesi i niti u Qt-u

Datum i vrijeme. Događaji mjerača vremena. Procesi. Pokretanje, trčanje i zaustavljanje. Potoci. Višenitnost. Razmjena signala i događaja. Sinkronizacija. Muteksi

Lekcija 9. Qt Quick tehnologija

QML jezik. Elementi korisničkog sučelja. Kontrola postavljanja elemenata. Grafički elementi. Rad sa slikama i fontovima. Rad s mišem, tipkovnicom i touchpadom. Implementacija animacije. Korištenje QML-a u projektu

Lekcija 10. Dodatni razvojni alati i Qt alati za izgradnju

Testiranje programa. Vrste grešaka. QDebug. Otklanjanje pogrešaka korak po korak. Kontrolne točke. Varijabilni prozori i lanci poziva. Jedinično testiranje. GUI testiranje. Vrste izgradnje projekta (ispravljanje pogrešaka, izlaz, profiliranje). Qt Creator i sustavi za kontrolu verzija. Git. Pronalaženje povezanih knjižnica. Kako kupcu poslati aplikaciju (bez izvornih kodova) da mu se sigurno pokrene

Lekcija 11. Rad s bazama podataka (DB) u Qt-u

Kratke informacije o SQLite DBMS. Osnovne operacije pri radu s bazom podataka. Qt alati za rad sa SQLiteom. Implementacija rada s bazom podataka kroz koncept “model-view”. Izgradnja i povezivanje drugih biblioteka baza podataka (Postgresql/mysql/ets)

Lekcija 12. Rad s umrežavanjem u Qt-u

Mrežni protokoli visoke i niske razine. Spajanje preko utičnica. Model klijent-poslužitelj. Kontrola pristupa mreži. Povezivanje s bazama podataka na poslužitelju

Tijekom prakse razvijat ćete OpenSource uređivač teksta poput Emacsa u C++ s dodacima. Steći ćete vještine timski rad, rad s git i tasktrackerom, a također se upoznajte s Agile razvojnim metodologijama, SCRUM, KANBAN.

Lekcija 2. Uvod u fleksibilne metodologije. Pratioci zadataka

Scrum i Kanban metodologije. Kako preuzeti zadatke. Prednosti inicijative i odgovornosti. Pratioci zadataka u Kanban stilu. Postavljanje SMART ciljeva. Tehničke specifikacije. Priče korisnika. Scenariji korištenja.

Lekcija 3. Agilni razvoj. Scrum i Kanban

Vrijednosti agilne metodologije. Scrum (detalji). Kanban. Greške u implementaciji. Cargo kult. Mikromenadžment. Zašto je potrebna transparentnost i kako je postići. Scrum chat.

Lekcija 4. Rizici i rokovi

Rizici planiranja i upravljanja. Rokovi i njihova vrijednost. Upravljanje vremenom.

Lekcija 5. Motivacija

Maslowljeva piramida. Tri razine motivacije. Kako se motivirati? Motivacija prema Lebedevu. Parabola o psu. Disciplina.

Lekcija 6. Problemi i rješenja

Pogreške u planiranju i prikupljanju potreba. Greške upravljanja: mikromenadžment, imitacija. Posljedice: fluktuacija, prekovremeni rad, noćni rad. Pokušaji uvođenja novih zahtjeva i promjena. Nedostaju rokovi. Beznadni projekti. Odgovornost. Spašavanje projekta. Kada biste trebali prestati? Stožer.

Lekcija 7. Mentorstvo

Upravljanje timom. Zašto je mentorstvo važno. Koliko često programer mora biti mentor? Vještina vođenja. Delegacija. PAMETNI ciljevi. Sposobnost učenja.

Lekcija 8. Kvaliteta proizvoda

Sirovi proizvod. Kvalitetan proizvod. Prototip koji radi brzo. Kod visoke kvalitete. Ravnoteža. Odbijanje nekih funkcija. Funkcionalno ispitivanje. Crno bijela kutija. Jedite hranu vlastitog psa.

Lekcija 9. Pisanje životopisa

Meke vještine. Teške vještine. Radim na svom životopisu.

Lekcija 10. Priprema za intervju

Razgovor s HR menadžerom i budućim menadžerom.

Lekcija 11. Karijera u IT tvrtki. Izgledi

Za koje se tvrtke isplati prijaviti? Razvoj stručnjaka. Junior, Middle, Senior, Team Lead, CTO. Upravljanje.

Lekcija 12. Sažimanje

Pregled postignutog. Oproštajne riječi.

Kako postati programer. 13 lekcija.
Korak po korak upute za traženje posla

Karijera u programiranju je uzbudljivo putovanje u svijet moderne tehnologije. Svaki programer ima svoju priču i iskustvo. Međutim, postoji osnovni algoritam koji će vam pomoći da napravite prve korake ispravno i dovedete do svog cilja. Pripremili smo 13 video lekcija u kojima smo najviše odgovorili trenutni problemi o karijeri programera u tvrtkama i na freelance tržištu. Često razmišljate o zapošljavanju i osjećate li da ste spremni početi zarađivati? Onda je ovaj video tečaj za vas.

Lekcija 1. Zanimanje "Programer"

Značajke profesije; PITANJA; potražnja na tržištu rada.

Lekcija 2. Profesionalno usmjeravanje

Hoću li postati uspješan programer? Čimbenici uspjeha.

Lekcija 3. Počnimo pisati životopis

Najvažniji je prvi dojam; kako nazvati poziciju.

Lekcija 4. Odabir programskog jezika: web development

Pregled jezika za razvoj web stranice: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; pravi izbor.

Lekcija 5. Mobilni razvoj. Univerzalni programski jezici

Pregled jezika: Java, Objective-C, Swift; C#, C++, Python: pravi izbor.

Lekcija 6. Pravila za učinkovit životopis

Popis tehnologija; portfelj; diplome i svjedodžbe; osobne kvalitete. Pogled tehničkog stručnjaka i HR-a.

Lekcija 7. Traženje posla: što, gdje, kada

Posao iz snova, psihološki aspekti; tehnika zahtjeva.

Lekcija 8. Intervju i probni rok

Intervjui za programere: kako se ponašati, što reći, što slušati; probni rad i pravila za njegovo polaganje.

Lekcija 9. Freelancing: prvi koraci

Pregled freelancing platformi; značajke registracije; registracija računa; kako se istaknuti među većinom izvođača.

Lekcija 10. Freelancing: početak i pronalaženje narudžbi

Strategija traženja naloga; prioritet naloga: što preuzeti; Pregovaranje; zadaci i zamke tehničkih specifikacija; metode kontaktiranja klijenta; pisanje odgovora i privlačenje pažnje klijenata; prava pitanja.

Lekcija 11. Freelancing: ispunjavanje narudžbi i plaćanje

Načini plaćanja: virmanom ili gotovinom; plaćanje unaprijed ili naknadno plaćanje; pregled situacija u kojima će svaka metoda bolje funkcionirati; priprema za rad i obvezujući ugovori s klijentom; značajke procesa rada; završne faze suradnje; dijeljenje povratnih informacija; tehnika "savjetovanja".

Lekcija 12. Specijaliteti u području IT-a

Kako ide razvoj velike tvrtke? Tko su analitičari, dizajneri, testeri, arhitekti, voditelji projekata, voditelji timova itd.

Lekcija 13. Ljestve karijere u IT-u

Kako izgleda ljestvica karijere u IT-u? U kojim je specijalnostima lakše započeti svoj put? Kakvi su izgledi za razvoj?

Tečaj, razvijen u suradnji sa školom EnglishDom, pomoći će vam da svladate ključne teme na engleskom jeziku koje su relevantne za početnike u IT stručnjacima. Maksimalna vježba i fokus na IT vokabular. 10 lekcija pokriva pisanje životopisa, tehničke zadatke i poslovna pisma, intervjui i pregovori, međunarodna komunikacija prilikom promoviranja vašeg projekta. U živim dijalozima na engleskom jeziku studenti će učvrstiti fraze koje će biti korisne u radu programerima i testerima, marketinškim stručnjacima i dizajnerima.

Lekcija 10. Pokretanje

Razgovaramo o našem projektu i predstavljamo tim na engleskom.