programmazione i · 1. progetto in c da consegnare su github classroom üassegnato a dicembre üla...

Post on 25-May-2020

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PROGRAMMAZIONE I

A.A. 2019/2020

INFO

Programmazione I con Laboratorio: 73 ore (9 CFU)Pagina Web corso: http://www.dmi.unipg.it/francesco.santini/progI.html

Unistudium: https://www.unistudium.unipg.itOrario martedì 14-17, mercoledì 9-11, giovedì 11-13

Recuperi … da decidere

Canali per comunicare (più lenti):üRicevimento Mercoledì 14-17 (meglio su appuntamento)üfrancesco.santini@dmi.unipg.it o francesco.santini@unipg.it

TELEGRAM (PIÙ VELOCE)

Telegram: @safranCanale: https://telegram.me/programmazione1_PG

Usato come metodo veloce per comunicare con me (@safran) e per comunicazioni generali (il canale)

ISCRIVETEVI !!!

PROGRAMMA

Programming in CüLanguage Basics üTypesüLiteralsüType conversionsüExpressions and operatorsüStatementsüLoopsüFunctionsüArraysüPointersüStructures, UnionsüDynamic Memory ManagementüInput and OutputüPre-processing directives

Lang

uage

PROGRAMMA

General programming conceptsüInterpreted and compiled languagesüScopeüRecursionThink like a programmer: problem solvingProgramming in C part IIüCompiling with GCCüDebugging C Programs with GDBLinked ListsüDifferent representationsüCommon operations

OBIETTIVI APPRENDIMENTO

1. Problem solving2. General programming languages concepts

3. C language

4. Use of a compiler and debugger

5. Linked Lists

Saper programmare (in C)

MATERIALE

Slide (su mia pagina Web e Unistudium), upload PRIMA della lezione

Libri (proposti successivamente)

Esercitazioni in classeEsercitazioni a casa

LIBRO PRINCIPALE

Il Linguaggio C – Fondamenti e tecniche di programmazioneBy Paul J. Deitel and Harvey M. DeitelPublisher: Pearson, 8th edition (August 2016)Pages: 637Euro: 33,15 (Amazon)

ITA

RIFERIMENTO VELOCE

C in a NutshellBy Peter Prinz, Ulla Kirch-PrinzPublisher: O'Reilly MediaFinal Release Date: November 2002Pages: 144Euro: 8,32 (Amazon)

EN

ALTRI LIBRI

Il linguaggio C. Principi di programmazione e manuale di riferimento

By B. Kernighan, D. RitchiePublisher: Pearson2nd edition (January 2004)Pages: 313Euro: 22,95 (Amazon IT)

ITA

HELLO, WORLD

ALTRI LIBRI

ITA

C didattica e programmazione

By A. Kelly, I. PohlPublisher: Pearson??nd edition (??)Pages: ~672Euro: ~33,15 (Amazon IT)

ALTRI LIBRI

C in a nutshell

By P. Prinz, T. CrawfordPublisher: O’Reilly2nnd edition (March 2015)Pages: 812Euro: 45,63 (Amazon IT)

EN

WHY WILL SLIDES BE IN ENGLISH?

DOVE AIUTARSI

https://stackoverflow.com

http://www.cprogramming.com/tutorial/c-tutorial.htmlhttp://www.w3schools.in/c-tutorial/

https://www.tutorialspoint.com/cprogramming/

ESAME

1. Progetto in C da consegnare su GitHub ClassroomüAssegnato a Dicembre

üLa scadenza per consegnare ciascun progetto è qualchegiorno dopo la prova scritta (chiusura automatica su GitHub)

2. Prova scritta

3. Prova di Laboratorio su progetto consegnato + orale

Registrazione su SOL: https://www.segreterie.unipg.it

Date:ü14 Gennaio, 28 Gennaio, 12 Febbraio, 15 Aprile, Giugno,

Luglio, Settembre, Novembre

ESAMI PASSATI CON CORREZIONI

http://www.dmi.unipg.it/francesco.santini/progI.html

ESEMPIO

REGOLE

Nome e cognome su testo e tutti i fogli protocollo usatiScrivere svolgimento su foglio protocolloü Senza un’idea di svolgimento vale 0 puntiCopiare solo la soluzione nel riquadro dell’eserciziocorrispondente nel testoüOppure “Vedi foglio”Durata ~ 2:20 ore

Sul banco, consentita solo una penna (E BASTA)

PROGETTO

