Você está na página 1de 5

Plano de Ensino

Introdução à Ciência da Computação (ICC) – CIC 0007


Turmas 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11 e 12 - 2º semestre de 2023

Professores Geovana Ramos Sousa Silva (geovana.silva@unb.br)


Roberta Barbosa Oliveira (roberta.oliveira@unb.br)
Vinícius Ruela Pereira Borges (viniciusrpb@unb.br)

Apresentação da Disciplina

A disciplina Introdução à Ciência da Computação (ICC) propicia aos alunos o


aprendizado do como pensar computacionalmente para resolver problemas reais, além de
proporcionar os conhecimentos básicos na elaboração de programas computacionais para
implementar uma solução em uma linguagem de programação de computador. Para isso,
o aluno deve aprender a pensar computacionalmente, entender como é organizado
internamente um computador e os formalismos que permitem criar estes programas. Com
esta base deve ser capaz de aprender por conta própria elaborar soluções mais
sofisticadas e aprender a implementá-las como um programa de computador para resolver
problemas.

Ementa / Programa

1. Introdução
2. Pensamento Computacional
3. Variáveis e entrada de dados
4. Estruturas Condicionais
5. Estruturas de Repetição
6. Estrutura de dados - agregados homogêneos
7. Funções/Procedimentos
8. Estrutura de dados - agregados heterogêneos
9. Arquivos
10. Bibliotecas

Objetivos Gerais

 Preparar o estudante para a percepção e consciência da importância da


computação para a sociedade e para o desenvolvimento da capacidade cognitiva
humana;
 Estabelecer as bases de processos de convivência, respeito e ética no trabalho
cooperativo, na aprendizagem e no ensino;
 Compreender os fundamentos e limites da computação articulando a aprendizagem
na dimensão da pessoa, do contexto acadêmico, da atuação profissional, da
docência e da pesquisa.
Objetivos Específicos

 Reconhecer a importância das linguagens computacionais e da programação de


computadores para a evolução dos sistemas e mudanças sociais;
 Desenvolver a capacidade de organização do pensamento para a identificação,
representação (abstração) e modelagem de problemas e soluções em notação de
algoritmo e programas em linguagem computacional;
 Instrumentalizar o estudante para o uso de métodos, estratégias e ferramentas
computacionais apropriadas para o desenvolvimento de programas de computador
com o uso de linguagem de programação de alto nível – Linguagem Python;
 Desenvolver a capacidade de reflexão crítica para a aprendizagem autônoma,
aperfeiçoamento permanente e para a busca da excelência nas soluções de
problemas computacionais.

Competências

1. Propor soluções efetivas para problemas computacionais utilizando a abstração de


algoritmos e programas;
2. Especificar e desenvolver programas em linguagem de programação de alto nível
procedural - Linguagem Python;
3. Testar e depurar programas em linguagem de programação de alto nível
procedural - Linguagem Python;
4. Elaborar programas computacionais em linguagem Python para resolver problemas
reais e promover melhorias sociais e avanços científicos.

Habilidades

1. Compreender e identificar problemas computáveis, procedimentos, algoritmos e


programas em sistemas computacionais;
2. Representar e utilizar dados básicos e estruturados (variáveis, strings, listas,
tuplas, dicionários, vetores e arquivos) em algoritmos e programas;
3. Aplicar as estruturas sequenciais, de decisão, repetição, recursão e modularização,
de maneira efetiva, na resolução de problemas computacionais;
4. Identificar erros em programas computacionais e corrigi-los;
5. Compreender e identificar a complexidade computacional de algoritmos de busca e
de ordenação;
6. Implementar programas utilizando linguagem de programação de alto nível
procedural – linguagem Python;
7. Mobilizar os recursos de cognição do “pensar computacionalmente” no contexto
pessoal, acadêmico, profissional e de pesquisa como ação intencional e sistemática
de resolução de problemas.
Metodologia

A disciplina ICC usa a metodologia “Blended Learning”. Nesta metodologia o aluno


