Debate

Ciência da Computação nas escolas de Engenharia em debate

Professores abordam parâmetros curriculares atuais para que profissionais saiam da faculdade para o mercado de trabalho que exige ferramentas de TI

comente:

, , ,

O ensino da Ciência da Computação nas escolas de Engenharia traz um debate muito importante para esta edição da TI Maior. Através dos professores Guilherme Horta Travassos, professor titular do Programa de Engenharia de Sistemas e Computação (PESC) da COPPE-UFRJ, e Avelino F. Zorzo, professor titular da PUC-RS e diretor de educação da Sociedade Brasileira de Computação (SBC), a discussão teve como base comentar como a universidade tem se posicionado em relação aos parâmetros curriculares com foco nas futuras aplicações do software nas mais diversas áreas da engenharia: o software profissional.

Para Guilherme, a engenharia sempre foi abrangente e, atualmente, se mostra mais intensiva em software. “Existem duas correntes principais: as escolas clássicas e contemporâneas. As primeiras envolvem os cursos tradicionais e para os quais estamos habituados na sociedade (Engenharia Civil, Elétrica, Mecânica, Eletrônica, Metalúrgica, Química) e amplamente reconhecidas pelos conselhos federais. Já as contemporâneas são representadas por aquelas que envolvem multidisciplinaridade (Produção, Biomédica, Computação e Informação, Biotecnologia, Mecatrônica, Nanotecnologia), nem todas ainda reconhecidas porém, inevitáveis, isso considerando o cenário de evolução do conhecimento científico e social”, explica.

ilustraçao-principal

Guilherme Horta Travassos

Segundo o especialista, embora todas as engenharias sejam intensivas em software, existe variação na intensidade e perfil dos sistemas utilizados e no que ensinam. “A escola clássica mantém em seu núcleo curricular um conjunto ínfimo de disciplinas voltados ao que, eu diria, programação básica como Algoritmos e Programação de Computadores e Organização de Computadores. Algumas evoluíram seu núcleo básico com a opção de computação por exemplo, Eletrônica e Computação, Elétrica com ênfase em Computação, e oferecem algumas disciplinas adicionais como Fundamentos de Redes de Comunicação, Engenharia de Software. Porém, isso está longe de ser o entendimento do que são os sistemas de software atuais e do conhecimento necessário para tratá-los. E, mais longe ainda do que se espera de um engenheiro que depende de software em seu domínio de problema e precisa construí-lo”, avalia o professor, acrescentando que observa nas representantes da escola contemporânea um foco mais abrangente, principalmente nas que possuem o software como foco de estudo e produto a ser construído (por exemplo, Engenharia de Computação e Informação na UFRJ e outras que surgem com o foco na Engenharia do Software).

De acordo com Avelino Zorzo, as disciplinas de computação ganham uma importância cada vez maior na formação de alunos de diversos cursos de graduação. “As engenharias possuem uma tradição de ter em seus currículos um conjunto de disciplinas de Computação que buscam desenvolver o raciocínio computacional, fundamental para a resolução de problemas da atualidade. Nos currículos, em geral, encontramos disciplinas de programação de computadores usando diferentes linguagens (dependendo do curso de Engenharia ou Instituição de Ensino Superior). No passado, existia também o ensino de ferramentas computacionais para apoio nas atividades do engenheiro, algo que atualmente não tem sido mais comum, principalmente devido aos alunos que ingressam nos cursos já possuírem uma boa vivência no uso de aplicativos”, avalia.

Portanto, a estrada ainda é longa para que as faculdades se moldem ao perfil ideal de formar profissionais dos mais diversos setores da engenharia com habilidade em TI. De acordo com Guilherme, propostas de cursos mais recentes têm incorporado disciplinas voltadas ao software e às tecnologias da comunicação e informação em seus currículos. “Portanto, a evolução de apenas estes cursos ainda não é suficiente para atender a demanda de profissionais preparados a lidar com estas tecnologias”, opina.

Avelino Zorzo divide da mesma opinião. “O ensino de Computação para o desenvolvimento de software é muito incipiente uma vez que, para se tornar um bom desenvolvedor, é necessário muito mais do que simplesmente aprender a programar”, aponta ele, indicando uma solução: que o profissional faça cursos na área de computação recomendados pelas Diretrizes Curriculares Nacionais para os cursos da área de Computação, aprovadas pelo CNE/MEC. “Existem cinco denominações para cursos de graduação em TI no Brasil, sem contar os tecnológicos: Ciência da Computação, Engenharia de Computação, Engenharia de Software, Sistemas de Informação e Licenciatura e Computação. Estes cursos possuem um conjunto de disciplinas necessárias para a formação de um bom desenvolvedor de software para diversas áreas do conhecimento, incluindo as engenharias. A minha única preocupação é o fato de incluir diversas disciplinas da área de computação no currículo, o que pode gerar uma forte sobreposição com cursos da área de computação. Isto poderia formar um profissional com carência naquela área específica da engenharia”, completa.

