Questão sobre Engenharia Informática



Java ou qualquer outra linguagem OOP não são propriamente um bom ponto de partida
na minha opinião. Acho que se deve começar por algo mais "simples", uma linguagem procedural qualquer, aprender lógica básica de programação, subrotinas, modularização, e só depois avançar para OO, com tudo o que vem atrás (noções de objecto, polimorfismo, herança, escopo dos métodos/variáveis etc)

Se metes alguém que nunca programou na vida, com OO à frente, o mais certo que vai sair dali é algo como um "god object" que contém tudo o que são métodos e variáveis que o programa usa. E isso é precisamente o que não queres nesse paradigma.

Concordo.
O ideal é começar pela programação estruturada, e deixar a OO para mais tarde.

E a linguagem a escolher deverá ser uma com sintaxe bem simples. Há que
concentrar a aprendizagem no que realmente é importante, e para isso não é
bom dispersar a atenção com problemas de sintaxe.

Dou um exemplo:
Já basta o esforço de aprender a implementar um algoritmo, e ter de o fazer
funcionar correctamente, para ainda ter de andar preocupado em descobrir
erros derivados da sintaxe. Ou seja, a lógica até poderá estar correcta, mas
o código não produz o resultado esperado porque temos um = onde deveria
estar um ==, por exemplo. Isto pode ser frustrante e desmotivador para um
principiante.

A meu ver, a linguagem ideal para começar a aprender programação estruturada
seria PASCAL ANSI/ISO. Aliás, foi mesmo esse o propósito da criação dessa
linguagem:
Pascal (programming language) - Wikipedia, the free encyclopedia
(...) a small and efficient language intended to encourage good programming practices using structured programming and data structuring. (...)
Free Pascal Compilers, Free Delphi Compilers (thefreecountry.com)

PS (a vermelho):

1. Tens de largar as traduções brasileiras.
Procedural -> procedimental (procedural não existe na língua portuguesa)
Escopo -> âmbito (escopo é mais no sentido de alvo/objectivo, quando o original
SCOPE em inglês aplicado à programação está mais orientado ao alcance, por
exemplo de uma variável, dentro do código, logo -> âmbito)

2. Subrotinas é do tempo da programação "esparguete".
Em programação estruturada são procedimentos e/ou funções.
Em programação OO são métodos.
 
quando entramos pela área da programação gráfica. ou quando estamos a falar em sistemas informáticos orientados às telecomunicações, convém ter umas noções bastante jeitosas de matemática.

Ou não.
Essas noções serão importantes se estiveres a fazer investigação nessas áreas.
Já a desenvolver projectos, mesmo nessas áreas, são perfeitamente irrelevantes.

Exemplo:
Um qualquer projecto na área de computação gráfica usa API's ou frameworks já
desenvolvidas (como o OpenGL, por exemplo), pelo que não tens de ter qualquer
conhecimento dos conceitos matemáticos envolvidos. A menos que estejas a
desenvolver novos algoritmos de computação gráfica é que convém saber a teoria
matemática que suporta a computação gráfica.
 
Tudo muito relativo. Desde que haja gosto e dedicação. Não há tempo durante o curso? São os anos mais descontraídos [:D]

A menos que estejas a fazer uma cadeira por semestre... não, não há tempo.
Um principiante, até para fazer um "Hello World", demora horas.
Aprender a programar tem um custo brutal em horas dedicadas ao estudo e
à implementação. Principalmente em debugging.
 
?

não percebi no que é que não concordas. o que tu dizes é obviamente verdade, mas qq curso de engenharia informatica numa boa faculdade tem kilos de computer science especialmente durante a licenciatura. acho que tens uma ideia errada das engenharias. a parte de "engenharia" na licenciatura são bases fortes de matematica, fisica e estatistica que só fazem é bem :p

A BOLD:

Matemática, física e estatística é sinónimo de engenharia?!
[:)]

Curiosamente tenho experiência na primeira pessoa de TRÊS cursos com
matemática, física e estatística e... NENHUM deles é uma engenharia.
[:p]

Engenharia é mais virado para a parte prática da ciência, e é essa a diferença.
Apenas.

Por alguma razão se chama Instituto Superior TÉCNICO, e aos bacharéis se
chamam engenheiros TÉCNICOS.
[;)]

Engineering - Wikipedia, the free encyclopedia
Engineering is the application of scientific, economic, social, and practical knowledge


Quanto ao que está a vermelho... era bom que fosse verdade, mas não é.

Um dos maiores problemas das nossas universidades é que o programa curricular é desenhado
mais em torno dos recursos humanos dos quais se dispõe (conhecimentos dos professores), do
que das necessidades efectivas do mercado.

O que sei dos programas curriculares das engenharias informáticas que para aí grassam, é que
nenhum tem uma forte componente teórica de informática.

Exemplo:
A noção que nas universidades se tem de OOP é falar dos conceitos (e mal), e dar uma linguagem
OO. Ponto.
Que me recorde, de todos os colegas de trabalho que tive até hoje que vieram verdinhos das
universidades, apenas um tinha os conceitos OO razoavelmente compreendidos.
 
PS (a vermelho):

1. Tens de largar as traduções brasileiras.
Procedural -> procedimental (procedural não existe na língua portuguesa)
Escopo -> âmbito (escopo é mais no sentido de alvo/objectivo, quando o original
SCOPE em inglês aplicado à programação está mais orientado ao alcance, por
exemplo de uma variável, dentro do código, logo -> âmbito)

2. Subrotinas é do tempo da programação "esparguete".
Em programação estruturada são procedimentos e/ou funções.
Em programação OO são métodos.

as primeiras duas são aquelas coisas derivadas de estar tão habituado a tratar isso pelos nomes ingleses que depois a tradução falha. [:D]

a terceira não considero engano. um procedimento / função / método não deixa de ser uma subrotina.
 
Última edição:
Voltar
Superior