Warning

# BE5B33PGE – Programming for Engineers

The course continues from 25.3. in distance online form
according to the course timetable.
Online course uses Microsoft Teams application.

## Goals

The course is concerned with the ability to implement effectively solutions of various elementary engineering applications.
– Processing numerical and text data.
– Building simple expandable applications.
– Introduction to tree and graph structures.
– Code debugging skills.
Integral part of practices are graded programming homeworks.

## Prerequisites

The student of the course is expected to be capable of simple programming in Python. The student should understand basic structures like arrays, lists, files and should be able to access and manipulate data stored in these structures.

## Semester organization

Practices attendance
Attending practices is mandatory. A student who cannot attend practices for important personal/health/study reasons has to negotiate their situation with PGE teacher(s) in advance, to establish a plan of appropriate replacement learning activities. Apart from these rules, at most two (or similar low number) unexplained absences at practices are acceptable.

Individual work
All code a student turns in during the course has to be written individually by him/her. However, students are encouraged to discuss the solution ideas with other students and teachers before coding. It is the code which has to be produced strictly individually, not the idea of the solution. Plagiarism is not supported at CTU, see the plagiarism dealing rules.

Programming homeworks
There are 5 programming homeworks in the semester. The total value of the homeworks is 20 points, the maximum value of each one homework is 4 points. To obtain the assessment it is necessary to solve successfully a number of problems which yields at least 10 points. The homeworks are assigned and the solutions are evaluated in the upload system BRUTE.

• A successful solution of a homework must produce at least 50% of correct results.
• The deadlines of the homeworks are fixed. Solutions submitted after the deadline are not graded. Individual submission plan can be agreed upon in case of prolonged sickness, foreign trip or other important causes.
• The Discussion board may help with discussions about the homeworks and other issues of the course.

    assignment --  deadline
1.   19.2.    --  30.4.  ( bonus deadline 6.3. + 4 pts )
2.   26.2.    --  30.4.  ( bonus deadline 27.3. + 4 pts )
3.   29.4.    --  23.5.
4.   12.5.    --  31.5.
5.   12.5.    --  31.5.

Correct 10 of given 10 test cases   ...  4 pts
Correct  9 of given 10 test cases   ...  3 pts
Correct  8 of given 10 test cases   ...  2 pts
Correct  7 of given 10 test cases   ...  1 pts
Correct  6 of given 10 test cases   ...  1 pts
Correct  5 or less of given 10 test cases   ...  0 pts

Assessment

• It is necessary to obtain at least 10 of maximum 20 points for solving the programming homeworks.
• It is vitally important to avoid plagiarism in the homeworks, read carefully the rules of Plagiarism. Consult the teacher in advance if there is anything unclear to you in this regard.

# Consultations

The preferred time for consultations is Tuesday afternoon and Friday afternoon.
The exact time/venue of particular consultations should be agreed upon in advance, e.g. by e-mail or personally during the lessons.

# Exams

Quarantine strategy
In particular, the regulating documents are:

The overall quarantine outline: http://www.fel.cvut.cz/en/covid/.

All exam participants are expected to know and follow the given quarantine rules during PGE exams.
If the quarantine rules are violated the exam might be terminated prematurely without yielding any result or grading.

Dates and locations of examinations

Please register yourself in Exams timetable .

Do not register in the KOS system, all reservations are handled by the Exams timetable only.

Classroom attendance

All PGE exams will be held in classical face-to-face classroom attendance form, there will be no online exam.

Homeworks completed

You should complete all homeworks you had chosen to solve before you sit for the exam.

Organization

The exam consists of the analytical and the programming part.

At the analytical part the student is given a few snippets of python code, typically about 4-5 snippets, each having at most 25 lines. The task is to explain what the code does, what is its output. There might be some lines missing in the code and a part of the task is then to fill in those lines according to the presumed functionality of the code. Also, a student may be asked to write on parper a short function in Python with specified functionality. No additional sources, including printed and electronic, may be used at the analytical part.

At the programming part the student must solve a programming problem related to the semester programming homeworks. There are 10 data input files associated with the problem and the student's code must yield a correct solution of at least 5 files. The programming part lasts 2.5 hours (150 min). Students can bring to the programming part any printed or electronic sources on a flash disk.

Programming part setting
All programming will be done on school computers equipped with python IDE. The computers will be disconnected from the Internet. One supervised computer with Internet connection will be available for occasional queries regarding syntax/semantics of particular Python features.

Consecutive terms
A student which fails at any part of the exam (analytical or programming) may repeat this part in any of later exam terms and does not have to repeat the remaining part. His/her results in the other part are not affected. When a student repeats some part more times only his/her best result from all terms of this part is graded. In total, each student can take part in at most three terms of the analytical part and three terms of the programing part.

At the exam, the total of the following is computed:

• Points gained by solving homeworks. Acceptable minimum is 10 points.
• Points gained by solving the programming part. Acceptable minimum is 5 of maximum 10 points. Each correctly processed input file of total 10 files is worth 1 point.
• Points gained by solving the analytical part. Acceptable minimum is 5 of maximum 10 points. The amount of points gained is decided by the examiner.
Points total   Grade
============   =====
< 20       F
20  -  23       E
24  -  27       D
28  -  31       C
32  -  35       B
36  -  40       A

Bonus points obtained in 1. and 2. homework are added to the homework points. This means that a student can (if they solve the exam problems successfully) obtain even more than the maximum 40 points stated above. However, in any case both exam parts remain compulsory.

Late minimum correction
When you find after the failed practical exam that the failure was caused by a trivial error in your code you may ask the examiner for repeated evaluation of the corrected code. If the corrected code works according to the exam demands you may still pass this part of the exam. The necessary conditions of a success in such case are:
1. The correction must be conceptually simple and physically short (few lines of code, at most).
2. The original failled solution must be uploaded to Brute before the end of the exam.
3. The correction must be done in the day of the exam.