Quanto è difficile l’informatica alla Umass Amherst?

La risposta facile è che è quello che ne fai. Se ti attieni ai corsi richiesti e non ti sforzi, non sarà difficile. Se provi a fare del tuo meglio e prendi classi più interessanti, allora il curriculum può diventare molto difficile.

La risposta più lunga è che parte di esso dipende da te, e alcuni del curriculum di CS possono essere oggettivamente classificati come facili o difficili. Commenterò prima i corsi di base, dato che tutti li prendono o li escludono.

I due corsi introduttivi (CS 121 e CS 187) sono molto facili. Il 121 può essere saltato con un po' di esperienza precedente (come AP Computer Science). 187 (il corso sulle strutture dei dati) è un po' più difficile, ma ancora ben all'interno dei limiti di un corso semplice.

Ci sono quattro corsi principali (220, 230, 240, 250) che sono richiesti dopo aver finito le strutture dei dati. Ecco le loro difficoltà corrispondenti.

CS 220 (Programmazione funzionale)- La difficoltà del corso dipende dal professore. La sessione del semestre successivo a quello in cui l'ho frequentato è diventata molto più difficile perché ci si aspettava che gli studenti si buttassero subito in Scala senza capire alcun concetto. Nella mia sessione, il corso era a un ritmo rilassato e con un grande professore (pollice in su per Tim Richards!). Tuttavia, poiché molti studenti avevano grossi problemi con i progetti, la classe ha rallentato fino a fermarsi completamente a metà del semestre. Questo corso di base è moderatamente facile nel complesso, ma sarà un gioco da ragazzi se avete avuto una blanda introduzione alla programmazione funzionale o a Scala

CS 230 (Computer Systems Principles) - Se avete seguito la programmazione C prima e avete una comprensione preliminare dell'interazione tra hardware e software, allora questo dovrebbe essere un corso semplice. L'uso di Linux è previsto e può essere difficile per alcuni abituarsi. Non ho seguito questo corso ma ho una buona conoscenza del contenuto, quindi posso dire con sicurezza che questo corso è stato ben fatto ed è moderatamente difficile per un corso introduttivo.

CS 240 (Probabilità) - Questo corso è (a mio parere) un po' un disastro. E' una scusa per una solida comprensione della probabilità ed è tremendamente facile da completare. Utilizza le opzioni online come MIT OCW per imparare molto di più mentre segui questo corso. Posso capire il ragionamento di rendere questo corso più lento, ma il corrispondente calo di materiale e di difficoltà è un tantino eccessivo.

CS 250 (Discrete Math) - Questo corso è normalmente tenuto da David Barrington che non ho altro che elogi per il professore. L'ho avuto per il CS 501 e posso supporre che insegni altrettanto bene questo corso. Ci sono alcune parti di questo corso che tutti dovrebbero trovare facili (tabelle di verità di espressioni logiche) e alcune parti più difficili (scrittura di prove). Questo corso dipende completamente da ogni individuo per quanto riguarda la difficoltà. Può essere molto facile per alcuni e molto difficile per altri. Questo corso non è così difficile come potrebbe essere (vedi il 6.042 del MIT come esempio). Gli argomenti sono introdotti a ritmi più lenti e c'è del materiale mancante. Questo non significa che il corso non possa essere difficile! Un'introduzione alle prove non è mai semplice. CS 250 è anche unico in quanto c'è un'introduzione al TCS alla fine del corso (espressioni regolari, DFA, Pumping Lemma, ecc.).

A partire dall'autunno 2016, UMass CICS richiede ad ogni studente di prendere CS 311 (Algoritmi) come core aggiuntivo. Ho pensato che questo corso fosse ben fatto e sicuramente il più difficile dei core. Ci vuole molto tempo per capire questi concetti e ancora di più per la pratica. Divertiti con il CLRS!

Per i corsi di livello superiore, tutto dipende dalla tua ambizione e preparazione.

I corsi di livello 300 - 500 variano; alcuni possono essere abbastanza semplici mentre altri possono essere estremamente difficili. Posso parlare solo per quelli che ho seguito io, quindi non posso dare più di una risposta generica qui. I corsi di laurea (>600) sono tutti difficili e richiedono molto più lavoro. I professori dell'UMass sono abbastanza aperti a lasciare che i laureandi seguano questi corsi. Se non vi sentite stimolati, allora iscrivetevi e questo cambierà rapidamente. I corsi di laurea qui sono della stessa qualità di qualsiasi università di alto livello.

Molti studenti di CS si specializzano due volte, il che aumenta anche la difficoltà del programma. Il più popolare sarebbe raddoppiare in matematica e informatica. La difficoltà del curriculum di matematica è un discorso diverso (a cui posso rispondere in un PM o in una domanda separata). Questo renderà quasi certamente il tuo tempo all'UMass molto più difficile di un singolo major.

In generale, i corsi di base sono facili e diretti; uno dovrebbe incontrare poca opposizione lì. A seconda di quanto duramente ti metti alla prova nei corsi di livello superiore, UMass CS può diventare pazzesco quanto vuoi.

Questi sono i corsi di CS e correlati a CS che ho preso:

CS 220, CS 501 (Teoria del linguaggio formale), MA 235 (Algebra lineare), MA 411 (Algebra astratta).

Cosa farò il prossimo semestre:

CS 590D (Algoritmi per la scienza dei dati), CS 575 (Combinatoria), CS 611 (Algoritmi graduali)