Incontri tematici su GNU/Linux ed il Software Libero - programmazione per la scuola secondaria - ● Introduzione ● Perché la programmazione? ● Strumenti.

Slides:



Advertisements
Presentazioni simili
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Advertisements

Process synchronization
La tecnologia CWM Alessandro Lorenzi A.A.2002/2003.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1: Marzo 2014 Marco D. Santambrogio – Gianluca Durelli -
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Matteo Ferroni –
UML Unified Modelling Language Linguaggio per la modellazione unificato.
Da dove iniziare a sviluppare Ovvero, un'infarinatura su: Componenti principali Strumenti di sviluppo Esempio pratico e pacchettizzazione A cura di: Luigi.
Eclipse un editor per Java ma anche di più di questo Angelo Gargantini.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
Programmazione: Iterazione Esistono tre tipi di iterazione fondamentali e vedremo la corrispondenza dei relativi diagrammi a blocchi e la loro traduzione.
1 Alberto Pollastro, !#/bin/bash Novara, GalLUG - Gruppo Utenti Linux Galliate - #!/bin/bash Alberto Pollastro.
I linguaggi di programmazione Gruppo iOS 47: Colombini Christian Flora Jonathan Rossi Francesco.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
IL SOFTWARE (FPwin 6.0).
Introduzione alla programmazione MIDI
Sistemi e Applicazioni per l’Amministrazione Digitale
Lavoro di gruppo 3^E sia Peroni Jessica Mascheroni Beatrice
Compilazione del kernel Linux
Java World Introduzione.
Incontri tematici su GNU/Linux ed il Software Libero - sommario -
ASSOCIAZIONE GIROPAGINA.ORG
Per creare un linguaggio comune …
Corso di Laurea in Ingegneria Informatica
di Basi di Dati: Overview
Sistemi e Applicazioni per l’Amministrazione Digitale
Programmazione per la Musica | Adriano Baratè
L’approccio EY per una sostenibilità a 360°
Basi di Dati: Introduzione
Milestones 2002 fine febbraio 2002 a. primi test di Grid per Virgo
Paradigma MVC Ing. Buttolo Marco.
I comandi.
Studente/i Relatore Correlatore Committente Aris Piatti
Diagrammi Implementativi
Sviluppo web con stumenti Open
Scrivere e far di conto da A a Z... e da 0 a 9!
UML Creato da: Enrico Tarantino Alessandro Vilucchi Roberta Barcella.
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
IL CODING e il Pensiero Computazionale
Programmazione ad Oggetti per la Fisica
Corso Java Introduzione.
istalliamo l’ambiente di sviluppo - ide
Nuove Tecnologie e Disabilità
Programmare.
Corso di Laurea in Ingegneria Informatica
ADO Per gestire i database con tecnologia ASP si utilizzano strumenti ADO (ActiveX Data Objects): un'architettura che fornisce oggetti.
Sistemi informativi statistici
© 2007 SEI-Società Editrice Internazionale, Apogeo
Sviluppo di un programma
Scambio dati integrazione Specifiche DATEX II
Esercizio 1 Scrivete un programma C "creaproc" che crea (mediante fork) il numero di processi specificati in input. ad esempio: $> creaproc 7 crea 7 nuovi.
Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Il passaggio all’opensource nella didattica: analisi e utilizzo di software anche per alunni con BES e DSA Stefano Garione.
Corso Java – Intoduzione
Java Introduzione.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
UML Diagramma statico di una classe
Linguaggio di Modellazione Unificato
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Programmazione Procedurale
Transcript della presentazione:

Incontri tematici su GNU/Linux ed il Software Libero - programmazione per la scuola secondaria - ● Introduzione ● Perché la programmazione? ● Strumenti ● Metodologie differenti ● Linguaggi

Introduzione ● Rilevazione dell'esigenza ● Formalizzazione della problematica ● Creazione dell'algoritmo ● Implementazione dell'algoritmo ● Creazione del programma eseguibile (software) ● Test del programma

