IT2 Utvikling mot nettet 
Dette er en variant av IT2 der fokuset vil være rettet mot å lære elevene å utvikle nettapplikasjoner. Disse applikasjonene vil være skrevet i skriptspråket Ruby, som med sitt rammeverk Ruby on Rails muliggjør å raskt komme i gang med avanserte ajaxbaserte nettapplikasjoner med animasjoner og lyd.

Fordelene med å velge denne veien fremfor de (i norsk skole) mer vanlige alternativene fra Microsoft (Visual XXX Developer) eller Adobe (Flash), er at verktøyene er åpne, gratis og de er også lett tilgjengelige på alle plattformene elevene bruker privat. Ruby utelukker heller ikke utvikling i .NET rammeverket om det skulle ønskes gjennom den åpne .NET-implementasjonen Mono. Det er også uttrykt ønske fra Stortinget om at det offentlige skal prioritere såkalt fri programvare framfor andre alternativer når det er mulig.

Sammenligning av de tre alternativene

Microsoft (C#/VB mot .NET)Adobe FlashRuby
.NETJaNeiJa (Mono)
FriprogNeiNeiJa
GratisJa (Express EditionNeiJa
WindowsJaJaJa
Mac OS XNeiJaJa
LinuxNeiNeiJa


Praktiske førsteuker: generelle it-verktøy

Linux

På skolen jeg har vært på har elevene kun en felles elevkonto. Derfor kunne det være en ide å utstyre alle elevene med hver sin usb-stick (4 gig til 200kr) som de kan installere Linux på, for dermed å gi dem unike brukerkontoer. Linux i seg selv har ingen vekt i kurset, men gjør at man kan være litt mer fleksibil. Meningen er da at alle verktøyene vi bruker i Linux også skal kunne brukes hjemme under Windows. Filene blir synkronisert mellom hjemmet og skolen med DropBox i tilfelle de skulle miste usb-sticken.

Linux on a stick

Installer Linux på minnepinne.

Lær å navigere i konsollvinduer

ls,dir,cp,man,ruby/python,make?

Dropbox

Sette opp DropBox på Windows og Linux. Kunne jobbe med de samme filene hjemme som på skolen.

Versjonskontroll

Programmering

Start med det grunnleggende. Konsollprogrammering.

Hackety Hack

En variant av Ruby laget av _why med masse funksjonalitet som er ment å gjøre nybegynnere flytende i Ruby i løpet av kort tid. Hva med å lage en blogg på fem linjer kode? Les mer. (Kommer helt nyskrevet versjon for Mac, Linux og Windows i løpet av 2009).

Lær Shoes

Et alternativ til Hackety Hack kunne vært et annet prosjekt fra _why. Shoes er et toolkit som er ment å lage grafiske programmer fort og enkelt - alt hva man ikke forbinder med nettopp GUI-programmering. Men jeg kjenner ikke dette annet enn fra å leke med det i ti minutter.


Why's Poignant Guide to Ruby

Full introduksjonsbok til Ruby. Veldig gøyal og anderledes. 

Unit testing

Om du ikke kjenner til begrepene, les mer her.

Fra IBM Developerworks:
A maintained suite of unit tests:

  • Represents the most practical design possible
  • Provides the best form of documentation for classes
  • Determines when a class is "done"
  • Gives a developer confidence in the code
  • Is a basis for refactoring quickly

Kort sagt ønsker jeg å introdusere elevene for Unit Testing så snart de har laget sine første småprogrammer, rett og slett fordi det er en veldig motiverende måte å lære å programmere på.


Prosjektstyring

Her har jeg lite å komme med ... Har tanker om hvilke verktøy de bør bruke for å samarbeide effektivt i grupper, men ...

Verktøy

Mange av verktøyene under er ting man kan opplyse om, uten å trenge å undervise i. Det er verktøy som forenkler gruppesamarbeid og øker effektiviteten, men det er ikke nødvendig for å få til oppgaver i grupper. Spesielt versjonshåndtering (Git/SVN) er veldig nyttig for å jobbe effektivt i grupper med kildekode.

  • Google Docs

    samskriving av tekster, regneark, og undersøkelser i nåtid
  • Google Groups 

    Fildeling med gruppemedlemmer, diskusjoner, ...
  • DropBox 

    deling av filer gruppevis
  • Skype/MSN

    Geografisk spredt samarbeid i sanntid 
  • Basecamp

    prosjektsamarbeidsverktøy. Les mer på BasecampHQ.
  • Synkronisering, backup og versjonskontroll

    Kjennskap til verktøy som Git eller Subversion letter arbeidet med programmeringsprosjekter i grupper betraktelig. Innføring i dette er ønskelig, men ikke nødvendig.

Webutvikling

Lær HTML+CSS

Lær Ruby On Rails