Basics of Programming 2 (ENVIAUAA01)

Tárgy hivatalos adatlapja: https://www.vik.bme.hu/kepzes/targyak/VIAUAA01/en/

General Information

Prerequisites
Good knowledge of the C programming language.

Required/ Suggested Previous Courses
The course can be attended by students who have completed the course "Basics of Programming I".

Synopsis and Objectives
This course, as a basic BSc course based on the previous term, continues the exposition of methods and tools for computational problems. The main goal is the introduction to object-oriented programming. Based on the C programming language skills, the object-oriented techniques are introduced with the help of the C++ programming language. The curriculum of computer laboratories continuously follows the lectures.

Detailed Syllabus of the Course and Topics for the Final Closing Examination (Thesis Exam)

1. C++ as a Revised Version of C

  • Recapitulation of curriculum provided in the previous term. Reference type.
  • Function name overload. Default function parameters. Inline functions instead of macros. Constants and constant parameters.

2. Fundamentals of the Object-Oriented Programming in C++

  • Principles of object-oriented programming, the concept of the object. Concepts of class, encapsulation, visibility, and information hiding.
  • Constructors and destructors. Dynamic memory management: new, new[], delete, delete[]. Maintaining dynamic attributes.
  • Attribute initialization. Constants and static members. Mitigation of visibility: friend mechanism. Namespaces. Introduction to C++ I/O.
  • Concept of operator overloading. Realizing operator overloading with local operations and global operations. Restrictions.
  • The role of the inheritance in object-oriented programming. Inheritance, derived class, base class. Influence of inheritance on visibility. Constructors and inheritance.
  • Polymorphism. Virtual functions, abstract classes. Restricting inheritance. Virtual destructors.
  • Multiple inheritance, virtual base classes.
  • Type conversion. C++ conversion operators. Casting.
  • Exception handling.
  • The role of the generic data structures. Function and class templates.
  • Standard Template Library (STL): containers and algorithms. Complexity considerations. (Excluded from the Thesis Exam)


Education methods of the course
Lectures, computer laboratories.

Recommended online sources for studying

  • Geeks For Geeks (C++ Programming Language)
  • C++ Tutorial (Learn to Code | SoloLearn)
  • Learn Advanced C++ Programming (Online Courses - Learn Anything, On Your Schedule | Udemy)
  • C++ For C Programmers(Online Courses & Credentials by Top Educators | Coursera)
  • Any other C++ resource, book, or online course
 

 

Requirements

In lecture term:

  • The continuity of learning is checked by Placement Tests at computer laboratories, which is a pass/fail check. If a student fails the Placement Test, they cannot take part in the computer laboratory (in other words the attendance is null).
  • The quality of learning is checked by 5 Control Tests (max. 10 points each) at computer labs.  
  • There is no Placement Test in the first computer laboratory. There is no Placement Test on the day of the Control Test.
  • Two in-class Midterm Tests will take place during the semester: one in the middle, and another at the end of the semester.
  • The student should submit a Project Assignment that requires the application of system and algorithm design, testing, and documentation skills. It should be submitted electronically on the course webpage. The student must always follow the directions of the computer lab Instructor and use the file names, formats, etc. specified in the assignment (if any), or else their submission will not be accepted. Please note that the Project Assignment or Project Topic Selection Form may not be submitted after the extended deadline and/or by e-mail for any reason!

The course is finished successfully, if

  • The student is a regular attendant at the lectures, and computer laboratories; the absence cannot exceed 30% as is defined in the Code of Studies and Exams (CSE), Article 14, Point 3. Absence at lectures and computer laboratories is taken separately.
  • The three best Control Tests should score at least 40% each; the total points for all taken Control Tests should be at least 20.
  • The sum of two Midterm Test points should be at least 50% of the total possible score for both tests.
  • The Project Assignment is prepared based on the specification, and it is personally accepted by the computer lab instructor. Furthermore,
    • the full documentation is prepared, and
    • the software is approved by the computer lab Instructor at the personal defense


All of the above conditions must be fulfilled, otherwise, the term grade is unsatisfactory (failed).

If all the abovelisted conditions are fulfilled, the grade is calculated as follows:

  • The average of the Control Tests is the average of the three best Control Tests. If anybody has fewer than three Control Tests, then the not written tests are considered with 0 points.
  • The final grade is the weighted average of the Control Tests and the Midterm Tests.
  • Rounding scores to the nearest integer number will be done using the usual algebraic rules.

 

FinalResult[%] = (MidTerm1 + MidTerm2 + SumOf3BestCT / 0.3) / 3

Final grade:

  • 85%       - Excellent (5)
  • 71-84%  - Good (4)
  • 58-70%  - Satisfactory (3)
  • 45-57%  - Passed (2)
  • 0-44%    - Failed (1)

 

Score Reward and Penalty Policy

