Dificuldades Comuns
Uma lista de comentários sobre as principais dificuldades enfrentadas pelos alunos enquanto cursam a disciplina.
Aprendizado de várias novas linguagens
Apesar de não trazer conceitos de programação que não tenham sido abordados em outras disciplinas (como Programação I e Programação II), os alunos precisarão aprender até 3 novas linguagens. Isso demanda bastante tempo, sobretudo pela quantidade de assunto visto em cada estágio e pela necessidade de aplicar conceitos dos diferentes paradigmas no projeto. Isso é ainda mais perceptível em assuntos como strings, listas e laços nos paradigmas funcional e lógico.
Entrada e saída em Haskell
É bastante recorrente que os alunos tenham dificuldade com entradas na etapa de paradigma funcional. Em Haskell se usa o tipo IO para receber String, Int ou outro tipo de IO desejado, mas para usar esses dados recebidos é necessário antes desencapsulá-los do IO. Geralmente é feita uma aula com os monitores só sobre esse assunto. Apesar de ser consideravelmente simples, ele é responsável por atrapalhar muitos alunos nas avaliações de programação funcional.