Information Technology and Programming

Base Knowledge

Logical-Mathematical Knowledge and English Language for reading the bibliography and online support documentation.

Teaching Methodologies

  • Theoretical classes (2 hours / week).

Theoretical classes tend to be expository, but promote the active participation of students, asking questions during the discussion of the topics covered and launching challenges for students to submit their solutions through the online academic platform. From the second topic of the theoretical component of the program, students will also use the computer during the theoretical classes to allow greater experimentation and monitoring of the learning of all the concepts taught.

  • Practical classes (2 hours / week).

In practical classes, the knowledge acquired in theoretical classes is applied through the resolution of worksheets. The practical classes will be synchronized so that students apply the concepts after being presented in the theoretical classes.

All students must attend at least 2/3 of the practical classes to have access to the regular and supplementary exams. For students who are workers or have a special status provided by law, confirmed by the information provided by Academic Services, there is no minimum attendance. Students who have access to the special season, when it occurs, are exempt from this minimum frequency.

 

Students are advised to systematically follow the theoretical classes, an indispensable condition for academic achievement and the correct understanding of the subjects. In practical classes, it is not intended to repeat what was taught in the theoretical class, that is, the introduction of the demonstrated concepts.

Learning Results

Goals:

  • Provide students with base concepts on Information Technologies.
  • Introduce them with programming concepts to implement autonomous and reusable procedures for solving simple engineering problems.
  • Transmit the knowledge necessary for the effective use of productivity applications used in the engineering context, in particular the handling of spreadsheets.

Generic skills:

  • Application of knowledge.
  • Acquire programming concepts and become an efficient user of the main tools used in the day-to-day work of an Industrial Engineer and Manager.

Specific Skills:

  • Self-learning programming practice to carry out the exercises on the practice sheets and programming challenges.

  • In the specific case of macros and spreadsheet applications, using them in an advanced way to solve engineering problems.

Program

Theoretical component
1. Introduction:
Algorithms. Steps to computationally solve a problem. Construction of algorithms pseudo-code. Elementary concepts. Constants, variables, operators and arithmetic expressions. Arrays. Data Input/Output. Modularisation. Types of Procedures. Arguments. Decision and Repetition Flow Control. Algorithm testing. Computers: architecture and operation. Languages: from machine to user, different paradigms.

2. Programming in Visual Basic for Applications (VBA):
Integrated Development Environment (IDE). Programming concepts covered generically in the previous topic applied to this programming language. Variables, operators and arithmetic expressions. Arrays. Message Boxes. Input Boxes. Modularisation and Macros. Subroutines vs. Functions. Arguments. Passing arguments by Reference or by Value. Decision and Repetition Flow Control. Library functions (Text, Conversions, Date / Time, Validation, Formatting). Error Handling. Excel Objects: Hierarchy and Collections. Properties, Methods, and Events. Selection of objects. Iterating over a collection of objects.

3. Programming in Python:

Integrated Development Environment (IDE). Programming concepts are covered generically in the first topic applied to this programming language. Arrays. Data Input/Output. Modularisation. Decision and Repetition Flow Control. Integrating Python with Excel. User Defined Function (UDF).

Practical component:

1. Advanced MS Excel:
MS Excel Environment. Workbooks, worksheets and cells. Formulas and functions. Relative and absolute references. Name management. Graphics and tables. Conditional formatting. Sorting and filtering data. Data validation and protection. Data import.

2. VBA Programming:

Recording and programming command macros. Programming function macros. Decision and repetition structures. Programming subroutines. Excel objects. Use of library functions.

3. Python Programming:

IDE Setup. Developing and running Python programs. Data Input/Output. Integrating Python with Excel. Manipulating Excel objects in Python. User Defined Functions (UDF)

Curricular Unit Teachers

Ana Cristina Costa Oliveira Alves

Internship(s)

NAO

Bibliography

Suggested:

  • Lacerda, L. C.,  Ramos, J. M., & Duarte, S. L. (2014). Lógica de programação. Ed. UFMT. http://proedu.rnp.br/handle/123456789/1533
  • Almeida, P. F.  (2021). Excel: macros e aplicações. 3ª edição. Edições Sílabo. ISBN 978-989-561-163-8 [Cota 1A-3-262]
  • Costa, E. (2021). Programação em Python: fundamentos e resolução de problemas. FCA Editora. ISBN 978-972-722-816-4 [Cota 1A-1-457]
  • Zumstein, F. (2021). Python for Excel – The Book, A Modern Environment for Automation and Data Analysis. O’Reilly Media. 978-149-208-100-5 [Cota 1A-4-213]
  • Notes and material made available on the online academic platform.

Additional:

  • Almeida, P. T. (2021). Excel avançado. 4ª edição. Edições Sílabo. ISBN 978-989-561-191-1 [Cota 1A-3-260]
  • Alexander, M., & Kusleika, D. (2019).  Excel 2019 Power Programming with VBA. Wiley. ISBN 978-111-951-492-3
  • Carvalho, A. (2019). Automatização em Excel: 69 exercícios. FCA Editora. ISBN 978-972-722-872-0 [Cotas 1A-3-257, 1A-3-258, 1A-3-259]
  • Carvalho, A. (2004). Exercícios resolvidos com Excel para economia & gestão. FCA Editora. ISBN 972-722-472-5 [Cota 1A-3-182]