Em contraponto, Travassos observa que o aprendizado sobre desenvolvimento de software é pontual e direcionado para a construção de programas de computador que atendam as necessidades dos interessados. No caso, ele critica o fato de apenas uma disciplina ser oferecida, a de Algoritmos e Programação de Computador na Engenharia. “Isso, por exemplo, não é suficiente para se construir um sistema de apoio à análise sísmica, principalmente com qualidade. Embora recebam noções básicas de computação em seus cursos, isso não resolve o problema do software. A engenharia de software envolve diferentes níveis de conhecimento e tecnologias que não são usualmente tratadas na escola clássica, e parcialmente tratadas na grande maioria das engenharias contemporâneas. Obviamente, não se espera que todo engenheiro seja um ‘engenheiro de software’, porém as soluções de software contemporâneas transcendem o computador ‘clássico’ e envolvem a integração de diferentes sistemas, tecnologias e dispositivos”, observa.

ilustraçao-principal

Avelino Zorzo

Ainda de acordo com o professor, a revolução causada pela disponibilidade de acesso e miniaturização (Internet das coisas + nano) tem transformado bastante a expectativa da sociedade e a demanda por profissionais qualificados. “Inovação é palavra-chave nas diferentes áreas de conhecimento. Na grande maioria dos casos, os profissionais não estão preparados por causa da falta de conteúdo adequado ao longo do curso. A demanda por engenharia é grande. A sociedade é intensiva em software. As estruturas curriculares ainda estão atreladas a modelos muito tradicionais (a questão do reconhecimento pesa muito na organização curricular), fazendo com que os cursos se concentrem muito em disciplinas de cálculo no contínuo e perdem espaço para discutir algo mais discreto e computacionalmente necessário”, critica.

Guilherme defende, ainda, que as soluções de engenharia sejam intensivas em software, mesmo aquelas fisicamente instanciadas como pontes, edifícios, automóveis. Na opinião dele, todas as áreas demandam TI. “Como projetar e gerenciar o funcionamento dos edifícios supermodernos de Dubai sem sistemas de software? Isso não é um problema, mas uma motivação e desafio. Uma excelente oportunidade de crescimento, evolução e inovação tecnológica, que estamos pouco a pouco perdendo por não ousarmos. Devemos, nos manter sempre à frente e nos antecipar aos riscos (positivos) da evolução. A fronteira do conhecimento deve ser sempre nossa zona de conforto. Essa é uma discussão (e ação) que devemos continuamente manter”, diz.

Para Zorzo, os cursos de engenharia dão condições para os alunos entenderem a base de resolução de problemas utilizando o computador. “Os egressos têm condições de desenvolver algum tipo de sistema de software para resolução de pequenos problemas. Todavia, atualmente os problemas em áreas de Engenharia de Petróleo, Química, Ambiental e outras requerem o trabalho em equipes formadas por profissionais de diversas áreas.

ilustraçao-principal

Sociedade Brasileira de Computação

Assim, é importante haver uma forte cooperação entre profissionais, por exemplo, da Engenharia de Petróleo e da Computação”, diz ele, completando que estas são as áreas da engenharia que mais necessitam da TI. “Seja para controlar equipamentos, seja para simulação de soluções antes de serem construídas ou mesmo para apoiar o trabalho diário do engenheiro. É difícil imaginar um engenheiro, ou qualquer outro profissional, que consiga desenvolver suas habilidades e competências de maneira eficaz e eficiente sem o uso de TI”.

Em prol deste movimento, Guilherme salienta as iniciativas por parte da Sociedade Brasileira de Computação no que diz respeito à discussão de currículos mínimos e à necessidade de inserção de disciplinas da Ciência da Computação (que já deixou de ser uma área exclusiva e passou a ser transversal a todas as áreas de conhecimento) nos diferentes contextos e níveis de ensino. “Temos estado sempre muito mais preocupados em ensinar a usar as tecnologias do que a construí-las. Precisamos mudar! O cerne da engenharia está no uso e evolução do conhecimento científico em prol da sociedade. Isso demanda, obviamente, muito apoio e promoção da ciência. Devemos preparar nossos alunos desde cedo a adotar um senso cientifico crítico. Entretanto, não ensinamos e não discutimos ciência de forma geral nas nossas escolas. Enquanto nossa demanda por profissionais aumenta, assistimos nossos vizinhos preparando suas crianças no ensino fundamental (futuros alunos de engenharia e áreas afins) em algoritmos, programação básica de computadores, integração de componentes tecnológicos, robôs em sala de aula… Temos que nos mexer. Isso tem que ser uma política de estado. Evoluir, Rápido. E Inovar. Já estamos atrasados”, conclui.

Como exemplo para estes cenários, observe a grade disciplinar de algumas engenharias disponíveis na Web em relação a TI:

Engenharia Civil:

PUC – Campinas
Disciplina: Informática para Engenharia

