Loading
Note di Apprendimento
Study Reminders
Support
Text Version

Comando Line Approach - Domande di pratica

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Ciao a tutti, benvenuti nella sessione di interrogazione della seconda settimana. Questa è la prima sessione di domande in cui analizzeremo alcune domande basate sulla prima lezione di questa settimana. Ecco poche domande:1. Elencare circa 5 diversi comandi (programma - riga di comando) installati sul proprio sistema operativo desktop. Siamo un po' categoriali qui, ti preghiamo di guardare i tuoi sistemi operativi desktopin contrasto non guardare il tuo sistema operativo mobile, per esempio.Per ognuno dei programmi di riga di comando che vedi sul tuo sistema operativo elencare i vantaggi e gli svantaggise sono progettati come programmi interattivi. Questa domandariguarda l'interattività.2. La seconda domanda è di nuovo sulla stessa curva della prima domanda se non checonsidera il tema della non interattività. Se quegli stessi comandi che hai usatoe che hai elencato in questione 1 sono non interattivi o supponiamo che si comportino non
interattivamente, poi quali sarebbero i vantaggi o gli svantaggi di questo. Questedomande sono destinate a farti pensare agli aspetti del design del programma.Hint: Considerare i modi interessanti in cui un utente userebbe il programma. Prendi il programma di copia filecome esempio (nota che il programma di copia file non deve far parte della tua lista di programmi5). Il tuo sistema operativo sia windows GNU/Linux, Mac OS ... ecc.tipicamente avrà una versione di riga di comando di un programma di copia file.Considerare lo scenario quando un utente deve, dire, copiare un numero enorme di file, diciamo 1000,una versione interattiva del programma di copia file è un vantaggio o uno svantaggio? Inquale caso una versione non interattiva di questo problema sarebbe una sfida.3. La terza domanda ti fa imparare a usare i dispositivi standard di input, output e erroredel tuo sistema. I dispositivi predefiniti sono monitor tastiera e monitorrispettivamente per l'output standard in ingresso e l'errore standard. Quali altri dispositivi possono essereutilizzati invece di questi default? Prova a scoprirla per il tuo sistema operativo.4. Il programma di riga di comando di esempio utilizzato nella lezione video è un programmafunzionante correttamente; è corretto nel senso che esegue correttamente i calcoli necessari. Essofunziona nel senso quando l'utente dà i comandi utente corretti, esegue un'operazionecorretta corrispondente a quel comando. Tuttavia, non è ancora un prodotto software. Questa domandachiede di elencare almeno tre distinti miglioramenti nella versione di comandoversione del programma che lo renderanno un prodotto software. Da notare che il programmadeve rimanere un programma di riga di comando.
Così, un miglioramento che dice convertire questo programma in una grafica non è qualcosaquello che cerchiamo nella tua risposta. Il tuo programma rimarrà un programma di riga di comandoma comunque diventa un prodotto software, cosa che non è ora.5. Sviluppare una prova dettagliata di correttezza del nostro metodo utilizzato nel programma equo share. Cercate di garantire che ogni passo abbia una sola e unica modifica chiara rispetto al passo precedente. Per ogni passaggio assicurati di notare il motivo dietro al cambiamento che hai fatto.Dalla nostra esperienza sappiamo che potresti dover ripetere questo esercizio qualche volta aget it right. L'idea di questo esercizio è quella di avere un passo per passo il ragionamento sulla correttezzadel nostro programma. Di solito quando pensiamo a cose come questa noi molto velocemente
salta alle conclusioni. Questo esercizio è inteso a portarci passo dopo passo con ogni passo giustificatoda qualche ragione. Potrebbe essere lento e ti rendi conto di aver dimenticato alcuni passinella versione che hai scritto, quindi potresti dover riscriverlo di nuovo.6. Il programma della riga di comando che abbiamo utilizzato nelle lezioni video illustra un importanteprincipio di progettazione dell'interazione dell'utente. Le informazioni devono essere visualizzate costantementecon eventuali conversioni richieste tra informazioni interne e visualizzate. Ricordiamo chequando abbiamo visualizzato un report quando un coinquilino in realtà doveva dei soldi poi abbiamo dettoche quel particolare coinquilino l'importo dovuto è meno qualche numero. Abbiamo anche rimarcatoche i valori negativi sono la nostra comprensione interna che rappresentano i soldi per esserepagati. Ma quando si visualizza che i soldi da pagare come numero negativo, e del restodicendo che questo è l'importo dovuto, un utente tipico sarebbe molto confuso. È moltoimportante essere coerenti nel modo in cui vengono visualizzate le informazioni. Questo è il principioche non abbiamo fatto bene nel nostro programma. Questa domanda ti chiede di elencare pochi altritali principi che potrai ricordare dai tuoi studi.7. Il programma di share fair può essere scritto in stile procedurale oltre che stile orientato agli oggetti.Vi suggeriamo di scrivere il programma in entrambi gli stili, in questo modo capiretele differenze e i vantaggi tra i due stili. Pertanto, questa domanda chiede adi scrivere in altro stile rispetto a quello che hai scritto. Se abbiamo scrittoin uno stile orientato agli oggetti allora questa domanda ti chiede di riscrivere il programma in uno stile procedurale. Se l'abbiamo scritto in uno stile procedurale allora questo programma ti chiedequesta domanda ti chiede di riscrivere il programma nell'altro.
8. Gli array nel nostro programma sono indicizzati utilizzando numeri, ad esempio il moneySpent[ getIndex (“ Abhijat ”)] = 200, dove getIndex (“ Abhijat ”) restituisceil contro cui viene memorizzato il denaro speso da Abhijat.Sarebbe bello indicarli direttamente utilizzando i nomi dei coinquilini. Quindi,invece di dire che i soldi spesi per farsi indicizzare direttamente sarebbe fantastico se potremmoscriverlo come moneySpent [ “ Abhijat ”] = 200. Questo esercizio ti chiede semplicemente disuggerire un algoritmo in Java come questo potrebbe essere fatto. Ovviamente, se Java dispone di eventuali struttureche supportano questo già allora non è possibile utilizzarle; è necessario scrivere l'algoritmoindipendente dall'approccio Java.
9. Il nostro programma ha usato un certo invariante per garantire che sarà corretto indipendentemente dal numero didei coinquilini, è possibile adattare queste idee per progettare i calcoli core diun software di contabilità. Ovviamente si deve identificare l'invariante per la contabilità edimostrare che i tuoi calcoli funzioneranno indipendentemente dal numero di account eloro interazioni.In questa domanda cerchiamo di prendere la nostra comprensione delle idee invarianti e di correttezzaper l'applicazione di condivisione equa e applicarla ad un problema contabile. Ci sono moltimodi in cui questo può essere discusso. Speriamo che tu utilizzi davvero i forum per discutere didomande come queste nel dettaglio. Questa domanda richiede di pensare a come utilizzarele idee da un problema risolto e applicarli ad un altro problema.(Fare Slide Time: 11.45)
10. La nostra implementazione ha fatto un presupposto semplificando un solo coinquilino paga per un evento. Supponiamo, ora scartiamo questo presupposto e ne consentano più di uno epossibilmente tutti i coinquilini di condividere le spese per un evento. Da notare che la condivisione potrebbe nonessere uguale ma aggiungerà sempre a scapito di quell' evento. Quindi, se più di unacompagna di stanza condividi allora non devono condividere equamente, un coinquilino potrebbe spendere un po'più di quanto e l'altro coinquilino.
In questo nuovo scenario, come cambierà il nostro invariante, se cambierà? Come cambieranno i nostri calcoli, soprattutto di per la quota di testa? Come ha aiutato il nostro invariantea garantire la correttezza dei nostri calcoli?A parte l'esercizio di programmazione ti suggeriamo di provare anche a rispondere a queste domande perte stesso. Ovviamente, siete i benvenuti a discuterli sui forum, in vari punti daremosuggerimenti delle soluzioni, grazie.
Ciao a tutti, benvenuti nella seconda sessione di domande della seconda settimana del corso suintroduzione allo sviluppo delle applicazioni moderne. Queste domande sono per la tua pratica, speriamousi loro per capire il materiale che è stato presentato finora. Ce ne sono circa dieci die passeremo attraverso ognuno di loro lentamente.1. Consideriamo il programma della riga di comando nella prima sessione video della seconda settimana. Dail momento in cui gli argomenti della riga di comando vengono presentati sulla riga di comando, comemolte volte sono le informazioni sulla riga di comando trasferite da un punto del programmaad un'altra prima che venga utilizzata per la prima volta in elaborazione?Answer: 2 volte (o 3 volte se si conta anche il setup).a. Nel primo gradino arriva a main via parametri una schiera di stringhe chiamate args.b. Poi arriva al doSetup come parametri di nuovo una schiera di stringhe chiamate args.c. Infine, arriva nuovamente al metodo processCommandLine come schiera di stringhechiamate args.All'interno del metodo processCommandLine viene utilizzato o elaborato per ottenere, ad esempio,la modalità in cui viene eseguita l'applicazione, come la modalità di registrazione, la modalità di spesa ... etc.
Pertanto, il numero di volte che viene trasferito dal momento in cui viene presentato sulla riga di comandoal punto del suo utilizzo effettivo è due volte (o thrice se si considera il setup).Nota che sarebbe utile essere espliciti su come si conta. Ad esempio, è necessarioessere esplicito se si conta il doSetup. Ma anche notare che potrebbe essere forse sgradevolead alcuni, ma poi è una cosa molto positiva come altrimenti potrebbe causare un equivoco di. Se, invece, basta ignorarlo e non scriverlo, allora èpossibile che possa considerare il doSetup come una parte importante e vedere che non si ècontato e quindi penalizzare. Questo tipo di cosa si verifica molto nella praticatra gli esseri umani. È quindi utile essere espliciti e chiari sul modo in cui sirisponde alle cose.Se ci sono ipotesi, ad esempio se si ipotizza che il setup non debba esserecontato, allora si prega di dirlo esplicitamente. Se non lo dici, non c'è modo che uno possa esseresicuro del modo in cui si conta. Non saremo in grado di dare crediti ogni qualvolta ci sarà un'ambiguità. Quindi, ti preghiamo di cercare di essere il più chiaro possibile ogni volta che rispondi alle domande.(Fare Slide Time: 03.37)
2. Guardiamo alla seconda domanda: informazioni per controllare il flusso del programma versusinformazioni per calcolare nuovi valori. Questa domanda sta cercando di distinguere tra le informazioniutilizzate per controllare il flusso di programmi rispetto a quella utilizzata per calcolarenuovi valori. Ad esempio, in processCommandLine metodo, le informazioni sul
gli argomenti della riga di comando sono utilizzati per decidere che il programma debba effettuare la registrazione,spese o reporting. Di qui, le informazioni utilizzate non erano relative a “ come fare ” invece cheè su “ cosa fare ”. Così, chiameremo tali informazioni come “ che tipo di variabile ”o “ quali variabili ”.In contrasto ci sono altre informazioni che genereranno in realtà nuovi valori.Ad esempio perHeadShare in quel metodo computeFairShare: generanuove e utili informazioni da qualunque cosa sia disponibile finora. Pur essendo variabiliche ricordano solo informazioni, le chiameremo come “ come variabili ” nel senso checatturano il senso di “ come generare nuove informazioni ”.Questa domanda chiede di classificare le variabili nei propri programmi come “ quali variabili ”e “ “ come variabili ”.
(Riferimento Slide Time: 05.12)
3. Nelle lezioni abbiamo visto una gerarchia di funzionalità della versione di riga di comando del nostro programma, questo è stato usato come esempio di buone e cattive pratiche di scrittura dei programmi, maè utile anche vedere l'organizzazione sintattica, o chiamare i grafici come si chiama anche, dei nostri programmi. Una visione sintattica più completa, o di nuovo i grafi di chiamata, è quando abbiamo variechiamate disposte in una gerarchia come scritto nel codice sorgente.
Per la tua versione del programma della riga di comando scrivi il seguente (quando diciamogiusto fallo per mano tua, non usare strumenti per generare quell' informazione che si chiede;è utile nelle fasi iniziali per elaborare realmente le cose a mano):A. La gerarchia delle chiamate con ben specificato elenco di parametri e valori di ritornoB. Oltre a A, la serie di variabili che sono rosse ma non aggiornate per ogni chiamata.C. E infine, oltre a B la serie di variabili che vengono aggiornate anche da ogni chiamata.
(Riferimento Slide Time: 06.33)
4. Elencare tutti i metodi di ricordare le informazioni in informatica di cui si sa. Siè possibile che tu possa mancare qualche, quindi cerca di visitare la tua libreria, leggere i libri, ricordare dala tua memoria qualunque cosa tu abbia imparato finora, e magari anche usare Google o internetper scoprirlo. Ma cerca di essere il più completo e completo possibile.5. Quali metodi di ricordare le informazioni al di fuori dell'informatica si conosce?Applicare le tecniche di descrizione a ciascuna quando le descrivi, fare una breve nota dicome ogni opera. L'intento di questa domanda è quello di aiutarti a vedere che le idee che haiusando in informatica sono anche in realtà intorno a te.6. Il nostro programma di share fair può essere generalizzato in due direzioni come visto prima. Rispondi alseguente:
A. Elencare due passi di generalizzazione per ogni direzione. Da notare che questo ci dà un totaledi 4 passi di generalizzazione differenti.B. Per ognuna delle 4 generalizzazioni classifica i parametri come “ trascurabile ”,“ significativa ”, e “ irrilevante ” simile al modo in cui abbiamo fatto per il programma fairSharenella sessione video.
Domande come la #6, e in realtà molte di esse che abbiamo visto finora, stanno solo cercando di arrivare aper guardare il vostro programma e varie parti di esso in modi diversi e diversi. Questi modi potrebberoessere utili per noi mentre progrediamo attraverso questo corso. Vi esortiamo quindi a provare il vostro meglio arispondere a queste domande.(Fare Slide Time: 08.58)
7. Per la versione line di comando di questo programma il database era un semplice file di testo sul disco locale. Supponi che questo file sia ora richiesto per essere su un server remoto, quindi rimane comeun semplice file di testo è un semplice file di testo tranne che non è sul disco locale ma su qualche server remoto. E il tuo OS non è in grado di mostrare le cartelle di rete. In altre parole, sebbeneil file sia sul server remoto sul tuo sistema operativo non hai un programma cheti mostra come se si tratti di un file locale.Comunque, il tuo sistema è in grado di fare networking; può fare operazioni di rete sebbenenon ti mostri i file in un'unica cartella. In tal caso elencare i passi necessariper effettuare l'ordine a
A. Creare un nuovo databaseB. Inizializza il tuo programma utilizzando un database dal server remoto.In sostanza ti chiede di elencare i passaggi necessari per implementare il databasee inizializzare dal database nel codice sorgente.8. Elencare quante differenze è possibile tra una soluzione basata su foglio di calcolo e una versione di riga di comando.
9. Elencare quante somiglianze come si può tra una soluzione basata su foglio di calcolo e una versione di riga di comando.
Entrambe queste domande, in un certo senso, in realtà si confronta e contrastano le due soluzioni con ognialtro. Ci sono alcuni vantaggi di una soluzione nell'altra, ci sono alcuni svantaggidi una soluzione o l'altra. Ogni approccio ha davvero entrambi questi aspetti, i pro e i contro,e nella vita pratica dobbiamo bilanciarli.(Fare Slide Time: 11.18)
10. La nostra discussione di conversioni tra la rappresentazione esterna delle informazioni e la rappresentazione internaappare molto banale. Come nella nostra discussione in linea di comando, iltipo di conversioni che abbiamo fatto per l'input e per l'output sembrano essere molto banali.Anche se ci concentriamo solo su un singolo utente, singolo computer, singolo programma ... etc., stile
programmi, è ancora possibile vedere che tali conversioni possono essere impugnabili. Il nostro esempiopotrebbe farlo apparire banale ma questo forse perché il nostro esempio non era unmolto buono.Ma non è sempre il caso, ad esempio, considerare che si desidera leggere un file di immagininel proprio programma. Quando si desidera leggere un file immagine è necessario conoscere il formato diil file immagine e a seconda del modo in cui il formato è organizzato la lettura che il file puòdiventare noioso.Elenco come molti altri esempi simili, non l'esempio del file immagine ovviamente, comeè possibile dove la conversione è noiosa, anche per ogni esempio identificare i motivi per cuipotrebbe renderlo impegnativo.