Perché le scuole non coprono i debugger? [chiuso]

12

Dopo ancora un altro compito domanda su SO. Sembra che la stragrande maggioranza degli studenti non abbia idea di cosa sia un debugger o di come usarne uno. Sento che sapere come usare un debugger è importante quasi quanto gli altri fondamentali della programmazione.

  • La domanda non dovrebbe essere il debugging e come utilizzare i moderni strumenti di debug per insegnare insieme ai fondamenti della programmazione? Se no, perché no.
posta rerun 11.06.2011 - 03:30
fonte

7 risposte

7

Non è tanto il caso che l'uso dei debugger debba essere insegnato, ma le tecniche più generali di debugging . Ciò includerebbe insegnare come utilizzare un debugger, naturalmente, ma anche varie altre tecniche importanti, ad es.

  • pensiero critico
  • divide e conquista
  • debug di stampa, registrazione, ecc.
  • controllo della scrivania
  • stress test

Come ulteriore vantaggio, molte delle tecniche possono essere applicate anche alla risoluzione di problemi in aree diverse dalla programmazione.

C'è un bel libro su questo argomento, che dovrebbe probabilmente essere richiesto per tutti gli studenti universitari e chiunque stia imparando le basi della programmazione: Debug di David J Agans .

    
risposta data 11.06.2011 - 12:35
fonte
8

I corsi di informatica terziaria sono pensati per insegnare agli studenti principi fondamentali della programmazione , come hai detto tu - questi concetti sono insegnati agli studenti nella speranza che possano ingannare necessari concetti e applicarlo a una più ampia gamma di linguaggi di programmazione e insiemi di problemi.

Gli strumenti di debug, d'altra parte, sono un sottoinsieme nell'area implementazione - ogni strumento è diverso per ogni lingua (anche se i concetti sono gli stessi). Siamo stati esposti a strumenti di debug, ma non li abbiamo mai veramente approfonditi. Se avessimo trascorso più di una settimana sugli strumenti di debug, guarderei indietro - a ben vedere - e ritengo che sia una perdita di tempo. Preferirei conoscere la notazione di BigO o il polimorfismo. Tuttavia, dal momento che la potenza di uno strumento di debug non è stata trasmessa (con successo) agli studenti, allora sarebbe stata una necessità assente.

    
risposta data 11.06.2011 - 04:03
fonte
2

Nella maggior parte dei corsi introduttivi di programmazione, lo stato del programma è abbastanza semplice da poter eliminare eventuali bug con alcune dichiarazioni di stampa. Potrebbe anche esserci il problema di costringere gli studenti a fare le cose a mano in modo da avere un'idea di come e dove nel codice si verificano determinati tipi di bug. Se non hai idea di dove guardare, un debugger sarà piuttosto inutile.

    
risposta data 11.06.2011 - 04:16
fonte
2

Non è così importante. Non ne uso quasi mai uno e non l'ho mai fatto. Il modo migliore per eseguire il debug del codice è:

  • non scrivere i bug in primo luogo
  • se li scrivi li correggi pensando, non immergendoti nel debugger

E per molti moderni software multi-thread, i debugger hanno l'effetto di nascondere i bug piuttosto che scoprirli. E sicuramente non dovrebbero essere "insegnati" a livello di laurea, più di quanto si potrebbe insegnare come usare un word processor.

    
risposta data 11.06.2011 - 04:19
fonte
0

Il debug dovrebbe essere insegnato perché gli studenti sono umani e gli umani commettono tutti i tipi di errori, alcuni dei quali richiedono l'acquisizione di alcuni dati sperimentali (informazioni di debug) prima che si verifichi qualsiasi chiarimento riguardante un determinato errore.

Il debug non viene insegnato a causa della premessa (forse ereditata dal dipartimento di matematica) che i programmi dovrebbero essere corretti in base alla progettazione, forse anche in modo dimostrabile. E quindi gli studenti non dovrebbero "sperimentare" con la programmazione correttamente. Tuttavia questo ignora il vero processo di produzione mondiale di esseri umani imperfetti che sfornano il software per modificare le specifiche in base alle pressioni e ai tempi previsti. ecc.

    
risposta data 11.06.2011 - 04:16
fonte
0

Questa domanda mi è estranea. Alla mia università l'uso del debugger (JDB e il debugger di Eclipse) è stato insegnato sin dalla sequenza informatica del primo anno. L'uso dei debugger e di altri strumenti di test è stato nuovamente insegnato nel corso di test del software.

Personalmente trovo incredibilmente difficile credere che qualsiasi buona scuola che sta tentando di preparare le persone per l'ingresso nel mondo del lavoro non stia insegnando le corrette tecniche di debug e di test. Ovviamente non possono coprire tutti gli aspetti di esso, ma possono almeno insegnare le basi in classe.

    
risposta data 11.06.2011 - 12:41
fonte
0

Scoprilo da solo

Non avevo bisogno e non volevo un professore o un T.A. prendermi del tempo insegnandomi qualcosa che potrei facilmente capire da solo. Sono lì per insegnarmi i concetti difficili e guidare l'apprendimento. Non lo sono e non dovrebbero essere lì, quindi non devi RTFM.

Scopri come imparare

Il college dovrebbe insegnare a imparare, non solo a tenere la tua mano attraverso ogni argomento che non conosci. Se la tua mano è tenuta costantemente attraverso questo processo, fallirai miseramente nel mondo reale.

In salita, Entrambi i modi, Attraverso la neve

Quando sono andato a scuola non si sono nemmeno preoccupati di insegnarti la lingua. Ci si aspettava che lo prendessi nel tuo tempo libero. Ti darebbero il progetto e le strutture. Spetta a te rintracciare le informazioni necessarie per completare l'implementazione e inviare un programma di lavoro. Abbastanza simile al mondo reale, tranne che con l'orario di ufficio.

    
risposta data 12.06.2011 - 22:57
fonte

Leggi altre domande sui tag