BE5B33PGE – Programming for Engineers

Course goals

The course is concerned with the ability to implement elementary engineering applications in an effective way. The particular topics are:

  • Processing numerical and text data.
  • Building simple expandable applications.
  • Introduction to tree and graph structures.
  • Code debugging skills.

Python programming

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

Course evaluation and grading

Final grading in this course is awarded based on points gathered throughout the semester and from final exam, using the following schema:

Grade A B C D E F
Points ≥90 [89, 80] [79, 70] [69, 60] [59, 50] <50

There are four 'components' in the course, from which points can be gained:

Component Points
Practices 12
Homeworks 18
Midterm 20
Exam 50

Detailed point breakdown, explanation and rules:

  • During the first 6 practices, there will be smaller programming assignments comprised of multiple sub-tasks. Each assignment will be worth 2 points (2 points * 6 = 12 points) and has to be completed within one week from the practice where it was given (for precise date, see Practices).
  • There will be 3 programming homeworks, given at the later practices. They will be similar to the basic practices but more complex. Homeworks are valued 6 points each (6 points * 3 = 18 points).
  • Late submission penalty: for both, practices and homeworks, there is a penalty for late submission (after the deadline set in BRUTE). The penalty is -50% of the total points per week. That means, you can gain at most 2 points for each practice (6 points for homework) when you submit on time; if you submit one week after the deadline, you can get at most 1 point for practice (3 points for HW) and 0 points when you submit two weeks after the deadline or later.
  • There will be a midterm exam during the week of the 7th lecture, worth 20 points. It will test practical programming skills and knowledge gained during the first half of the semester. It will involve solving a few complex programming tasks, similar to practices (though, more complex), on lab computers (with no Internet access, cheatsheet of 'Python programming basics' will be provided).
  • The final semester evaluation (assessment) is based on the solutions of practices, homeworks and midterm.
  • The final grading depends on both the semester results and the final exam results.
  • The final exam will consist of a practical programming assignment (similar to midterm but more extensive, also with no Internet access) and a short theoretical oral evaluation. The final exam is worth 50 points.
  • There is no minimum requirement for the 'semestral' points (practices, homeworks, midterm). However, it is advised to gain points “wherever possible”, as leaving it all for the final exam is a risky strategy.
  • The final exam has a minimum requirement of 25 points (50%).
  • Lectures are not mandatory but attendance is highly advised.
  • Attendance of practices is also not mandatory. However, it is the best place to 'solidify' the knowledge gained from the lectures, required to complete this course! Therefore, we highly recommend attending the practices and completing the assignments.

Rules for use of AI and Plagiarism

By AI Tools, we mean modern tools like ChatGPT, Microsoft Bing Chat, Google Bard, Github Copilot, Code Llama, etc. The use of AI tools is not strictly prohibited in this course, with the exception of the midterm and final exam. However, it is not advised to use for the implementation of assignments (practices & homeworks). The reason is that learning how to implement the algorithms yourself is the best way to understand it and it is the main part of this course. Simply copy-pasting AI generated code can result in three problems: (1) bad solution (some AI tools halucinate to give you any answer and while the solution might work for the example data, it might not work in general or efficiently); (2) failing to understand the algorithm (which may lead to bad scoring during the midterm or final exams where use of AI tools will be strictly prohibited!); (3) solution being flagged as plagiarism (for multiple reasons, e.g., your solution might be identical to other students using AI tools). Of these three, the most crucial issue is that during the midterm and final exam, use of AI tools is strictly prohibited. Therefore, relying on AI tools during the semester will very likely result on you being ill-prepared for the exams.

Nonetheless, we are not against use of AI tools to generate “boiler plate” code - the code that you will need to create many times over, like reading inputs or writing out formatted output, as long as you can also do it yourself. Speeding-up your work by not needing to write something you know over-and-over is fine. Although, there is not that much boiler plate code required in this course.

If you choose to forgo our advice against the use of AI tools to solve the assignments, we recommend that you follow these rules (purely for your own benefit): (1) use the AI tools sparingly, i.e., only ask it for parts of the solution, not the entire solution; (2) read the proposed solution and re-implement it yourself for the assignment; (3) go through and get an understanding of the AI generated code.

During the midterm and final exam, use of any AI or code-generating tools is strictly prohibited!

In summary, we recommend that you do not use AI tools to solve the assignments as the ability to do it yourself is what you should learn in this course and it will be part of the examination.

Plagiarism in this course is not tolerated at all. It is also not advised, for the same reason as the use of AI tools - solving the assignments yourself is a key component of learning algorithms taught in this course.

https://cw.fel.cvut.cz/wiki/help/common/plagiarism_cheating

All study links and references are collected in the Books and on-line resources section.

Consultations

The main place for consultation is during the practices. If you need more help, feel free to ask at the end of a lecture (you get the fastest response when asking in-person) or you can e-mail the lecturer (for lecture or general course information) or the practice teachers (for practice/homework related questions). See the section Contacts below.

Contacts

Lecturer:

Radoslav Škoviera | e-mail: radoslav.skoviera {at} cvut.cz. My office is in the CIIRC building in Dejvice (see webpage for detailed address)

Lab teachers:

David Pařil | e-mail: parildav {at} fel.cvut.cz. Office KNE-220.

Pavel Šindler | email: pavel.sindler {at} fel.cvut.cz. Office KNE-220.

courses/be5b33pge/start.txt · Last modified: 2025/02/26 15:44 by sindlpa1