UFRJ – Disciplina: Computação I

Engenharia Biomédica:

FEE – Faculdade de Engenharia Elétrica
Disciplinas: Programação Estruturada de Computadores, Técnicas e Linguagens de Programação, Cálculo Numérico, Microprocessadores, Processamento e Análise de Imagens Biomédicos.

PUC São Paulo – Disciplinas: Informática em Saúde, Fundamentos Computacionais e Estrutura Numérica, Inteligência Computacional Aplicada, Modelagem Matemática e Simulação Computacional, Processamento e Análise de Imagens, Visão Computacional, Realidade Virtual e TeleMedicina.

Engenharia de Computação:

ITA – Instituto Tecnológico da Aeronáutica – Disciplinas: Programação Orientada a Objetos, Estruturas Discretas para Computação, Fundamentos de Engenharia de Software, Automata e Linguagens Formais, Arquiteturas para Alto Desempenho, Engenharia de Software, Sistemas Operacionais, Compiladores, Fundamentos de Computação Gráfica, Processamentos Distribuído, Técnicas de Banco de Dados, Redes de computadores e Internet, Projeto de Sistemas Embarcados, Inteligência Artificial, Algoritmos Avançados.

PUC – Campinas – Disciplinas: Algoritmos e Programação de Computadores, Introdução a Computação, Introdução a Programação, Organização de Computadores e Linguagem de Montagem, Estrutura e Recuperação de Dados, Paradigmas de Programação, Arquitetura de Computadores, Análise de Algoritmo e Teoria dos Grafos, Banco de Dados, Engenharia de Software, Sistemas Operacionais, Análise de Sistemas, Linguagens Formais e Autômatos, Tópicos em Programação, Fundamentos em Interface Humano-Computador, Inteligência Artificial, Redes de Computadores, Sistemas de Informação, Construção de Compiladores, Sistemas Distribuídos, Ética em Computação.

Sobre os entrevistados
Guilherme Horta Travassos
Engenheiro Eletricista (Universidade Federal de Juiz de Fora, 1985), Mestre (1990) e Doutor (1994) em Engenharia de Sistemas e Computação pela COPPE/Universidade Federal do Rio de Janeiro. Realizou estágio de Pós-Doutorado na University of Maryland-College Park juntamente com o SEL/NASA (USA – 98/00), tendo como focos principais experimentação aplicada na Engenharia de Software e linha de produto de software.
Atualmente é professor titular do Programa de Engenharia de Sistemas e Computação (PESC) da COPPE/Universidade Federal do Rio de Janeiro. Suas pesquisas estão inseridas no contexto da Engenharia de Software e Experimentação, atuando principalmente nos seguintes temas: qualidade de software (VV&T), ciência em larga escala, engenharia de aplicações WEB e sistemas ubíquos, simulação em engenharia de software, ambientes e ferramentas para apoiar o desenvolvimento e experimentação em software.
Lidera o grupo de Engenharia de Software Experimental da COPPE/UFRJ e faz parte da ISERN – International Software Engineering Research Network. É membro da SBC – Sociedade Brasileira de Computação e membro profissional da ACM – Association for Computer Machinery. É editor associado do periódico Elsevier- Information & Software Technology (IST) e compõem o corpo editorial dos periódicos SpringerOpen – Journal of Software Engineering Research and Development (JSERD) e World Scientific International Journal of Software Engineering and Knowledge Engineering (IJSEKE).Colabora com a indústria de software através dos projetos de pesquisa & desenvolvimento desenvolvidos pela COPPE/UFRJ.
Informações complementares podem ser obtidas em www.cos.ufrj.br/~ght.

Avelino Zorzo
Possui graduação em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (1986-1989), mestrado em Ciência da Computação pela Universidade Federal do Rio Grande do Sul (1990-1994), doutorado em Ciência da Computação pela University of Newcastle Upon Tyne (1995-1999) e pós-doutorado na área de segurança no Cybercrime and Computer Security Centre da Newcastle University (2012-2013). Atualmente é professor titular da Faculdade de Informática (FACIN) da Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), Diretor de Educação da Sociedade Brasileira de Computação (SBC), Coordenador Adjunto para Mestrados Profissionais da CAPES/MEC, avaliador de condições de ensino do Ministério da Educação, consultor ad hoc do CNPq, CAPES e da FAPERGS.
Atuou como diretor da FACIN/PUCRS entre 2005 e 2011; como diretor adjunto de treinamento e ensino da SUCESU-RS entre 2008 e 2011; membro da diretoria da ASSESPRO-RS entre 2008 e 2011; membro do conselho técnico-consultivo da SOFTSUL; membro do Comitê de Ética em Pesquisa da PUCRS; e, Diretor de Articulação com Empresas da SBC (2013-2015). Tem experiência na área de Ciência da Computação atuando principalmente nos seguintes temas: segurança de sistemas, tolerância a falhas, teste de software, sistemas operacionais e modelagem analítica de sistemas confiáveis