Warning

# BE5B33PGE – Programming for Engineers

## Goals

The course is concerned with the ability to implement effectively solutions of various problems arising in elementary computer science.
– Processing numerical and text data.
– Analyzing simple tree and graph structures.
Integral part of the seminaries are graded practical 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 8 programming homeworks in the semester. The total value of the homeworks is 16 points, the value of each one homework is 2 points. To obtain the assessment it it 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.

Communication with the upload system is described on the page Upload System.

• A successful solution of a homework must produce a correct result on at least 9 of 10 input data files.
• A successful solution has to be effectively implemented. A time limit is specified for each input data file. The limit varies between 1 and few tens of seconds for different inputs. The solution must produce the result within the time limit.
• 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.   8.3. -- 21.3. ( Arrays processing )
2.  13.3. -- 26.3. ( Arrays processing )
3.  20.3. --  2.4. ( text/string processing )
4.  27.3. --  9.4. ( text/string processing )
5.   3.4  -- 16.4. ( Recursion )
6.  10.4. -- 23.4. ( Recursion )
7.  17.4. -- 30.4. ( Graph search )
8.  24.4. --  7.5. ( Graph search )

Correct 10 of given 10 test cases   ... 2 pts
Correct 9 of given 10 test cases    ... 1 pt
Correct 8 or less of 10 test cases  ... 0 pts

Assessment

• It is necessary to obtain at least 10 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.

# Exams

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.

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, and what is the effectiveness of the code. 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 similar (and somehow simpler) 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 4 hours (240 min). In the first 30 minutes of this part it is not allowed to write a code. This time is intended for individual analysis of the problem. 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 10 points.
• Points gained by solving the programming part. Acceptable minimum is 5 points. Each correctly processed input file of total 10 files is worth 1 point.
• Points gained by solving the analytical part. Acceptable minimum is 6 of maximum 12 points. The amount of points gained is decided by the examiner.
Points total   Grade
============   =====
< 21       F
21  -  23       E
24  -  26       D
27  -  30       C
31  -  34       B
35  -  38       A