O material apresentado neste apêndice B [56] tem como objectivo a definição de disciplinas de referência para os cursos CS. Descreve-se de forma detalhada, tendo por base a informação do apêndice A, um conjunto de 47 possíveis disciplinas para os cursos CS, referindo-se ainda, mas não detalhando, cerca de 80 disciplinas com teor avançado.
Apesar de não ser referido no CC2001 especificamente como Body of
Knowledge (por motivos óbvios), o detalhe destas disciplinas estabelece uma
base de informação muito útil relacionada com estruturação curricular, bem como, de certa forma, uma validação da utilização do material definido no BoK ACM-A. Assim, optou-se no âmbito desta dissertação, entender este material como um Body of Knowledge de estruturação curricular, usando em diante a referência BoK ACM-B. De forma similar ao apêndice A, e devido à sua estruturação da informação, este apêndice pode também ser interpretado como as bases de um modelo para a definição de disciplinas dos cursos da área CS, focado principalmente nos aspectos mais curriculares do posicionamento da disciplina, de cobertura temática, de cobertura de competências, etc. (por oposição aos aspectos mais operacionais com a avaliação, a bibliografia, etc.).
A apresentação desta informação sobre disciplinas utiliza os conceitos do BoK ACM-A, como as areas, units, topics, core units e respectivas horas, bem como alguns aspectos ainda não referidos neste documento, que fazem parte dos capítulos de estruturação curricular do CC2001. Em concreto, referem-se as propostas do CC2001 para a divisão de disciplinas em níveis e para as estratégias de organização / implementação da estrutura curricular.
O CC2001 adopta 3 níveis para as disciplinas, consoante o seu posicionamento no currículo: introdutórias, tipicamente disciplinas da temática base oferecidas no 1º ou 2º ano do curso; intermédias, tipicamente do 2º ou 3º ano e que estabelecem uma fundação base mais aprofundada para o estudo de determinado assunto; avançadas, tipicamente do último ano ou do 2º ciclo, focando-se em assuntos mais avançados que requerem tipicamente bases temáticas de anteriores disciplinas. Note-se que o CC2001, tendo sido elaborado em 2001 e maioritariamente por autores dos estados unidos (apesar de ter “preocupações” internacionais), tem habitualmente por base os cursos de 4 ou 5 anos (conforme o cenário anterior em Portugal), não forçando ou comprometendo-se no entanto exclusivamente com esse modelo. Por isto, e pelo facto do CC2001 se tentar focar na abrangência, os conceitos aqui apresentados pode ser ajustados e aplicados a cursos já compatíveis com Bolonha. No entanto, o CC2005, sendo apenas um Overview Report orientado a programas do 1º ciclo (ou
undergraduate degrees), não expressa considerações acerca da duração dos
cursos.
O CC2001 estabelece uma proposta para vários tipos de “estratégias de implementação” [29] e organização de disciplinas dentro da estrutura curricular. Este conceito, que é abordado em detalhe nos capítulos 6, 7, 8 e 9 do CC2001,
pode-se entender como uma lista de recomendações de distintas abordagens à estruturação curricular e em concreto, ao ensino e introdução à ciência da computação ou dos seus vários temas. Em cada estratégia (ou também referida como abordagem), propõe-se o agrupamento de diversos tipos de disciplinas, por diferentes sequências, focando-se assim com maior ou menor ênfase em determinados temas, mas sempre com o objecto de garantir os requisitos pedagógicos mínimos dos cursos. A Figura 2.13, apresenta a lista das diversas abordagens propostas, de acordo com os níveis das disciplinas dentro do curso.
Figura 2.13 - Estratégias de implementação curriculares propostas no CC2001
Em concreto, cada estratégia de implementação estabelece uma diferente forma de apresentar ou introduzir os vários temas requisitos do curso, focando-se em diferentes abordagens ao ensino dos mesmos, estipulando para isso um conjunto bem identificado de disciplinas com uma orientação comum e respectiva proposta de sequência ou organização das mesmas nos semestres / anos do curso. Veja-se por exemplo, na Figura 2.14, a abordagem “Imperative-first”, que é o modelo mais tradicional, onde se estipula um modelo em que o foco inicial do ensino da programação deverá ser feito pela abordagem das linguagens de programação imperativas no início.
Esta abordagem estipula duas possíveis versões, uma de 3 disciplinas e outra com apenas 2, correspondendo a 3 e 2 semestres respectivamente. Na versão 2 semestres (em baixo), a disciplina inicial foca-se na introdução da programação com uma abordagem imperativa, enquanto que a disciplina seguinte estende essa base, mas com um foco explícito no paradigma da programação por objectos. A versão de 3 semestres (em cima), expande o detalhe, o aprofundar e a possibilidade de adição de mais tópicos relativamente à versão anterior, permitindo que os alunos tenham melhor hipótese de dominar os conceitos fundamentais antes de avançar no curso.
Note-se que esta abordagem não impede que a 1ª disciplina use como exemplos, exercícios ou base de aprendizagem, uma linguagem de programação orientada a objectos. O que distingue esta abordagem, por exemplo da abordagem “Object-First” é o ênfase e ordenação dos tópicos iniciais em que a 1ª disciplina se deverá focar, ou seja, os aspectos imperativos da linguagem (como expressões, estruturas de controlo, procedimentos, funções, etc.). Os aspectos relativos ao desenho por objectos, deverão ser delegados para a(s) disciplina(s) seguinte(s).
Este conceito, que é também utilizando no apêndice B como uma forma de introduzir a classificação do “modelo pedagógico” da disciplina (ou seja, quais as estratégias a que a disciplina tipicamente pertence), é indicado apenas como recomendação, sendo inclusive sugerido a quando da definição curricular, que se experimentem as várias abordagem propostas, ou se pense na criação e inovação de novas aproximações.
Conforme se pôde ver no exemplo acima, o CC2001 apresenta também uma proposta para a numeração das disciplinas. Este aspecto é interessante pois introduz uma nomenclatura que ao mesmo tempo identifica características e classificações da disciplina, conforme se verifica na seguinte Figura 2.15.
Figura 2.15 - Detalhe da nomenclatura CC2001 para numeração de disciplinas
Um pormenor que não é imediato na visualização desta nomenclatura é o facto do 2º número, indicado como subject area (e que também corresponde às areas do BoK ACM-A), só ser aplicado à cadeiras do nível intermédio e avançado (“2xx” e “3xx”). Isto é devido ao facto das diferentes abordagens pedagógicas do nível introdutório (“1xx”), poderem incluir distintas versões de 3 ou 2 disciplinas, sendo identificadas na nomenclatura respectivamente com um “0” e um “1” no 2º número (“10x” ou “11x”). Conforme se pode consultar no apêndice B [56], as abordagens Imperative-first e Objects-first (“I” e “O”) contêm versões para 3 e 2 disciplinas, a abordagem Breadth-first (“B”) contém apenas versões para 3 disciplinas (apesar sugerir 2 diferentes aproximações), e as abordagens
Functional-first, Algorithms-first e Hardware-first (“F”, “A” e “H”) contêm versões
apenas para 2 disciplinas.
Por fim, o BoK ACM-B apresenta a informação das diferentes disciplinas seguindo o modelo representado na Figura 2.16, estabelecendo uma divisão por secções conforme os níveis e respectivas abordagens pedagógicas.
Figura 2.16 – Modelo CC2001 para a descrição de um course
O modelo é relativamente auto-explicativo, estando maioritariamente orientado à descrição textual. O course number segue a nomenclatura acima referida, enquanto que o course title e course description são puramente textuais. No prerequisites, apesar de também puramente textual, geralmente referem-se determinas áreas específicas do conhecimento, courses específicos através do número, ou eventualmente units do BoK ACM-A. Em notes, texto corrido geralmente opcional, estão indicadas notas genéricas para cobrir alguns detalhes específicos da disciplina. Em units covered estão explicitamente identificadas as
units do BoK ACM-A que disciplina irá cobrir, estando associado um valor
indicativo das horas consumidas para abordar cada uma. Por fim, um
aspecto curioso é o facto do syllabus ser uma lista puramente textual que resume os tópicos a abordar na disciplina (e que permite alguma verbosidade), e não uma identificação específica de topics das respectivas units ACM-A. Note-se no entanto, que após uma verificação manual dos textos dos syllabus dos vários
courses e dos respectivos topics das units referidas, percebe-se que os textos
referem essencialmente o mesmo assunto (conceptualmente).
Veja-se um exemplo concreto na Figura 2.17, neste caso da disciplina “CS260{S,T}. Artificial Intelligence”. Conforme se pode verificar pela nomenclatura deste número, as disciplinas intermédias poderão estar incluídas em várias abordagens, sendo estas referidas pelos seus identificadores (conforme Figura 2.15) separados por vírgulas e entre chavetas. Neste caso, esta disciplina poderá estar incluída nas abordagens “Systems-based” e “Traditional discrete-
Figura 2.17 – Descrição da disciplina CS260{S,T} – Artificial Intelligence
Por fim, para dar uma visão da abrangência e detalhe desta lista de disciplinas do apêndice B do CC2001, apresenta-se na Figura 2.18 os nomes das 47 disciplinas introdutórias e intermédias, sendo completados na Figura 2.19 com os nomes das 80 disciplinas avançadas, ambas extraídas da versão HTML do CC2001 [28] [56].