empirical software engineering tasks, such as: definition of the scope of the candidates' research project 48 and functional requirement elucidation. I adopted "divide and conquer" paradigm to script programming, 49 pattern recognition of their data and processes, which suits well biological application development. 50 Practical, interactive, and personalized activities in the context of each candidate in a real-time way 51 improves consolidating concepts of programming languages and autonomy for life science candidates, 52 which, in practice, put them in the path to become bioinformatics engineers. Python is a hybrid programming language that allows scripting in a functional and object-oriented 56 paradigm (https://www.python.org/doc/). By its resources, Python is considered a production-ready 57 language, provides clear syntax and semantics, taking advantages of mandatory code indentation, which 58 improves readability and refactoring. Python prioritizes the developer experience, making many software 59 engineers choose it as a programming language, based on their potential for productivity, learning curve 60 cost, and computational support. The course "Programming for Bioinformatics with Python" was designed to provide a basic knowledge in 72 high-level programming languages for graduate students in genetics and molecular biology, at the Federal 73 University of Pará.
This curricular component is a way of improving computational skills, encouraging and arousing 75 autonomy in algorithm implementation for processing and analyzing biological data within the context 76 of a master, doctoral or post-doctoral research project of candidates with little or no knowledge of 77 programming languages.
The course was offered twice, from March to April 2019, and for the same months in 2020. The first Differently from some courses, that use terminal or simple text-based editors, we conducted pro-91 gramming practical classes using the PyCharm Community (https://www.jetbrains.com/pt-br/), which 92 is a professional integrated development environment (IDE) dedicated to improve Python programming.
Linux Ubuntu environment was used for running scripts by command line. (https://seaborn.pydata.org), that are proposed to assist routines for data manipulation and visualization.
In parallel to programming Python topics, the course was designed to execute students' research 105 tasks. First, at the beginning of the course, all students were asked to provide a summary of their 106 graduate projects. Second, problems in computational biology must be identified within the scope of 107 each research project. Then, we were able to draw an overview of computational solutions, elicit and 108 select functional requirements for bioinformatics problems, considering the time and scope. We adopted 109 a divide-and-conquer strategy to implement solutions in the course time. In the classes on data types and data structures, we explored how "omics" data could be modeled be simply represented by a string, or even by a more robust object like Bio.Seq from BioPython library.
The Seq object provides methods similar to those implemented for strings, such as count, find, split 120 and strip. In addition, the Seq object has an alphabet as an attribute, which can be instantiated from being predominant the education in Biology (n = 6). Only one of the students reported a previous 176 training in a field related to technology and data processing. The entire distribution of students by area 177 is shown in Figure 2A . in the course. This is an aspect that highlights a level of autonomy achieved by students on developing 236 their own solutions.
With the described approach, new perspectives on training graduate students were conceived, with 238 subjects related to programming languages. These students are now able to deal with bioinformatics 239 problems that require analysis of large scale data, such as genome sequences and transcriptomic data.
The course methodology consequently demystifies the use of programming languages and presents itself 241 as a unique opportunity for the application of computer knowledge, to achieve quick solutions. tories. This aspect has been the motivational element to make the students have a real perception of the 261 applicability of their own scripts or computational pipelines. This fact corroborates the high percentage 262 of students who still use Python after the end of the course.
In this way, I believe that this report contributes to consolidate new teaching methodologies, including 264 applied classes of high-level programming languages like Python for bioinformatics in the era of "omics" 265 sciences.
Acknowledgements 267
Thanks to all graduate students that answered the online questionnaire and remain doing science and 268 scripting in Python, even in pandemic situations. The outcomes of that questionnaire provided a helpful 269 feedback to improve programming language training. 270 core competencies (an update from the curriculum task force of iscb's education committee). PLoS 304 computational biology, 12(5), e1004943.