Oppimistavoitteet
Tällä kurssilla opiskelija perehtyy C++:aan niin, että hallitsee sen perusteet ja osaa luoda C++:lla sovelluksia, jotka on myös kirjoitettu laadukkaasti. Kurssilla opiskelija suorittaa tehtäviä, jotka pohjaavat materiaalin eri osa-alueisiin. Joka viikolla opiskelija suorittaa 10 - 15 tehtävää, joilla testataan oppimista. Kurssin lopuksi opiskelija suorittaa projektimaisen tehtävän.
Kurssin materiaali valmistaa opiskelijaa Pearson Vuen C++ certifikaatin suorittamiseen: “CPA – C++ Certified Associate Programmer Certification” https://cppinstitute.org/cpa-c-certified-associate-programmer-certification
Kurssin sisältö:
- Johdatus kääntäjään ja ohjelmistojen kehittämiseen C++:lla
- Perustietotyypit, operaattori, tietovirtojen hallinta, syötteiden käyttö ja tulostaminen, tietotyyppimuunnokset
- Funktioiden esittely, määrittely, ylimäärittely sekä käyttäminen
- Tietokokonaisuudet
- Tekstityyppisten muuttujien käsittely, poikkeusten käsittely, nimiavaruudet
- Oliopohjainen ohjelmointi ja sen käsitteet
- Luokkien ja olioiden käsittely, luokkahierarkia ja perintä
- Ylikuormitettujen operaattoreiden, itse määriteltyjen operaattoreiden, poikkeusten määrittely
- STL: n perusteet.
Kurssin sisällön kehittämisessä on hyödynnettyä Ciscon Networking Academyn C++ programing kurssin materiaalia sekä MIT:n Introduction to C++ kurssia
Kurssimateriaalin lähteet:
Jesse Dunietz, Geza Kovacs, and John Marrero. 6.096 Introduction to C++. January IAP 2011. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.
Cisco Networking Acedemy: CPA Programming Essentials in C++
Lisämateriaaleja:
C++ Language Tutorial (http://cplusplus.com/doc/tutorial/)
Wikiversity: Introduction to C++ (https://en.wikiversity.org/wiki/C%2B%2B/Introduction)
Materiaalin osa | Aihealue |
---|---|
Viikko 1 | C++ perusteet ja käännösympäristön asentaminen, perusrakenteet |
Viikko 2 | Ohjausrakenteet |
Viikko 3 | Funktiot |
Viikko 4 | Taulukot ja teksti |
Viikko 5 | Osoittimet |
Viikko 6 | Luokat, perusteet |
Viikko 7 | Luokat, perintä, polymorphismi |
Viikko 8 | Muistinhallinta |
Viikko 9 | String luokka ja STL |
Viikko 10 | Edistyneet ominaisuudet |
Viikko 11 - 12 | Projektin totetuttaminen |
Kurssin materiaalit julkaistaan viikoittain, jokaisen viikon perjantaihin mennessä. Osana materiaaleja on tehtäviä, jotka on hyvä tehdä sekä mallivastaukset, tehtäviä ei tarvitse palauttaa.
Arviointi
Opiskelija suorittaa kurssin lopuksi tehtävän, jonka perustella kurssi arvioidaan, tehtävä suorittaminen vaatii n. 20h opiskelijan työtä. Projektitehtävässä opiskelija hyödyntää kattavasti kurssilla opittuja asioita.
Opiskelija voi aloitaa projektin tekemisen viikolla 7. Projektin ensimmäinen vaihe on hyväksyttää projetiehdotus opettajalla.
Projekti voi olla esim. 1. Konsolipohjainen peli, kuten jokin korttipeli 2. Tiedonhallinta sovellus, esim. ajoneuvorekisteri 3. UI:n sisältävä sovellus (UI tehdään QT:llä, vaati opiskelija omaa perehtymistä.)
Opiskelija toteuttaa projektin itsenäisesti ja käyttää sen Git-versionhallintaa koodin jakamiseen opettajalle. Jos Git ei ole tuttu löytyy siitä Heikki Ahosen materiaalia osoitteesta: https://centria.github.io/console/
Projektin vaatimukset
- Projektin laajus tulee olla n.20 työtuntia.
- Ennen projektin tekemistä aihe pitää olla opettajan hyväksymä.
- Projektissa tulee olla seuraavat ominaisuudet:
- Luokkien / oliota, lisäpisteitä jos perintää käytetään
- Funktiota
- Interaktio käyttäjän kanssa konsolion kautta
- Tiedostoon kirjoitus ja luku
- STL-kirjaston käyttö
- Ulkoisten kirjastojen käyttä kielletty
- Helposti luettava koodi
- Sovelluksen tulee olla hyvin suunniteltu
- Projektissa tulee olla README tiedosto, jossa kerrotaan miten ohjelma toimii ja miten sitä käytetään. README tiedostoon tulee kuvata myös itsearviointi siitä mikä oli haastavaa / helppoa ja mitä tekisit toisin jos tekisit projektin uudestaan.
Projektitehtävän aihe tulee hyväksyttää viikon 8. aikana
Tehtävä arvostellaan arvosanalla 0 - 5, mikä muodostaa myös kurssin arvosanan,
Keskustelu
Centrian Averko osallistujen keskustelukanava löytyy Optimasta