Dove l'educazione informatica "riuso e integrazione" trova una copertura completa? [chiuso]

1

Questa introduzione è solo il mio ingenuo tentativo di ottenere un'istantanea di un miglio che mi aiuti a posizionare la mia domanda. Qualsiasi utente che cerchi di rispondere alla mia domanda, che cerca di definire un aspetto della programmazione, avrà per superare la mia comprensione ingenua, semplicemente a causa della mia educazione idiosincratica. Quindi qui sto mettendo il mio soggetto nella gamma di argomenti che delineano la programmazione e le attività del software:

  1. Fondamenti di programmazione (modelli di progettazione software, espressioni idiomatiche, modelli)
  2. Riutilizzo e integrazione del codice (librerie, framework, apis)
  3. Sviluppo continuo (documentazione, commenti, controllo della versione)
  4. Migliori pratiche di manutenzione (amministrazione dei sistemi)

Mi interessa concentrare le mie capacità di programmazione sul riutilizzo del codice e sugli argomenti di integrazione. Questo argomento può certamente iniziare con i linguaggi di programmazione del software e le differenze tra la programmazione funzionale e orientata agli oggetti. Tuttavia, ciò che desidero focalizzare su in dettaglio e su una certa lunghezza sono la varietà di usi di librerie, framework e apis.

La mia formazione di programmazione viene da ciò che posso trovare facilmente su Internet e nei libri. All'inizio di quest'anno mi sono iscritto a un corso sui fondamenti di Coursera, Programming Languages , del professor Daniel Grossman, che tenta di preparare gli studenti per la programmazione in qualsiasi lingua. Il riutilizzo era menzionato solo come una proprietà di funzioni e oggetti. Puoi iniziare la tua ricerca di "riutilizzo e integrazione" nei fondamenti e non avvicinarti.

Da quando ho iniziato a imparare un po 'di Ruby, php ho messo insieme una migliore comprensione del "riuso e integrazione", ma è tutto maculato e patchwork. I materiali pubblicati sono principalmente # 1 e poi alcuni mix idiosincratici di # 2-4. Puoi leggere molti libri e ancora non capire come tutte queste astrazioni combaciano.

Ho persino partecipato a una discussione qui a p.se sul problema pedagogico di studenti di programmatori cargo-cult che" ... copia-incolla il codice di precedenti incarichi simili ... "Mentre la mia risposta a questo riflette il mio apprezzamento per la preoccupazione dell'OP, eppure la mia immaginazione non può aiutare a invidiare questi studenti che possono disegnare con tanta facilità dai progetti precedenti solo un po '.

Non ho letto il libro o non ho partecipato a una lezione o ho ascoltato una discussione che tenta di sondare il riutilizzo e i paradigmi di integrazione nella loro totalità.

Dove nell'educazione informatica il "riutilizzo e integrazione" trova una copertura completa?

    
posta xtian 10.10.2013 - 18:57
fonte

2 risposte

5

Penso che tu stia confondendo l'informatica con l'ingegneria del software. L'informatica è più interessata a teorie, algoritmi, strutture dati e prove. L'ingegneria del software è la disciplina che studia l'architettura e la costruzione del software. Un corso di laurea in informatica può avere corsi di ingegneria del software, ma non sono necessariamente parte dell'informatica di per sé.

    
risposta data 10.10.2013 - 20:46
fonte
2

Ciò che hai descritto come "riuso e integrazione" è in gran parte incarnato in modo pratico usando il concetto di modularità.

La modularità prende un numero di forme. In alcune lingue ci sono in realtà dei moduli, e in molti altri ci sono concetti di modularità che prendono la forma di singoli file, spazi dei nomi e altri meccanismi organizzativi simili. Le classi orientate agli oggetti sono una forma di modularità, come le semplici funzioni.

Per ottenere la riusabilità e la facilità di integrazione con vari sistemi, il software deve essere abbastanza generico da poter essere applicato a una vasta gamma di scenari di programmatori. Ciò è ottenuto da alta coesione e da un accoppiamento lento. Generics consentono di utilizzare le raccolte con oggetti arbitrari.

In breve, il riutilizzo e l'integrazione sono raggiunti attraverso la comprensione dei principi di programmazione fondamentali e di come questi concetti possono essere applicati per sviluppare software che possa essere facilmente riutilizzato e integrato. Devi prima conoscere i fondamenti, in altre parole.

    
risposta data 10.10.2013 - 19:15
fonte

Leggi altre domande sui tag