MC102 - Algorithms and Computers Programming

MC102 - Algoritmos e Programação de Computadores

MC102 - Algoritmos y Programación de Computadores

"Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do." "Ciência da computação tem tanto a ver com o computador como a astronomia com o telescópio, a biologia com o microscópio, ou a química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." "La ciencia de la computación no trata más sobre computadoras que la astronomía sobre telescopios, la biología sobre microscopios o la química sobre tubos de ensayo. La ciencia no se trata de herramientas. Se trata de cómo las usamos y de lo que descubrimos cuando lo hacemos."
Attributed toAtribuída aAtribuída a Edsger W. Dijkstra

This course is designed for undergraduate students in Computer Science and Computer Engineering. Its primary objective is to introduce the knowledge and techniques necessary for developing solutions to problems using a high-level programming language. The topics covered include basic commands, data types, logical and arithmetic expressions, sub-programming, recursion, and file manipulation. By the end of the semester, students will have the ability to analyze problems, propose algorithms to solve them, and implement those algorithms using the programming language Python.

Esta disciplina destina-se a estudantes de graduação em Ciência da Computação e Engenharia de Computação e tem como objetivo introduzir o conhecimento e as técnicas necessárias para desenvolver soluções para problemas utilizando uma linguagem de programação de alto nível. Os tópicos estudados incluem comandos básicos, tipos de dados, expressões lógicas e aritméticas, subprogramação, recursão e manipulação de arquivos. Ao final do semestre, os estudantes serão capazes de analisar problemas, propor algoritmos para resolvê-los e implementar esses algoritmos na linguagem de programação Python.

Este curso está dirigido a estudiantes de pregrado en Ciencias de la Computación e Ingeniería Informática y tiene como objetivo introducir los conocimientos y técnicas necesarias para desarrollar soluciones a problemas utilizando un lenguaje de programación de alto nivel. Los temas estudiados incluyen comandos básicos, tipos de datos, expresiones lógicas y aritméticas, subprogramación, recursión y manipulación de archivos. Al final del semestre, los estudiantes podrán analizar problemas, proponer algoritmos para resolverlos e implementar esos algoritmos en el lenguaje de programación Python.


Offering: 1st semester of 2024Oferecimento: 1ro semestre de 2024Oferta: 1er semestre de 2024
Schedule: Tuesday, from 9:00PM. to 11:00PM., Thursday, from 7:00PM. to 9:00PM., and Friday, from 9:00PM. to 11:00PM. Horário: Terça-feira, das 21:00 às 23:00, Quinta-feira, das 19:00 às 21:00, e Sexta-feira, das 21:00 às 23:00 Horario: Martes, de las 9:00PM. a las 11:00PM., Jueves, de las 7:00PM. a las 9:00PM., y Viernes de las 9:00PM. a las 11:00PM.
Location: Local: Localización: Tuesday: CB15, Thursday: CB11, and Friday: CC00 Terça-feira: CB15, Quinta-feira: CB11 e Sexta-feira: CC00 Martes: CB15, Jueves: CB11, y Viernes: CC00

Bibliography

Bibliografia

Bibliografía

There is no specific textbook for the course; however, the references below cover what will be covered during the semester. Não há um livro texto específico, entretanto, as referências abaixo cobrem o que será visto no semestre. No hay un libro de texto específico para el curso; sin embargo, las referencias a continuación cubren lo que se verá durante el semestre.


Other courses

Outros cursos

Otros cursos


Lectures

Aulas

Clases

The slides will be added after each lecture. These can be used as a guide to review the lessons. To study and practice, you should solve the proposed exercises and read the suggested bibliography.

Os slides serão disponilizados após cada aula. Estes podem ser usados como guia para revisar as aulas. Para estudar e praticar, devem resolver os exercícios propostos e ler a bibliografia sugerida.