Progetto valutato da 1 a 4 (+ se aggiunte altre feature), ma üSe non compila a causa di errori, valutato non sufficiente: no

ammessi all’oraleüSe alcune funzioni sono sbagliate, valutato non sufficiente:

no ammessi all’oralePunti sommati al voto dello scritto

In generale il progetto riguarda lo sviluppo di variefunzioni su una lista dinamica, ma non sempre (vedianno scorso)Prova anti-plagio

TOOL

Niente orale per entrambi

PROVA LABORATORIO

1. Vi chiederò di modificare il progetto assegnato a casaEsempio di domandeüCreare una nuova funzione che invece di inserire in testa

alla lista (come nel testo del progetto) inserisce in fondo allalista

üCreare una funzione che scorre la lista e aggrega dei campi: per esempio somma il campo X per tutti gli elementi dellalista

Durata: 1 ora2. Alcune domandeüAlcuni punti in più (o in meno)

SE NON SAPETE MODIFICARE IL VOSTRO PROGETTO NEL TEMPO ASSEGNATO: ESAME FALLITO

LET’S START

ALGORITHMS

A procedure for solving a mathematical problem (as of finding the greatest common divisor) in a finite number of steps that frequently involves repetition of an operation.A flowchart is a type of diagram that represents an algorithm, showing the steps as boxes of various kinds, and their order by connecting them with arrows.

Sequence of operations from top to bottom

Euclid’s Elements 300 BC

WHERE ALGORITHM COMES FROM

It comes from Al-Khwārizmī (Persian: خوارزمی , c. 780–850), a Persian mathematician, astronomer, geographer, and scholar.

ANSI/ISO 1970 (REVISED 1985)

EXAMPLE OF A PROGRAM IN C#include <stdio.h>

int main(){

int a, b;

printf("Enter first positive integer: \n");scanf("%d", &a); printf("Enter second positive integer: \n");scanf("%d", &b);

while(b != 0) {

if(a > b)a = a - b;

else b = b - a;

} printf("GCD = %d\n", a);

return 0;

}

1. Ricevimento2. Seconda prova

No

FLOWCHART RESOURCES

https://en.wikipedia.org/wiki/Flowcharthttps://www.draw.io

PROGRAMMING

Programming is the process of taking an algorithm and encoding it into a notation, a programming language, so that it can be executed by a computer.

Problem solving

A program is a collection of instructions

ProblemThink

about the algorithm

Choose the right language

Start Program

ming

TIPS: HOW TO LEARN PROGRAMMING

1. Look at the Example Code: When you're first learning to program, you should make sure to look at, and try to understand, every example. Read the code examples before the text, and try to figure out what they did. (NOW)

2. Don't Just Read Example Code--Run It: Then type the sample code into a compiler--if you type it, instead of copying and pasting it, you will really force yourself to go through everything that is there. (NOW)

3. Write your Own Code as Soon as Possible: start writing sample programs that use every point we did. (NOW)

4. Learn to Use a Debugger: A debugger will allow you to step line by line through a piece of code (not now)

5. Seek out More Sources: tutorials, examples, books, man. Program code ALWAYS with handbook and/or Internet. (NOW)

WHY C

HOW MANY SPOKEN LANGUAGES

~7097https://www.ethnologue.com/guides/how-many-languages

HOW MANY PROGRAMMING LANGUAGES?

Wikipedia has a list of 700 programming languagesühttps://en.wikipedia.org/wiki/List_of_programming_languagesTiobe has a list of 250 languagesüTIOBE tracks a programming language if it passes 3 tests: it

must have its own Wikipedia page, it must be Turing complete, and a Google search for it must return over 5,000 search results.

http://codelani.com/posts/how-many-programming-languages-are-there-in-the-world.htmlüTheir current estimate for active general purpose

programming languages is between 500 and 2,000.üTheir current estimate for all active computer languages is

between 5,000 and 25,000.

WHAT IS THE BEST LANGUAGE?

It depends:üWeb: Javascriptü(data) science/mining, machine learning: PythonüLow level and fast applications: C/C++üWrite once run everywhere, Android: JavaüServer-side for the Web: PHPüProductivity for backend development (Airbnb, GitHub):

Ruby

TIOBE INDEX

https://www.tiobe.com/tiobe-index/

C PERFORMANCE

BITCOIN CORE

https://bitcoincore.orghttps://github.com/bitcoin/bitcoin

JOBS

JOBS

JOBS

top related