changed 3 years ago
Linked with GitHub


BTI: Proposta sobre as disciplinas obrigatórias de matemática

Atualmente (510h)

Semestre 1 (120h): ME (60h); AC (30h); GE (30h)
Semestre 2 (240h): FMC1 (90h); VGA (60h); Cálculo I (90h)
Semestre 3 (150h): FMC2 (90h); Probabilidade (60h)

Proposta 2022 de Thanos (240h)

Sobre a utilização de módulos de 30h. A separação em módulos de 30h (que podem ser lecionados em metade de semestre cada, tendo aulas 4h/semana) permite aos alunos que foram aprovados em apenas um dos dois não precisar repetir ambos.

Além disso as dependências dos módulos dos semestres seguintes são especificadas para permitir ao aluno que reprovou em um dos módulos conseguir cursar disciplinas dos próximos semestres sem ficar preso até aprovar nos outros módulos também.

Sobre pointers: Disciplinas obrigatórias contêm pointers para assuntos cobertos em optativas para incetivar o interesse de alunos que normalmente sequer saberiam da existência de tais assuntos.

Semestre 1 (90h)

Semestre 2 (60h)

Semestre 3 (60h)

Semestre 4 (30h)


Optativas

Teremos oportunidades de oferecer mais optativas, mais freqüentemente, e com mais diversidade para os alunos interessados. Sendo optativas, seu detalhamento fica fora desta proposta.

Observações

  1. Mesmo sendo optativas para o BTI, umas delas podem e devem ser obrigatórias para certas enfases.
  2. Podemos definir grupos de optativas (por exemplo "teoria", "programação", "fundamentos", "data science", etc.) e ter como obrigatório cursar um mínimo de CH de cada grupo (não necessariamente o mesmo). Seria possível a mesma disciplina pertencer a mais que um grupo.

Optativas

Menciono algumas optativas aqui, como exemplos.

  • IEA: Introdução a Estruturas Algébricas (30h)

    prereqs: (CFR1 e IDMa e IDMb)

  • CDI: Cálculo Diferencial e Integral (60h)

    equiv: IDMb (30h) + CDI (60h) = Cálculo I (90h)
    prereqs: IDMb

  • IPI: Introdução à Probabilidade e Inferência (60h)

    prereqs v1: (ECP e MB)
    prereqs v2: (ECP e Cálculo I)
    Poderia ser a própria Elementos de Probabilidade e Inferência criada e apresentada por Ismênia, removendo o item 1 (Probabilidade) da sua ementa (pois é coberto na ECP).
    Veja o link para mais detalhes.

  • VGA': Vetores e Geometria Analítica

    prereqs: MB

  • AL': Álgebra Linear (60h)

    prereqs: (IDMa ou IDMb)

  • FUN: Programação Funcional (60h)

    prereqs: nenhum!
    (Esta disciplina já existe como optativa.)

  • SEM: Semânticas de Linguagens de Programação (60h)

    prereqs: CFR2

  • CAT: Teoria das Categorias para Computação (60h)

    prereqs: (CFR2 ou IEA)

  • TAC: Teoria Axiomática dos Conjuntos (60h)

    prereqs: CFR2

  • LogMat: Lógica Matemática (60h)

    prereqs: CFR2

  • LogComp: Lógica Computacional (60h)

    prereqs: LogMat?
    disciplina atual: DIM0610

  • COMP: Teoria da Computabilidade (60h)

    prereqs: CFR2
    disciplina atual: DIM0445?

  • LFA: Linguagens Formais e Autômatos (60h)

    prereqs: CFR2
    disciplina atual: DIM0606

  • GRAF: Teoria dos Grafos (60h)

    prereqs: CFR2
    disciplina atual: DIM0412

  • TT: Teoria dos Tipos (30h)

    prereqs: CFR2

  • FORMAT: Formalização de Matemática (30h)

    prereqs: TT

  • ALGO: Introdução aos Algoritmos (30h60h)

    prereqs: (ECP e IDMa)
    Com as ementas/CHs atuais das EDB1 & EDB2, esta disciplina é excluída.
    (Veja o link para mais detalhes.)


Sidenote sobre umas disciplinas de programação

Conceitos e Paradigmas de Linguagens de Programação

Defendo antes de qualquer outra disciplina, a inclusão duma disciplina desse foco como obrigatória para o aluno do BTI. Atualmente alunos estão se formando enganados que «programação é só isso; com várias roupas».

Programação Funcional

Proponho adicionar na grade do BTI como disciplina obrigatória uma disciplina de Programação Funcional-algo já de acordo com os as grades das universidades freqüentemente citadas em reuniões-para ser lecionada junto com a IRI: em paralelo, um semestre antes, ou um semestre depois.

É inaceitável formar alunos no BTI que não tenham visto o mínimo fora dum paradigma só; ainda mais, evitando o funcional. Até as linguagens não-funcionais que o IMD está lecionando (Java, JavaScript, Python, etc.) têm incorporado muitas ferramentas e idéias do paradigma funcional. Por que nossos alunos são "protegidos" dessas idéias?

Além das "antigas" do mercado, o próprio mercado (sim até o brasileiro) tem visto um crescimento enorme em linguagens de Programação Funcional ou relacionadas: Clojure, Scala, Elixir, Rust, Haskell, F#,

LISP

Me parece também bizarro terminar este curso sem sequer ter visto ou usado pelo menos uma LISP. (Aviso: LISP ≠ programação funcional!) Hoje em dia a linguagem Racket com todas as suas ferramentas educacionais-incluindo o livro How to Design Programs (HtDP)-parece ser a melhor opção, para atender os objetivos de aprendizagem de disciplinas do tipo «ITP» ou «Boas Práticas de Programação». Novamente, para o povo que gosta desse tipo de "argumentinho": quais cursos usam Racket?
A interoperabilidade da Clojure com Java a deixa uma boa opção para disciplinas mais focadas a aplicações.

"missing semester"

Sugiro também incluir bem no início do curso algo parecido com o Missing Semester do MIT.


Select a repo