Los slides serán disponibilizados después de cada clase. Estos pueden ser utilizados como guía para revisar las lecciones. Para estudiar y practicar, deben resolver los ejercicios propuestos y leer la bibliografía sugerida.

Topics Tópicos Asuntos
slides (Portuguese only) slides (somente em Português) slides (solo en Portugués)
Lecture 00 - Course presentation Aula 00 - Apresentação da disciplina Aula 00 - Presentación del curso
Lecture 01 - Operation of a computer Aula 01 - Funcionamento de um computador Aula 01 - Funcionamiento de una computadora
Lecture 02 - Python: first steps Aula 02 - Python: primeiros passos Aula 02 - Python: primeros pasos
Lecture 03 - Basic conditional selection Aula 03 - Seleção condicional básica Aula 03 - Selección condicional básica
Lecture 04 - Conditional selection Aula 04 - Seleção condicional Aula 04 - Selección condicional
Lecture 05 - Repetition: While Aula 05 - Repetição: Enquanto Aula 05 - Repetición: Mientras
Lecture 06 - Lists and repetition Aula 06 - Listas e repetição Aula 06 - Listas y repetición
Lecture 07 - Lists and repetition. Again?! Aula 07 - Listas e repetição. De novo?! Aula 07 - Listas y repetición. De nuevo?!
Lecture 08 - Coding dojo Aula 08 - Coding dojo Aula 08 - Coding dojo
Lecture 09 - Functions Aula 09 - Funções Aula 09 - Funciones
Lecture 10 - Functions: scope, parameters and documentation Aula 10 - Funções: escopo, parâmetros e documentação Aula 10 - Funciones: escopo, parámetros y documentación
Lecture 11 - Functions: exceptions, modularization and more Aula 11 - Funções: exceções, modularização e mais Aula 11 - Funciones: excepciones, modularidad y más
Lecture 12 - Strings Aula 12 - Strings Aula 12 - Strings
Lecture 13 - Dictionaries Aula 13 - Dicionários Aula 13 - Diccionarios
Lecture 14 - Sets Aula 14 - Conjuntos Aula 14 - Conjuntos
Lecture 15 - Matrices Aula 15 - Matrizes Aula 15 - Matrices
Lecture 16 - Combining and using data structures Aula 16 - Combinação e uso de estruturas de dados Aula 16 - Combinación y uso de estructuras de datos
Lecture 17 - Classes and objects Aula 17 - Classes e objetos Aula 17 - Clases y objetos
Lecture 18 - Classes and objects (II) Aula 18 - Classes e objetos (II) Aula 18 - Clases y objetos (II)
Lecture 19 - Sorting Aula 19 - Ordenação Aula 19 - Ordenamiento
Lecture 20 - Search Aula 20 - Busca Aula 20 - Búsqueda
Lecture 21 - Recursion Aula 21 - Recursão Aula 21 - Recursión
Lecture 22 - Recursion and sorting Aula 22 - Recursão e ordenação Aula 22 - Recursión y ordenamimento
Lecture 23 - Recursion...again!? Aula 23 - Recursão...novamente!? Aula 23 - Recursión...nuevamente!?
Lecture 24 - Files Aula 24 - Arquivos Aula 24 - Archivos
Lecture 25 - Good coding Aula 25 - Código bom Aula 25 - Buen código

Acknowledgment: The slides are based on the material prepared and kinfly provided by professor Rafael C.S. Schouery. The slides that will be shared has been adapted and modified by me, with possible introduction of errors, which I request to be reported to me.

Agradecimentos: Os slides foram baseados em material didático preparado e gentilmente cedido pelo professor Rafael C.S. Schouery. O material que será disponibilizado foi adaptado e modificado por mim, com possível introdução de erros, que solicito sejam reportados a mim.

Agradecimientos: Los slides se basearon en material didáctico preparado y gentilmente cedido por el profesor Rafael C.S. Schouery. El material que se proporcionará fue adaptado y modificado por mí, con posible introducción de errores, que solicito sean reportados a mí.