Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Basics of Programming 2

    A tantárgy neve magyarul / Name of the subject in Hungarian: A programozás alapjai 2

    Last updated: 2008. április 17.

    Technische und Wirtschaftswissenschaftliche Universität Budapest
    Fakultät für Elektrotechnik und Informatik
    Deutschsprachtige Grundausbildung
    Course ID Semester Assessment Credit Tantárgyfélév
    VIAUA116   2/0/2/f 4  
    3. Course coordinator and department Dr. Forstner Bertalan,
    Web page of the course http://www.hvt.bme.hu/~nagy/
    4. Instructors Dr. Lajos Nagy
    5. Required knowledge C Programmiersprache
    6. Pre-requisites
    Kötelező:
    (TárgyEredmény( "BMEVIHIA106" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( "BMEVIET1015" , "jegy" , _ ) >= 2
    VAGY TárgyEredmény( ahol a TárgyKód = "BMEVIMH1506", ahol a Típus = "JEGY", ahol a Ciklus = tetszőleges, ahol a KépzésKód = tetszőleges) >= 2 )
    ÉS NEM ( TárgyEredmény( "BMEVIAUAA00" , "jegy" , _ ) >= 2
    VAGY
    TargyEredmeny("BMEVIAUAA00", "FELVETEL", AktualisFelev()) > 0)

    ÉS Training.Code=("5N-A7")

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    Ajánlott:
    Grundlagen der Programmierung: Prüfung
    7. Objectives, learning outcomes and obtained knowledge

    Das Ziel des Faches ist, die Grundkenntnisse der Studenten in Richtung der Problemlösung mit Hilfe von Rechnern als Fortsetzung des voriges Semester zu erweitern, so, dass die Stundenten selbst diese Kenntnisse in ihrem weiterem Studium effizient verwenden können. Grundziel dieses Semesters ist mit weiteren Übungen die Programmiersprache C zu vertiefen, die Schritte Programmiereraufgaben vom großen Volumen mitzuteilen und in die Objekt-Orientierte Programmierung einzuführen. Die Übungen folgen der Thematik der Vorlesungen, unterstützt diese im Verstehen und im Erlernen.

    8. Synopsis

    C++ als weiterentwickelte C Sprache

    -         Klassizifierte Zusammenfassung des vorigen Semesters. Funktionsaufruf auf niedriger Ebene. Referenztyp.

    -         Overload von Funktionsnamen. Vorgegebene (default) Funktionsargumente. Inline Funktionen statt Makros.

     

    Grundlagen der Objekt-Orientierten Programmierung mit Einführung der Sprache C++

     

    -         Grundbegriffe der Objekt-Orientierten Programmierung, Prinzipien, Begriff vom Objekt. Klasse, in Einheit schließen Begriffe der Sichtbarkeit und Informationsversteckung. (Tag)Variable und (Tag)Funktionen. Der this Zeiger.

    -         Constructor und Destructor. Dynamische Sprecherbehandlung: new, new[]m delete, delete[]. Klassen zur Handlung mit dynamischen Member-daten.

    -         Initialisierung von (Tag)variablen. Konstante und statische (Member). Milderung von Sichtbarkeit: friend Mechanismus. Namesbereiche. Einführung in C++ I/O.

    -         Begriff vom Overloading der Operatoren. Verwirklichung des Overloadings mithilfe von Member-funktionen und globalen Funktionen. Bedingungen.

    -         Die Rolle der Erbung in Objekt-Orientierter Sprache. Erbung, geerbte Klasse, Grundklasse. Wirkung der Erbung auf die Sichtbarkeit. Constructoren und die Erbung.

    -         Einsetzbarkeit. Virtuelle Funktionen, abstrakte Klassen. Begrenzende Erbung. Virtuelle Destructoren.

    -         Mehrfache Erbung, virtuelle Grundklassen. Automatische Aufgaben der Constructoren und Destructoren.

    -         Typkonversion. Konversionsoperatoren der Sprache C++.

    -         Ausnahmebehandlung.

    -         Die Bedeutung der genetischen Datenstrukturen. Funktions- und Klassenschablone.

    -         Standard Template Library (STL): Container und Algorithmen. Komplexitätstheoretische Überlegungen

     

    1. Art der Kontaktstunden (Vorlesung, Übung, Labor):

    Vorlesung, Labor

    1. Forderungen

    a. Forderungen im Vorlesungsperiod

    (1)  Das regelmässige Lernen wird in der Laborübungen mit Blitzklausuren und Aufgabenblättern überprüfen.

    (2) Die Kenntnisse werden im Vorlesungsperiod einmal umfassend und nach detailliertem Überblick in Klausur geprüft, wo das im Semesterplan vorgesehen wird.

    (3) Eine große Hausaufgabe wird aufgegeben, die in Anwendung der Kenntnisse und im praktischen Verstehen hilft, und die Programmplanung, die Algorithmisierung, Testen und Dokumentation umfasst.

    (4) Die Übung wird mit in der Laborübung ausgeteilten Ausgaben gesichert, deren Termin die nächste Laborübung ist.

     

                Es gibt ein Möglichkeit zur Erkennung der Semesternote, wenn

    -         die Note der Klausur mindestens 2 ist,

    -         der Durchschnitt der Blitzklausuren mindestens 2 ist,

    -         die große Hausaufgabe ist genau der Aufgabenstellung nach angefertigt, der Laborleiter hat sie selbst übernommen und angenommen: (a) die vollständige Dokumentation, (b) das ganze Programm, das zusammen ausprobiert wird

    -         der Student löst 9 Aufgaben aus denen, die in der Laborübung verteilt werden, gibt lauffähige Kode ab, termingerecht

    -         der Student die Laborübungen regelmäßig besucht (die höchst erlaubte Abwesenheit ist im TVSz 13.§ geregelt)

     

                Würde mindestens eine Bedingung der aufgezählten 5 nicht erfüllt, so wird die Semesternote 1 /TVSz 13.§ (5a)/. Falls alle Bedingungen erfüllt werden, so wird die Semesternote wie folgt berechnet:

     

                Der Durchschnitt der Blitzklausuren ist der Durchschnitt der drei besten Blitzklausuren. Falls jemand weniger als 3 Blitzklausuren geschrieben hätte, so werden die nicht geschriebenen Blitzklausuren mit der Note 0 gezählt.

     

                Die Semesternote wird aus dem Durchschnitt des Durchschnitts der Blitzklausuren, aus der Klausur und aus der großen Hausaufgabe berechnet, wo die Klausur doppelt gewichtet wird.

     

                Die so berechnete gewichtete Note darf vom Laborleiter +/-0.5 geändert werden, in Betracht genommen wie aktiv der Student an den Laborübungen teilgenommen hat, und in welcher Qualität die eingegebenen Aufgaben angefertigt wurden.

    9. Method of instruction Vorstellung, Labor
    10. Assessment

    a. Forderungen im Vorlesungsperiod

    (1)  Das regelmässige Lernen wird in der Laborübungen mit Blitzklausuren und Aufgabenblättern überprüfen.

    (2) Die Kenntnisse werden im Vorlesungsperiod einmal umfassend und nach detailliertem Überblick in Klausur geprüft, wo das im Semesterplan vorgesehen wird.

    (3) Eine große Hausaufgabe wird aufgegeben, die in Anwendung der Kenntnisse und im praktischen Verstehen hilft, und die Programmplanung, die Algorithmisierung, Testen und Dokumentation umfasst.

    (4) Die Übung wird mit in der Laborübung ausgeteilten Ausgaben gesichert, deren Termin die nächste Laborübung ist.

     

                Es gibt ein Möglichkeit zur Erkennung der Semesternote, wenn

    -         die Note der Klausur mindestens 2 ist,

    -         der Durchschnitt der Blitzklausuren mindestens 2 ist,

    -         die große Hausaufgabe ist genau der Aufgabenstellung nach angefertigt, der Laborleiter hat sie selbst übernommen und angenommen: (a) die vollständige Dokumentation, (b) das ganze Programm, das zusammen ausprobiert wird

    -         der Student löst 9 Aufgaben aus denen, die in der Laborübung verteilt werden, gibt lauffähige Kode ab, termingerecht

    -         der Student die Laborübungen regelmäßig besucht (die höchst erlaubte Abwesenheit ist im TVSz 13.§ geregelt)

     

                Würde mindestens eine Bedingung der aufgezählten 5 nicht erfüllt, so wird die Semesternote 1 /TVSz 13.§ (5a)/. Falls alle Bedingungen erfüllt werden, so wird die Semesternote wie folgt berechnet:

     

                Der Durchschnitt der Blitzklausuren ist der Durchschnitt der drei besten Blitzklausuren. Falls jemand weniger als 3 Blitzklausuren geschrieben hätte, so werden die nicht geschriebenen Blitzklausuren mit der Note 0 gezählt.

     

                Die Semesternote wird aus dem Durchschnitt des Durchschnitts der Blitzklausuren, aus der Klausur und aus der großen Hausaufgabe berechnet, wo die Klausur doppelt gewichtet wird.

     

                Die so berechnete gewichtete Note darf vom Laborleiter +/-0.5 geändert werden, in Betracht genommen wie aktiv der Student an den Laborübungen teilgenommen hat, und in welcher Qualität die eingegebenen Aufgaben angefertigt wurden.

    11. Recaps
    1. Nachtragmöglichkeiten

    - Die Klausur kann einmal nachgetragen werden.

    - Aus den 9 Kleinaufgaben 3 dürfen nicht termingerecht eingegebenen werden. Der letzte Nachtragtermin ist gleich dem letzten Nachtragtermin der großen Hausaufgabe.

    - Nachtrag der großen Hausaufgabe ist höchsten in der Nachtragwoche – mit dem Laborleiter besprochen - möglich (am letzten Tag bis 12.00 Uhr), wobei Nachtraggebühr bezahlt werden muss und nach dem letzten Termin wird nichts mehr angenommen. In der Nachtragwoche ist es möglich nur solche Aufgaben, Dokumentationen nachzutragen, die wegen Unvollständigkeit oder Fehlerhaftigkeit zurückgewiesen wurden.

    - Wurde die (Nachtrag)Klausur oder der Durchschnitt der Blitzklausuren mit 1 benotet, so kann die Semesternote in der Nachtragwoche – nach TVSz 13.§ (5) – in Form einer wiederholten Prüfung erhalten werden, wo der ganze Semesterstoff geprüft wird, wobei die große Hausaufgabe bis Ende der Nachtragwoche angenommen wird.

    12. Consultations

    Nach Bedarf mit Lehrer besprechen

    13. References, textbooks and resources
    • Benedek Zoltán, Levendovszky Tihamér: Szoftverfejlesztés C++ nyelven, SZAK kiadó, 2007
    • Nyisztor Károly: Gyakorlati C++, Kossuth Kiadó, 2004
    • B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000 /Bjarne Stroustrup: A C++ programozási nyelv, Kiskapu 2001
    • Tóth Bertalan: Programozzunk C++ nyelven, ComputerBooks, 2003
    • Benkő Tiborné, Benkő László: Programozási feladatok és algoritmusok Turbo C és C++ nyelven, ComputerBooks, 1997
    14. Required learning hours and assignment
    Kontakt óra 56
    Félévközi készülés órákra 20
    Felkészülés zárthelyire 20
    Házi feladat elkészítése 24
    Kijelölt írásos tananyag elsajátítása -
    Vizsgafelkészülés -
    Összesen 120
    15. Syllabus prepared by Dr. Jereb László
    Dr. Németh Pál
    Dr. Szeberényi Imre
    Dr. Tevesz Gábor
    Vitéz András
    Dr. Levendovszky Tihamér
    Dr.Lajos Nagy