The final score calculated according to the formula above will be adjusted according to your performance during the semester. The policy is the same for all BoP2 lab groups and is applied uniformly.

Score Reward:

  • Active participation in the lectures, awarded by the lecturer: +5 score points, at most 5 students in the whole course
  • Active participation in the labs, awarded by the lab instructor: +5 score points, at most 1 student in group20 lab, and 2 students in group30 lab
  • Outstanding Final Project, which resembles the great amount of personal work of a student; appointed by the lab instructor and awarded by the lecturer: +10 score points, at most 1 for any lab group
  • Second best Final Project, which resembles much work above the average requirements: +5 score points, at most 1 student in group20 lab, and 2 students in group30 lab
  • Very good Final Project, which contains a great number of additional features, prepared perfectly, submitted in time, and uses extra techniques, awarded by the lab instructor: +5 score points, for the group20 and +8 score points for the group30 lab (the points can be split among 1-3 students)


Score Penalty:

  • Failure to earn the acceptance of the Final Project Topic Selection form before the deadline (First Checkpoint): -5 score points
  • Failure to earn the acceptance of the progress report before the deadline or to present it during the Second Checkpoint: -5 score points
  • Failure to submit (get accepted) the Final Project source code and the documentation before the deadline: -10 score points
  • Failure to submit (get accepted) the Final Project source code and the documentation before the extended deadline: Failure of the BoP2 course
  • Failure to present yourself at the Final Project defense without prior permission of your lab instructor: -5 score points
  • Failure to defend the Final Project if the examiner has reasonable suspicions that the project code was not written by the student who has submitted it: Failure of the BoP2 course + Report to the Dean’s Office
  • Failure to take the placement test, unsuccessful placement test: the lab presence is void, and no other consequences since up to 30% of the labs can be missed
  • Failure to take the Control Test: the CT score is 0, and no other consequences since only 3 best CTs are accounted for the final grade
  • Failure to take the Midterm Test: the MT score is 0, the student should retake it. Only one MT can be retaken.
  • Cheating with Placement Tests, Control Tests, Midterm Tests, and Final Project, plagiarism: Failure of the BoP2 course + Report to the Dean’s Office

 

Honor code

  • It is the responsibility of each student to complete all assignments according to the requirements set by the Instructor and to submit only work that is his or her own. Submitting others' assignments is a significant academic sin; by doing that you are committing fraud. All assignments will be automatically and manually compared against each other.
  • All parties involved in plagiarism and cheating will be prosecuted no matter who copied from whom. It is your duty to keep your code secure. An incident of this kind will be reported to the respective academic authority for measures to be taken.
  • The attendance register is circulated regularly in classes, and it is your responsibility to ensure that you sign it. You can sign a register in the first 5 minutes after the start of classes. It is an offense to sign a register on behalf of someone else and anyone found doing so may be investigated for fraud.
  • A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about rules for group work/collaboration should seek guidance from the course instructor or academic advisor. 

The code of Studies and Exams of BME (last modified in 2022) can be found here.

In this course, we want to encourage collaboration and the free interchange of ideas among students, and in particular, the discussion of project assignments, approaches to solving them, etc. However, we do not allow plagiarism, which, as commonly defined, consists of passing off as one's own ideas, words, writings, etc., which belong to another. Following this definition, you are committing plagiarism if you copy the work of another person and turn it in as your own, even if you should have the permission of that person. 

Missed Assignments Information

One Midterm Test out of two can be retaken at the end of the semester. The student can choose which test to retake, however, this choice must be reported to the professors through the registration process. Please respect the registration deadline! Throughout the semester there are 5 Control Tests, and none of them can be retaken. The Placement Tests cannot be retaken either.

Late submission of the Final Project is allowed in special circumstances. For the late submission of the Final Project, you must obtain the permission of the lab instructor and your overall score will be decreased (see Score Award and Penalty Policy). Please note that the Project Assignment may not be submitted after the extended deadline for any reason!

Texbooks and Weblinks

  • Bjarne Stroustrup "The C++ Programming Language", Addison-Wesley. Available in many languages.
  • Стивен Прата "Язык программирования С++. Лекции и упражнения". In Russan.
  • Scott Meyers "Effective C++", Addison-Wesley. In English.
  • Tóth Bertalan "Programozzunk C++ nyelven", ComputerBooks. In Hungarian.
  • Programming problems with solutions: http://www.aut.bme.hu/cpppeldatar. In Hungarian.
  • C and C++ programming resources: http://www.cprogramming.com/. In English.

Hírek   A tárgy híreinek olvasása RSS-en keresztül

Nincsenek aktuális hírek a tárgyhoz. Ha a később megjelenő hírekről azonnal értesülni szeretne, iratkozzon fel az RSS csatornánkra.

Régebbi hírek »

Jegyzetek

A tárgyhoz nincs feltöltve jegyzet, vagy az csak belépett illetve a tárgyat felvett hallgatók számára érhető el.