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.

Modification of Requirements during Distance Learning (March 2020 - May 2021)

After having changed to distance learning, the course requirements are modified as follows.

Lectures will be provided as online consultations (TUE 16:30-18:00) by using MS Teams. The course curriculum remains unchanged.

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
 

Computer Labs are carried out using distant learning techniques. The schedule is the same: WED 16:15-17:45. All lab materials can be found on the course website as usual. After each lab, you will submit the Lab Report to the instructor for evaluation. Submission should be done on the course website. Deadline: +1 week from the laboratory class. The deadlines are fixed and cannot be extended.

The Final Project is not changed during distance learning. Your topic should be approved by the lab instructor; otherwise, your Project is void. The minimal requirements are the following: an object-oriented approach to programming, dynamic memory management, exception handling, file management. Final project checkpoints are mandatory and your absence or failure to present acceptable achievements will result in the reduction of Project points. Consultations for the Final Project will be arranged by the lab instructors. You may also request a personal consultation with your lab instructor during their office hours (online).

Placement tests in the labs are canceled as they cannot be organized via distance learning.

Grading and Assessment. The Control Tests are graded with 0..10 points each. The course is failed if SUM_SCORE(CT1..5)SCORE(MTT)NON_ZERO(Reports)

2020 (the transitional period from traditional to distance learning): The Final Grade will include your Lab Reports score (weighted with 0.2) + best of traditionally written CT1, CT2 (weighted with 0.2) + Final Project score (weighted with 0.6).

2021 (full distance learning): FinalResult[%] = MidTermTest (max. 100, weighted by 0.5) + 4BestCTAverage (max. 10, weighted by 3) + LabReportsAverage (max. 10, weighted by 2)

 

Requirements (valid for traditional offline learning)

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, he cannot take part in the computer laboratory (in other words his 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 his/her 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
    • failure to earn the acceptance of the Project Topic Proposal by the deadline results in a -5 score points reduction (at most +1 week can be granted by the decision of the lab instructor)
    • failure to earn the acceptance of the Project Progress at the Checkpoint results in a -5 score points reduction (at most +1 week can be granted by the decision of the lab instructor)
    • failure to submit the Final Project and/or the Documentation by the deadline results in a -10 score points reduction (at most +1 week can be granted by the decision of the lab instructor and the course lecturer)


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 less 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.

 

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

The grade, calculated based on these rules, can be modified by the course lecturer by +/-10 points. The lecturer can make this decision based on the student's performance at the lectures and the quality of the submitted Final Project.

Final grade:

  • 85%       - excellent (5)
  • 71-84%  - good (4)
  • 58-70%  - satisfactory (3)
  • 45-57%  - pass (2)
  • 0-44%    - failed (1)

 

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 big academic sin; 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. The 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. 

Code of Studies and Exams of BUTE (last modified by the University Senate in 2018) 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. In accordance with 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 lecturer before the last class prior to the repeated test. Throughout the semester there are 5 Control Tests, none of them can be retaken. The Placement Tests cannot be retaken either.

Late submission of the Project Assignment is allowed in special circumstances. For the late submission of the Project Assignment, you must obtain the permission of the lab instructor and the course lecturer and your overall score will be decreased by 10 points. 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, 2003. 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.