aprende por meio de aulas presenciais e por meio de conteúdo disponibilizado na internet.
Das quatro horas/aulas semanais da disciplina, duas serão de aulas teóricas e duas serão
de aulas práticas. Nas aulas teóricas o professor apresenta o conteúdo para o aluno
pensar computacionalmente e ensina a teoria de programação em Python. Nas aulas
práticas o aluno aprende a programar na Linguagem Python.
Para as aulas práticas, o aluno deve estudar a aula (conteúdo) disponibilizada no
ambiente virtual de aprendizagem (AVA) na internet e fazer os exercícios propostos. Na
aula prática o aluno deve tirar dúvidas da lista de exercícios e aproveitar para resolver a
lista de exercícios. Nesta disciplina o aluno precisa estudar o conteúdo disponibilizado na
internet e tentar resolver a lista de exercícios antes de vir para as aulas práticas. Assim
aproveitará melhor a aula prática para tirar dúvidas com os estagiários de docência,
tutores e monitores da disciplina. Por isso é fundamental que o aluno estude as aulas na
Plataforma Moodle da UnB e tente resolver a lista de exercícios antes de vir para as aulas
práticas.
Os exercícios da lista e as questões da prova são corrigidos pelo Corretor Online.
Por isso é fundamental que o aluno pratique a resolução dos exercícios da lista
submetendo o seu programa ao Corretor Online e depure os seus programas até que eles
estejam corretos. O aprender a programar é uma atividade que exige muita prática. “Só
se aprende a programar programando e depurando os erros do programa!” No início o
programa feito pelo aluno irá conter muitos erros, isto é absolutamente normal! Ao
corrigir estes erros (depurar o programa) o aluno estará aprendendo a programar. Com o
tempo os programas de computador do aluno terão menos erros e ele terá a habilidade de
identificar os erros e corrigi-los sem ajuda. Com esta prática o aluno consegue autonomia
no programar.

Avaliação

A avaliação da disciplina ICC é feita por intermédio de 3 atividades:


 Exercícios de Programação (EP) – Lista 1 a 7 – valor 10,0 (valor calculado a partir
da média aritmética simples considerando as notas de todas as listas) – peso 1,
 Prova Prática 1 (PP1) – valor 10,0 – peso 4,
 Prova Prática 2 (PP2) – valor 10,0 – peso 5.

A Nota Final (NF) é calculada da seguinte forma: NF = ( 1xEP + 4xPP1 + 5xPP2 ) / 10.

As datas das Provas e entrega de Exercícios estão estabelecidas no Cronograma de


Atividades. O endereço IP e a data/hora de entrega das atividades é o registrado no
Aprender 3/ Corretor Online (Automático). As notas apresentadas pelo corretor
automático poderão ser alteradas a critério do professor conforme a necessidade. Em
casos justificados (atestados médicos ou documentos comprobatórios de justificativas de
falta) poderão ser contempladas provas substitutivas em datas e horários a determinar.
O arredondamento de notas poderá ser feito a critério do professor. Para tal, será
considerado a realização de todas as atividades da disciplina, inclusive aquelas que não
valem nota.

Política contra plágio nas provas e tarefas

O professor e sua equipe se reservam no direito de perguntar detalhes do código


para verificar se foi o aluno que realmente implementou o programa. Após a realização
das atividades, os códigos enviados para correção poderão ser verificados por um
programa de detecção de plágio ou pela análise dos registros dos eventos realizados pelo
aluno no Aprender 3/ Corretor Online (Automático). Caso se verifique que não foi o aluno
que implementou o código ou que ele obteve a(s) questão(ões) da prova de forma ilícita
ou que ele forneceu para outro(s) aluno(s) a resposta da(s) questão(ões), o aluno ficará
com zero na avaliação. Da mesma forma, nas provas, caso algum aluno seja pego
utilizando meios ilícitos para a sua realização, ficará com zero na avaliação.

Aulas Extras

Caso as aulas teóricas e práticas de ICC, incluindo as provas, não ocorram devido a
problemas de caso fortuito ou força maior, elas poderão ser realizadas nos sábados.

Cronograma de Atividades - Vide Anexo.

Bibliografia Básica

DOWNEY, Allen; ELKNER, Jeff; and MEYERS, Chris. How to Think Like a Computer
Scientist: Learning with Python 3. 3rd Edition. Green Tea Press. 2017.

BELL, Tim; WITTEN, Ian H.; FELLOWS, Mike. Computer Science Unplugged: An
enrichment and extension programme for primary-aged students. EUA: CSUnplugged,
2015.

AGUILAR, Luis Joyanes. Fundamentos de Programação: Algoritmos, Estrutura de Dados e


Objetos. São Paulo: McGrawHill, 2008.

Bibliografia Complementar

FARRER, Harry. Programação estruturada de computadores: algoritmos estruturados. Rio


de Janeiro: Guanabara Dois, 2002.

CORMEN, T.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. Algoritmos: Teoria e Prática. Rio
de Janeiro: Elsevier-Campus, 2012.
SZWARCFITER, Jayme Luiz; MARKENZON, Lilian. Estrutura de Dados e seus Algoritmos.
Rio de Janeiro: LTC, 2012.

Você também pode gostar