Creazione del programma eseguibile Codice sorgente int main(int argc, char *argv[]){ printf(“abcd...”); … “Compila zione” Program ma eseguibi le

Perché programmare? ● Formare tecnici preparati! ● Trovare lavoro ● Preparare agli esami universitari

Dubbi ● Il linguaggio che insegno oggi, domani...? ● Tecnologie differenti ● Specializzazione Ruoli differenti ● Scuola: forma mentis ● Mondo produttivo: specializzazione

Per associazione d'idee ● Per guidare un'auto posso rivolgermi ad una scuola guida. ● A scuola guido una “Bianchina". ● Imparo ad usarla e con essa sostengo l'esame. ● La motorizzazione mi rilascia una patente di guida per una particolare categoria di veicoli. ● Non per poter guidare la “Bianchina"!

Quindi perché? ● Il linguaggio di programmazione: non come fine dell'insegnamento, ma come mezzo per apprendere ● Sviluppare le capacità di ragionamento ● Sviluppare ed affinare l'approccio ai problemi (problem solving)

Paradigma ● Insieme di strumenti concettuali forniti da un linguaggio di programmazione per la stesura di programmi. ● Definisce/determina il modo in cui il programmatore concepisce e percepisce il programma. ● Il paradigma imperativo (e tutti i suoi sotto-paradigmi) e l'approccio più diffuso nella programmazione. ● Il programma viene inteso come un insieme di istruzioni che possono essere pensate come un ordine che viene impartito.

Strumenti Mappe concettuali (top-down/bottom-up): ● Freemind ● vym Diagrammi a blocchi: ● OpenOffice Draw ● Dia cond AB VF

Strumenti UML (Unified Modeling Language) What? Linguaggio di modellazione e specifica basato sul paradigma della programmazione ad oggetti (Object Oriented) ● Dia ● Umbrello (per KDE) ● Graphor Generazione automatica a partire dal codice: autodia, eclipse, ecc.

Esempio UML

Metodologie Purista ● Editor ● Compilatore/interprete ● Esecuzione

Consapevolezza Approccio migliore per chi inizia: ● Scrittura del codice separata dalla ● compilazione del codice separata dalla ● correzione degli errori separata dal ● debug del programma

Strumenti Editor da terminale: ● vi ● emacs ● nano e grafici: ● gedit ● tea ● leafpad ● nedit

Metodologie Intermedio ● Semplice IDE ● Segnalazione degli errori sull'editor (dopo la comp.) ● Strumenti di debug (non sempre disponibili) Compilazione integrata Esecuzione integrata

Intermedio Soluzione migliore per chi: ● ha già un base di conoscenze ● non rischia di confondere l'ambiente di sviluppo con il linguaggio di programmazione ● vuole avere un controllo più preciso del codice ● sviluppa programmi non banali ma neanche molto complessi

Strumenti IDE: ● geany ● anjuta ● codelite

Metodologie Avanzato/Professionale ● IDE con funzionalità avanzate ● “Precompilazione” – Documentazione integrata ● Esecuzione e Debug integrato ● Gestione dei TO DO ● Generazione documentazione ● Generazione UML Eclipse - NetBeans

IDE avanzato - “precompilazione”

IDE avanzato - debug

Avanzato Soluzione migliore per chi: ● conosce bene la programmazione ● deve gestire progetti di sviluppo complessi (molti file, molti progetti differenti, o in collaborazione con un team) ● ha bisogno di strumenti per gestire documentazione, versioni, refactor del codice sorgente ● necessita di un sistema di debug avanzato anche da remoto

Linguaggi I classici: ● C (gcc) ● Pascal (Free Pascal) ● Basic (basic256) Un po' diversi: ● Java (OOP) ● Python

Linguaggi Scripting ● Shell (bash, sh, c) ● Perl RAD (Rapid application develpment) ● Gambas (basic) ● Lazarus (pascal) ● Boa constructor (Python)

Ora un po' di esempi su... ● Editor ed IDE ● Gambas ● Python