# BE5B33PGE – Programming for Engineers

## 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

Programming homeworks
There are 10 programming homeworks in the semester. The total value of the homeworks is 50 points, the value of each one homework is 5 points. To obtain the assessment it it necessary to solve successfully a number of problems which yields at least 25 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.    --   4.3.
2.   26.2.    --  11.3.
3.    4.3.    --  18.3.
4.   11.3.    --  25.3.
5.   18.3.    --   1.4.
6.    1.4.    --  15.4.
7.    8.4.    --  22.4.
8.   15.4.    --  29.4.
9.   22.4.    --   6.5.
10.  29.4.    --  13.5.    .

Correct 10 of given 10 test cases   ...  5 pts
Correct  9 of given 10 test cases   ...  4 pts
Correct  8 of given 10 test cases   ...  3 pts
Correct  7 of given 10 test cases   ...  2 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 25 of maximum 50 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

Dates and locations of examinations

Will be specified at the end of the semester.

Homeworks completed

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

If you want to use a school computer instead, notify the teacher, at least one week in advance.

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

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 25 points.
• Points gained by solving the programming part. Acceptable minimum is 15 of maximum 30 points. Each correctly processed input file of total 10 files is worth 3 points.
• Points gained by solving the analytical part. Acceptable minimum is 10 of maximum 20 points. The amount of points gained is decided by the examiner.
Points total   Grade
============   =====
< 50       F
50  -  59       E
60  -  69       D
70  -  79       C
80  -  89       B
90  - 100       A