O objetivo desta disciplina é explorar como o paradigma de programação orientado a objeto (P.O.O.) é utilizado e como seus conceitos teóricos são aplicados na prática. Para tal, a linguagem de programação utilizada será o C# em conjunto com a plataforma de desenvolvimento .NET. Aplicações de Windows Forms serão desenvolvidos e, por fim, sistemas que se comunicam com Bancos de Dados serão implementados.
Informações Gerais
Ementa
Introdução e motivação. Arquitetura .NET e a Linguagem C#. Características da Linguagem. Revisão de Programação Estruturada: Entrada e saída de dados, tipos de dados; Estrutura de seleção e repetição; Criação e Uso de Funções. Programação Orientada a Objetos: Classes e Objetos. Construtores e Destrutores. Pilares da P.O.O.: encapsulamento, herança, polimorfismo. Windos Forms (Designer). Propriedades e Eventos. Aplicações multiformulários. Entrada e saída em arquivos. Exceções. Conexões com Bancos de Dados. Desenvolvimento de aplicações CRUD. Desenvolvimento de Trabalho de Conclusão de Curso.
Monitoria
| Monitores | Dia da Semana | Local | Horário |
|---|---|---|---|
| Jean, Gabriel Fernandes, Gabriel Corrêa, Diogo | Terça-feira/Quinta-feira | Laboratório de Informática | 12:00-13:00 |
Instalando o Visual Studio |
Salvando e Enviando um Projeto |
|---|---|
Programação das Aulas
| Aula | Tópicos | Vídeo Aula | Outros Materiais | |
|---|---|---|---|---|
| Início do 1º Período | --- | --- | --- | |
| 01 | Introdução à Linguagem C# e Arquitetura .NET | --- | Slides: pdf | |
| 02 | Tipos e Variáveis | Lista: pdf | ||
| * | Valores Numéricos, Textuais e Booleanos | --- | ||
| * | Comandos de Entrada e Conversão de Dados | --- | ||
| 03 | Exercícios (Entrada e Saída) | Lista: pdf | ||
| 04 | Estruturas de Seleção: if/else (Parte 1) | Lista: pdf | ||
| * | Estruturas de Seleção: if/else (Parte 2) | --- | ||
| * | Estruturas de Seleção (switch/case) | --- | ||
| 05 | Estruturas de Repetição (while) | Lista: pdf | ||
| 06 | Estruturas de Repetição (for) | Lista: pdf | ||
| 07 | Exercícios de Revisão | --- | Lista: pdf | |
| 08 | Exercícios de Revisão | --- | --- | |
| 09 | Teste 01 - Tema: Stranger Things | Teste: pdf | ||
| 10 | Funções | Lista 01: pdf | Lista 02: pdf | ||
| 11 | Introdução à P.O.O. | Slides: pdf | Lista: pdf | ||
| 12 | Teste 02 | --- | --- | |
| 13 | Listas (vetores) | --- | Slides: pdf | Lista: pdf | |
| 14 | Trabalho 01 | --- | Base: zip | |
| 15 | Construtres e Inicializadores de Objetos | --- | Slides: pdf | |
| 16 | Classes de Entidade x Classes de Controle | --- | Slides: pdf | |
| 17 | Exercício de Fixação | --- | Lista: pdf | Gabarito: cs | |
| 18 | 1ª Certificação - Tema: Mundial de Clubes | --- | Prova: pdf | |
| 19 | Arguição Trabalho Prático | --- | --- | |
| Início do 2º Período | --- | --- | --- | |
| 20 | Aplicações GUI - Windows Forms | Slides: pdf | ||
| 21 | Exercícios de Fixação | --- | Lista: pdf | |
| 22 | Teste | --- | --- | |
| 23 | Novos controles: NumericUpDown, RadioButton, CheckBox | --- | Exercício IMC | |
| 24 | Tratamento de Eventos | --- | Lista: pdf | |
| 25 | Manipulação de Arquivos: StreamWriter e StreamReader (Parte 01) | --- | Slides: pdf | Arquivo: txt | |
| 26 | Manipulação de Arquivos: Janelas de Diálogo, classes File, Directory e Path (Parte 2) | --- | Slides: pdf | Lista: pdf | |
| 27 | Tratamento de Exceções | --- | Slides: pdf | |
| 28 | Trabalho Prático | --- | Projeto Base: zip | |
| 29 | Teste "Fantástico" | --- | ??? | |
| 30 | Laboratório | --- | Não deixe de trazer o seu projeto! | |
| 31 | Apresentação Trabalho Prático 02 | --- | --- | |
| 32 | Integração com Banco de Dados | --- | Material: zip |
Certificações
Trabalhos
Trabalho Prático 01 - Data de apresentação a combinar
O trabalho prático consiste em elaborar uma aplicação de C# Console que faça uso dos conceitos discutidos até o momento. Os alunos em grupos de até 4 participantes poderão desenvolver um programa com tema livre, respeitando requisitos básicos de entrega (necessário criação de classe própria, uso de objetos e pelo menos uma lista (List)). Uma série de ideias foram discutidas em aula para motivar e inspirar os grupos.
A principal ideia do trabalho é explorar recursos (classes e métodos) diferentes disponíveis na linguagem, de modo a alinhar a criatividade do aluno com o projeto apresentado. Diversas classes foram apresentadas no link Recursos Úteis.
Alguns fundamentos de ideias discutidos em sala:
Memorização |
Velocidade |
Sorte |
|---|---|---|
Ideia: mostrar uma sequência de inteiros na tela por um tempo, apagar e pedir para o usuário tentar replicar. |
Ideia: ficar pressionando uma tecla rapidamente. Contar quantas vezes o usuário consegue pressionar a tecla num intervalo específico de tempo. |
Ideia: sortear um número inteiro entre 0 e n-1 e determinar qual inteiro "explode". Pedir para cada usuário ir escolhendo um inteiro até que alguém seja elimiinado. Repetir. |
Reação |
Contagem |
Outros |
Ideia: tocar uma música. Quando a música parar de tocar, dois ou mais usuários deverão pressionar uma tecla rapidamente. O usuário que pressionar a tecla primeiro vence. |
Ideia: uma série de números inteiros irão aparecer e desaparecer da tela durante um tempo. Depois será pedido que cada usuário diga quantas vezes um determinado número inteiro apareceu na tela. |
|
Trabalho Prático 02 - Data de apresentação 07 de Novembro
O trabalho prático consiste em elaborar uma aplicação C# usando Windows Forms. Esta aplicação deverá apresentar funcionalidades para cadastrar, atualizar, remover e ler questões, conforme discutido em sala. As questões devem ser armazenadas em arquivos de texto, individualmente. Um usuário além de realizar tais operações, também poderá responder questões, recebendo indicação se elas estão corretas ou não. Cada questão deverá manter a taxa de acertos e erros ao longo do tempo, persistindo essas informações no arquivo .txt. Além de carregar uma questão, a aplicação deverá ser capaz de carregar também várias questões que estejam armazenadas em uma pasta. Os alunos em grupos de até 3 participantes poderão desenvolver um programa com tema livre para as questões, respeitando os requisitos básicos de entrega combinados em sala.
A principal ideia do trabalho é explorar os recursos gráficos disponíveis na linguagem assim como a manipulação de arquivos.
O trabalho valerá 5 pontos (com peso 2 para compor a média de trabalhos da segunda certificação), sendo 3,5 pontos destinados aos requisitos básicos. O restante da pontuação será atribuído ao grau de criatividade, complexidade e rigor técnico envolvido em novas funcionalidades, levando em consideração sempre a experiência de usuário e taxa de erros.
Referências
Os livros apresentados abaixo foram utilizados como base na elaboração do material didático da disciplina. Podem ser utilizados pelos alunos que desejam se aprofundar em algum aspecto da disciplina, no entanto, não é necessário adquiri-los.
- Andrew Stellman e Jennifer Greene, Use A Cabeça! C# (2ª Edição). Alta Books, 2013.
- Paul Deitel e Harvey Deitel, Visual C# How to Program (6th Edition). Pearson, 2016.
- Philip Conrod e Lou Tylee, Visual C# and Databases: A Step-By-Step Database Programming Tutorial (15th Edition). Kidware Software LLC, 2017.


