Conselhos para as cadeiras da LEIC no IST
Bem-vindo e desde já parabéns pela escolha! Um professor uma vez disse-me que «o importante não é quem és ou o que tens, mas sim no que te tornaste e o que fizeste». É agora que começas a "construir-te". Espera-te um novo mundo: as matérias são mais complexas, longas e estão intimamente interligadas. Os professores são exigentes e distantes (és tu que vais ter com eles e não o contrário).
A principal mudança é que agora, mais do que antes, deves estudar para perceber. Ter boas notas deve ser meramente uma consequência de se perceber a matéria. Aquilo que estás a aprender tem por objectivo preparar-te para as exigências do futuro. Quanto mais aprenderes e mais praticares melhor profissional serás. Não esperes que te ensinem e te dêem soluções para sempre; terás de ser capaz de o fazer sozinho.
Seguem-se as várias disciplinas que compõe a Licenciatura em Engenharia de Informática e Computadores do Instituto Superior Técnico. Para cada uma direi qual foi a minha experiência ao frequentá-la, quais as dificuldades por que passei, o que recomendo que faças, etc. Nota: aqui a dificuldade é uma simples opinião, completamente subjectiva, relativa a cada semestre - i.e. quando digo "difícil" é porque é a mais difícil do semestre e não de todo o curso. Os tempos que aparecem são o tempo de "trabalho autónomo" individual e esse mesmo tempo dividido pelo número total de semanas do semestre, respectivamente. Esses tempos são meramente indicativos - só servem para te dar uma ideia do esforço que a cadeira exige - especialmente o de horas semanais, pois é sabido que uma parte significativa do total de horas é gasto no final do semestre e não ao longo do semestre (como seria desejável).
Ano 1, Semestre 1
Cálculo Diferencial Integral 1
Dificuldade média [total: 47 h | em média: 2,5 h/sem]
Matemática... estudo e prática, não há muito a dizer. Vais trabalhar muitos conceitos novos que podem custar um pouco a perceber no início. Se mantiveres um estudo e prática regular consegues fazer a cadeira. Não deixes esta cadeira por fazer.
Fundamentos da Programação
Dificuldade média-baixa [total: 124 h | em média: 6,5 h/sem]
Vais aprender a programar com a linguagem SCHEME. O livro é muito bom, mas depois de feita a cadeira torna-se inútil. Vais aprender conceitos de programação importantes, esse é o principal objectivo da cadeira. Mais do que perceber como se faz em SCHEME percebe porque e como se faz. É a base de qualquer programador. Como todos os projectos, começa cedo e esclarece as dúvidas com o professor e colegas. Não deixes esta cadeira por fazer.
Sistemas Digitais
Dificuldade média [total: 72 h | em média: 3,8 h/sem]
Trabalhosa. É muito importante perceber a matéria porque ela vai ser usada em muitas outras. É o nível mais básico da operação dos computadores, daí a importância dos conceitos. Tens de apresentar trabalho todas as semanas, daí ser trabalhosa. Aconselho vivamente a leitura da sebenta do professor Guilherme Arroz. Estuda regularmente para não atrasares matéria.
Teoria da Computação
Dificuldade baixa [total: 28 h | em média: 1,5 h/sem]
Matéria acessível. Convém ir estudando para não acumular matéria. Se fores trabalhando regularmente acabas a disciplina fácil e rapidamente. Parte da matéria (autómatos e alfabetos) vai ser importante mais tarde no 2º ano, por isso aplica-te.
Álgebra Linear
Dificuldade média [total: 65 h | em média: 3,4 h/sem]
Vertente da matemática. O livro é uma boa ajuda se os slides do professor forem insuficientes, mas é caro e depois de feita a cadeira torna-se inútil. Experimenta requisitá-lo na biblioteca. Alguns conceitos vão ser mais difíceis que outros, mas se estudares e praticares bastante, consegues. Aulas práticas são obrigatórias ir! A matéria (matrizes e suas operações, entre outras coisas) vai ser importante mais tarde no 2º ano, por isso aplica-te.
Ano 1, Semestre 2
Introdução a Algoritmos e Estruturas de Dados
Dificuldade média [total: 87 h | em média: 4,6 h/sem]
É das cadeiras mais importantes!! É muito crítico perceber a matéria porque ela vai ser usada em muitas outras e ao longo da tua vida profissional. É a primeira linguagem de programação (a sério) que vais aprender e chama-se C. Agora depende: se a programação é um mundo estranho para ti ou se sentires que a aula vai rápida demais, aconselho-te que arranjes o livro do Luís Damas chamado "Linguagem C"; caso contrário os slides das aulas teóricas (se tiverem informação) são suficientes. Vai a todas as aulas práticas e faz todos os exercícios que forem propostos (o livro do Damas tem bastantes). Arranja um grupo activo, ou vais ter de fazer o projecto todo sozinho (o que é desnecessariamente desgastante). Esta é uma das cadeiras interessantes, não é difícil se estudares e praticares.
Arquitectura de Computadores
Dificuldade média [total: 65 h | em média: 4,3 h/sem]
Trabalhosa. Assim como IAED é muito importante pelas coisas que vais aprender, pois vão ser úteis noutras cadeiras. É a continuação de SD. É preciso estares à vontade com bits e bytes. O projecto requer tempo, não te atrases. Poderás ter entregas semanais de trabalhos nos labs. Aconselho a que arranjes o livro da cadeira, escrito pelo professore José Delgado, embora quando terminares a cadeira não tenha grande uso.
Matemática Discreta
Dificuldade baixa [total: 10 h | em média: 0,6 h/sem]
Usa bastante matemática, mas nada de muito complicado. Consegue-se normalmente notas boas (acima de 14), tal como em TC. No início vai parecer difícil. Tem muitos algoritmos, mas com a prática, e algum estudo, vai lá. O lado bom é que se perceberes a mecânica dos algoritmos no teste é só aplicá-los.
Cálculo Diferencial Integral 2
Dificuldade média [total: 47 h | em média: 3,1 h/sem]
Matemática... estudo e prática, não há muito a dizer. Vais trabalhar muitos conceitos novos que podem custar um pouco a perceber no início. É preciso alguma abstracção para pensar no espaço 3D e 4D (pois é!). Se mantiveres um estudo regular consegues ter notas suficientes para passar logo por testes (sem exame). Não deixes esta cadeira por fazer.
Mecânica e Ondas
Dificuldade média ou alta (depende) [total: 16 h | em média: 1,1 h/sem]
Física. Convém ter bases do 12º, caso contrário vai ser mais difícil. Depende do professor, há uns melhores que outros. Nas aulas é normal não se perceber nada do que se está a falar/fazer. Com o tempo começa-se a perceber, mas precisa de prática, muita, e de estudo. Usa e abusa do horário de dúvidas, não deixes a matéria ou as dúvidas acumularem.
Ano 2, Semestre 1
Análise Complexa e Equações Diferenciais
Dificuldade média [total: 21 h | em média: 1,1 h/sem]
Continuação das matemáticas. Requer muito tempo para praticar. A matéria não é muito mais complicada do que se tem vindo a dar, apenas tem várias resoluções/algoritmos e é preciso não os baralhar, daí a necessidade de praticar. É imperativo ir às aulas práticas; conforme o professor que te calhar podes perceber mais ou menos, mas pelo menos leva os resultados e se possível as resoluções para depois poderes praticar em casa. A 1ª parte é mais difícil do que a 2ª, apesar desta ser mais abstracta. Tenta despachá-la sem teres de ir a exame (é mais difícil).
Electromagnetismo e Óptica
Dificuldade média ou alta (depende) [total: 39 h | em média: 2 h/sem]
Assim como MO, é física. Ou se tem boas bases ou é difícil acompanhar. Depende do professor e da velocidade a que dá matéria. É compreensível que em certas aulas não percebas nada do que se está a falar/fazer. Com o tempo começa-se a perceber, mas precisa de prática, muita, e de estudo. Os horários de dúvidas podem ser imprescindíveis.
Gestão
Dificuldade baixa [total: 64 h | em média: 3,4 h/sem]
Os conceitos abordados na 1ª parte são de cultura-geral e bastante acessíveis. A 2ª parte é contabilidade, algumas fórmulas, precisa de mais estudo. Nas práticas fazem-se exercícios e debatem-se casos. Costuma haver um projecto que não é mais do que uma competição de gestão num simulador. É muito divertido se tiveres um grupo participativo e motivado, caso contrário torna-se apenas mais um consumidor de tempo. Muita gente está-se nas tintas para esta cadeira, não o faças, se te aplicares minimamente podes ter uma boa nota.
Programação com Objectos
Dificuldade alta [total: 113 h | em média: 5,9 h/sem]
Novo paradigma de programação - objectos. A linguagem usada costuma ser Java (JSE). Quando perceberes a maneira de pensar vais adorar porque tonar-se muito intuitiva. Há algumas avaliações nos labs mas normalmente fazem-se exercícios. O projecto requer tempo e muito código (não propriamente difícil de escrever). Começa com antecedência. Vais ter que lidar com muitas coisas novas ao mesmo tempo com o projecto, especialmente a partir da segunda metade. Arranja um grupo activo. Podes comprar o(s) livro(s) ou arranjá-los na internet. Se só puderes comprar um, aconselho o do Java pois é um óptimo guia para começar e consegue abranger várias áreas que serão exploradas noutras cadeiras mais tarde. Qualquer um deles, sempre da colecção Head First (capa roxa), é uma excelente aquisição.
Sistemas Operativos
Dificuldade alta [total: 61 h | em média: 3,2 h/sem]
Provavelmente a mais difícil do semestre. É "quase" uma continuação de AC. Usa muito C logo é preciso estar à vontade com ele. Os conceitos são um pouco complexos, mas muito importantes na formação base de qualquer informático do IST. Talvez seja boa ideia comprares o livro da cadeira, penso que ajuda a acompanhar melhor a matéria, complementando os slides do professor.
Ano 2, Semestre 2
Sistemas e Sinais
Dificuldade baixa [total: 37 h | em média: 1,9 h/sem]
Usa conceitos matemáticos, programação em MATLAB básica, com um estudo mínimo faz-se bem. Resiste a deixar a matéria atrasar.
Lógica da Programação
Dificuldade média [total: 39 h | em média: 2 h/sem]
A 1ª parte da matéria é teoria e algoritmos. Com estudo e prática (exercícios) não é complicada. Na 2ª parte vem um paradigma de programação completamente novo assim como nova linguagem de programação PROLOG. Requer algum tempo de habituação. Deves começar o projecto cedo para poder esclarecer dúvidas há medida que vão aparecendo, senão ficam entregues a vocês próprios numa coisa que vos é completamente nova.
Computação Gráfica
Dificuldade alta [total: 79 h | em média: 4,2 h/sem]
Uma das mais trabalhosas do semestre. Prepara-te. Convém estar à vontade com C e programação com objectos (Java). Isto porque vai usar-se C++, que não vai ser ensinada. Vai usar-se também o ambiente de desenvolvimento Microsoft Visual Studio. Vais ter laboratórios/trabalhos semanais, que requerem bastante trabalho autónomo, porque na aula só tens tempo para apresentá-los ou tirar dúvidas pontuais. Não esperes que te ensinem como se faz. O projecto vai parecer-te complexo e extenso. Usa a abordagem incremental: divide o projecto em problemas mais pequenos, fáceis de resolver; depois junta as várias soluções para resolver um problema maior. No fundo vais ser obrigado a resolver o projecto desta forma por causa das avaliações semanais.
Probabilidade e Estatística
Dificuldade baixa [total: 53 h | em média: 2,8 h/sem]
Se for feita por testes a dificuldade é baixa. As teóricas fazem parecer a matéria mais complicada do que realmente é. Convém ir às aulas práticas e fazer os exercícios para perceber o processo de resolução dos problemas. Isto é importante porque praticamente todos os problemas têm um método linear (algoritmo) para serem resolvidos, ou seja depois de percebido qualquer exercício do mesmo tipo torna-se fácil de resolver. Como preparação para os testes aconselho-te a resolveres testes de anos passados.
Compiladores
Dificuldade média [total: 82 h | em média: 4,1 h/sem]
Esta é uma cadeira interessante na medida em que te explica essencialmente como é que um compilador funciona; como é que a partir de umas simples palavras (código) é gerado todo o comportamento que o programador espera desse código. A maioria da matéria baseia-se em algoritmos, que se perceberes como funcionam não terás problemas em tirar a cotação máxima no teste (fora as perguntas de programação). A 1ª parte da matéria/projecto é bastante acessível, o mais importante é manteres a matéria em dia, pois vai ser usada no projecto (lex + yacc). a 1ª parte do projecto deve estar feita o quanto antes, deve demorar no máximo (!) uma semana. A 2ª parte pode parecer mais complicada - gerar instruções do processador (Assembly) a partir de código na linguagem C ou na do vosso projecto - mas se praticares vais dominá-la como qualquer outro algoritmo. Não desistas, mesmo que tenhas má nota na 2ª parte do projecto, se os teus testes estiverem bons consegues passar à cadeira.
Ano 3, Semestre 1
Interfaces Pessoa-Máquina
Dificuldade média [total: 123 h | em média: 6,2 h/sem]
A cadeira é fácil mas requer tempo. Torna-se trabalhosa porque todas as semanas é preciso trabalhar no projecto e apresentar à turma os avanços. O lado bom é que quando chegar a altura da entrega do projecto este já está praticamente feito. Precisas escolher uma linguagem para fazer o projecto. Escolhe uma que te permita criar e personalizar facilmente um aspecto gráfico. Eu usei o Flex agora conhecido por Adobe Flash Builder. É flexível e muito fácil de aprender e de usar. O relatório do projecto requer tempo e atenção aos pormenores. A matéria teórica é fácil e acessível, muitas vezes de cultura geral. A avaliação do projecto é um pouco subjectiva já que se fundamenta muito no aspecto da interface do programa. Mesmo que o projecto vos pareça bom, na discussão podem ter uma má surpresa. Experimenta pedir uma opinião aos teus colegas.
Redes de Computadores
Dificuldade alta [total: 120 h | em média: 6 h/sem]
A mais difícil. A matéria dada nesta cadeira é muito importante e relevante. Além de interessante é fundamental na formação base de um informático do IST. Tem muita matéria teórica, razoavelmente complexa, que precisa ser percebida com tempo. Desaconselho fortemente a deixares o estudo para a semana do teste. Deves ter a matéria em dia, pois está tudo relacionado e encadeado. O projecto (em Java) é complexo, extenso e time-consuming. Aconselho o uso de um IDE como o Eclipse. É preciso ler e perceber documentação de protocolos (chamados RFC) ou nada feito. Aconselho a começá-lo cedo e a tirar as dúvidas com os professores e colegas.
Base de Dados
Dificuldade média [total: 69 h | em média: 3,5 h/sem]
Assim como RC é uma cadeira útil e importante para o futuro e vale a pena fazer um esforço para aprendê-la bem. Não é nada complexa, é até bastante lógica. Certas partes (álgebra relacional e consultas SQL) requerem alguma ginástica mental. Vais lidar com as linguagens SQL e PHP. O que é dado nas aulas é praticamente suficiente para fazer o projecto e exame. É bom manter a matéria em dia para tirar partido das aulas práticas.
Inteligência Artificial
Dificuldade média [total: 62 h | em média: 3,1 h/sem]
Matéria interessante mas se não te esforçares pode tornar-se monótona pois é muito muito teórica. Aconselho o acompanhamento da matéria pelo livro da cadeira "Artificial Intelligence, a Modern Approach" do Russel e Norvig (não é necessário comprar). Está lá tudo explicado de forma acessível. O projecto é em LISP. É parecido ao Scheme, mas apenas parecido. Não contes que te ensinem o suficiente para o fazer.
Portfolios
Dificuldade baixa
Depende da actividade que escolheres. Não é preciso muito tempo, diria que 1h30 por semana chega para realizá-la. Empenha-te. Atenção ao conteúdo e estrutura dos relatórios, pois a avaliação é muito meticulosa nesse aspecto. No relatório de actividades deves dizer tudo aquilo que foi feito e no relatório de aprendizagens deves dizer tudo aquilo que aprendeste. Não mistures os dois!
Ano 3, Semestre 2
Análise e Síntese de Algoritmos
Dificuldade média [total: 27 h | em média: 1,4 h/sem]
A cadeira resume-se a um conjunto (enorme) de algoritmos e tu precisas de saber como é que cada um funciona. Uns são mais complicados do que outros, mas em certos casos o mais complicado do que percebe-los é não confundi-los. Fiz um compromisso com esta cadeira: não gosto de ti, vou gastar mínimo número de horas possível para PASSAR-te e nunca mais quero falar contigo. E assim foi: fui às teóricas para saber qual a matéria importante, complementei com o livro (que não comprei e que está bastante bom) nas partes em que a teórica não chegava e fui a todas as práticas, apontando como é que cada algoritmo funcionava. Missão cumprida.
Engenharia de Software
Dificuldade alta [total: 53 h | em média: 2,8 h/sem]
Conselho: faz esta cadeira em conjunto com SD e com um grupo coeso/trabalhador. Caso contrário não é o fim do mundo, mas o trabalho faria mais sentido e seria também mais fácil, respectivamente. Esta cadeira é muito importante e interessante, com conselhos muito práticos e úteis para o teu futuro emprego. Na teórica vais ser introduzido a uma série de áreas que podes aprofundar no mestrado: como gerir projectos, desenvolver software de forma eficiente, gerir versões (SVN, CVS... esquece o dropbox), fazer testes, o que é uma arquitectura, etc. Na prática vais aprender a usar a FénixFramework (fornece persistência) e a desenvolver uma interface web usando o GoogleWebToolkit. Linguagem usada: Java (JEE). É quase certo que vais gastar muitas mais horas do que as que mencionei acima.
Sistemas Distribuídos
Dificuldade alta [total: 91 h | em média: 4,8 h/sem]
Conselho: faz esta cadeira em conjunto com ES e com um grupo forte e trabalhador. Tal como ES, esta cadeira é deveras importante e interessante, abordando assuntos de aplicação muito prática no futuro. Na teórica vais ser introduzido a uma áreas como segurança, distribuição e tolerância a falhas. Na prática vais desenvolver um programa que funciona de forma distribuída em várias máquinas, que é replicado de modo a tolerar um determinado número de falhas. Vais conhecer tecnologias como JBoss, XML, SOAP, etc. É trabalhoso mas é uma óptima introdução ao trabalho "mais a sério e menos académico". Aproveita.
Modelação
Dificuldade média [total: 94 h | em média: 4,9 h/sem]
A matéria em si é grande utilidade prática, assim tenhas bons professores a ensiná-la. Vais aprender a modelar sistemas (particularmente informáticos), aprofundar os teus conhecimentos de UML, conhecer o SysML e trabalhar como o Enterprise Arquitect. Concentra-te em aprender os conceitos base e como se faz boa modelação. Poderá ser-te muito útil no futuro. Não deixes a matéria acumular, esta é bastante acessível. O projecto pode ser demorado embora simples. Atenção ao pormenor.
