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

    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Programming 2

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

    Last updated: 2016. május 4.

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

    BME Faculty of Natural Sciences

    BSc in Phisics Program

    Course ID Semester Assessment Credit Tantárgyfélév
    VIEEA026 2 2/0/2/f 4  
    3. Course coordinator and department Dr. Pohl László,
    Web page of the course
    4. Instructors

    Zsolt Kohári

    Assistant researcher

    Department of Electron Devices

    5. Required knowledge Knowledge of the C programming language.
    6. Pre-requisites

    Programming (VIEEA024) successfully done (credits obtained).

    Who has done Basics of programming 2. (VIIIA114 or VIAUA116) subject must not take this course.
    7. Objectives, learning outcomes and obtained knowledge The basic aim of the subject is to continue the understanding of computer problem solving methods and basic tools, started last semester, from thae same practical point of view. Basic objective of this semester to have learnt basic principles and practical usage of object-oriented programmingby using the C ++ language, specifically tailored to the needs of physics students. The labs material continuously follows the syllabus of lectures, supports their understanding and deepening.
    8. Synopsis

    Week 1: Overview, C repeat, process of function call, const, make, purpose and possibilities of profiling.

    Week 2: Number representation questions in simulations, inaccuracy, instability, InF, NaN, different real types, fitting function versions.

    Week 3: Function overload, default arguments, inline function to replace macros, the reference type, dynamic memory management: new, new [], delete, delete [].

    Week 4: Object-oriented programming concepts, principles, objects, classes, member variables and member functions, the this pointer, encapsulation, visibility and data hiding (complex number class).

    Week 5: Constructors and destructors, exception handling, operator overload by member function and by global function (rational number class).

    Week 6: Dynamic classes with members, copy constructor, assignment operator, the destructor. (Vector and matrix classes)

    Week 7: Member variable initialization, constants and static members, namespaces, C++ I/O, overload of >> and << operator.

    Week 8: Standard Template Library (STL) vector class, application examples, behavior of vector and simple C array as parameters/return value.

    Week 9: STL string, vector algorithms (find, sort, transform, accumulate ...), further application examples.

    Week 10: Function and class templates.

    Week 11: Inheritance I. Objectives, derived class, base class, visibility, constructors/destructors.

    Week 12: Succession II. Virtual functions, abstract classes, virtual destructor, heterogeneous collection.

    Week 13: Some interesting elements of C++11.

    9. Method of instruction
    One 90 minutes lecture and one 90 minutes practice in computer lab in every week. The purpose of the lab is to have deepen and to have tried in practice what was said in the lecture, and to create object-oriented vision.
    10. Assessment

    There is one 2 hours lecture and one 2 houres laboratory a week. The lab presence is mandatory, checked at each ocassion. Insufficient laboratory preparedness counts as missed lesson. During the semester there are five small tests written in labs. Small tests cannot be repeated. A missed small test is counted as 0. The average of the three most successful small test matter in the final mark. During the semester time a "big" midterm test is written. Succesfull mindterm is required. The midterm can be repeated one time in the study period and one time in the replacement period. A homework will be given in the sixth week of the semester in lab and it mast be presented by the student until the last lab lesson of the semester. The homework can be presented in the replacement periode for a fee.

    Requirements for the successful completion of the course:
    • not missed more than 30% of labs,
    • the average of the three best small tests results of at least sufficient,
    • at least a pass grade in the midterm
    • the homework finished within the prescribed time and received a minimum pass grade.

    The final grade comes as
    • midterm result: 35% weight
    • the average of the three best small tests: 35% weight
    • homework rating: 30% weight.
    • the lab leader can change the result by +/- 0.5 grade depending on the activity of the student.

    11. Recaps The midterm test can be repeated one time in the study period and one time in the replacement period. Participation and small test replacement is not possible. Additional homework submission is possible until the end of the replacement week for a fee.
    12. Consultations Consultation is by e-mail or personally by appointment.
    13. References, textbooks and resources [1] B. Stroustrup: The C++ programming language Addison-Wesley, 3rd Edition, 2000 /Bjarne Stroustrup: A C++ programozási nyelv, Kiskapu, 2001
    [2] Andrei Alexandrescu, Herb Sutter: C++ Coding Standards: 101 Rules, Guidelines, and Best Practices, Addison-Wesley Professional; 1 edition (November 4, 2004)
    [3] Scott Meyers: Effective C++: 55 Specific Ways to Improve Your Programs and Designs, Addison-Wesley Professional; 3 edition (May 22, 2005)
    14. Required learning hours and assignment
    Preparation for classes
    Preparation for test
    Homework assessment
    Learning of prescribed matters
    Preparation for exam
    Sum 120