Afdrukken

HCC Werkgroep Programmeren
Werkgroep Programmeren biedt een platform voor hobbyprogrammeurs met als doel ondersteuning en uitwisseling van ervaringen op het gebied van het zelf programmeren van computerprogramma’s apps en websites. Er is momenteel voor softwareontwikkeling een uitgebreid scala beschikbaar aan platforms, programmeertalen, -technieken en -omgevingen.
Platforms
Eigen programma’s en applicaties kunnen worden ontwikkeld voor het Windows platform en voor Unixachtige omgevingen zoals Apple en Linux.  De gemaakte programma’s kunnen stand alone worden ingezet op de pc, als app op een telefoon of tablet, in de vorm van een script op een webpagina of op de command line, als macro binnen een spreadsheet en andere office toepassingen of als besturingssoftware voor hardware, op de Raspberry Pi of Arduino. Verder valt te denken aan het besturen van robots met artificiële intelligentie, drones, de domotica, elektrische apparatuur, games en vele andere toepassingen. Alles ter lering en vermaak. 
Programmeertalen
Programmeertalen vertalen de menselijke taal in voor de computer begrijpelijke besturingscommando’s. Daarbij wordt onderscheid gemaakt tussen gecompileerde talen, geïnterpreteerde talen en scripttalen.
Gecompileerde en geïnterpreteerde programmeertalen
Bij gecompileerde talen wordt het geschreven programma vooraf met behulp van een compiler vertaald in machinecode, dat zijn instructies voor de computer hardware. Gecompileerde programma’s zijn in het algemeen veel sneller dan de geïnterpreteerde versies, omdat bij de laatste de instructies pas bij het uitvoeren van een programma worden vertaald in machinecode.
Bekende gecompileerde talen zijn C, C++ en Pascal. Oudere talen, die echter nog steeds worden ingezet, zijn Cobol en Fortran. Java en daarvan afgeleide talen als C## (C-sharp) en Swift kennen een tussenvorm, waarbij de machinecode “just in time” wordt geproduceerd.
Een bekende geïnterpreteerde taal is Basic. Daarvan afgeleid zijn vele dialecten, waarvan worden vermeld Visual Basic en Liberty Basic.
Scripttalen
Scripttalen als Perl, PHP, Python en Ruby worden eveneens pas bij uitvoering vertaald in machinetaal. De charme van een scripttaal is dat de syntax begrijpelijk is als menselijke taal en daardoor vrij snel kan worden aangeleerd. Overigens verschilt de syntax bij elke taal, hetgeen als een nadeel kan worden beschouwd. De voor beginnende programmeurs aanbevolen scripttaal is Python.
In webpagina’s wordt dikwijls gebruik gemaakt van Javascript (JS), Swift en PHP.
Tegenwoordig bestaan er ook compilers voor de geïnterpreteerde en scripttalen.
Scripttalen kennen omvangrijke bibliotheken met software (libraries), die je in eigen programma’s kunt inzetten. Vooral open source kent er vele; nagenoeg elk (deel)probleem is al eens door iemand opgelost en ter beschikking gesteld. Doe daar je voordeel mee. Perl (CPAN) en Python (pip) zijn voorbeelden.
Leerlingen van de basisschool en het voortgezet onderwijs maken vaak gebruik van visuele programmeertalen als Scratch, waarmee grafische programma’s en spelletjes kunnen worden gemaakt.
Programmeeromgeving (IDE)
Een IDE bestaat uit een invoer gedeelte (vaak oplossingen (solutions) met tekstbestanden in mappen) en een compiler. Voor de taal C en C++ zijn bekende commerciële IDE’s:
Microsoft Visual Studio;
Embarcadero C++-builder.
Een commerciële Pascal IDE is Embarcadero Delphi.
Open Source IDE’s zijn:
QtCreator (C++);
Eclipse (Java, PHP, C++);
Netbeans (Java, PHP en C++);
Sharpdevelop (C##);
Lazarus (Pascal).
Deze IDE’s maken dikwijls gebruik van de GNU C-compiler. De invoer daarvoor kan ook in de vorm van tekstbestanden, die met een editor worden vervaardigd. De te compileren bestanden worden opgenomen in een Makefile.
Voor Visual Basic kan gebruik worden gemaakt van Visual Studio Express.
De script talen komen alle met een eigen interpreter. Voor Javascript is deze opgenomen in de internet browser. Scratch kent een grafische IDE die werkt in he web.
Programmeertechnieken
De technieken kunnen worden onderverdeeld in procedurele technieken en object georiënteerde technieken.
In de vanouds toegepaste procedurele technieken wordt het computerprogramma onderverdeeld in een hoofdprogramma met subroutines, die elk een deel van de oplossing bewerkstelligen. Aanbevolen wordt het probleem op te splitsen in zoveel mogelijk onafhankelijke deelroutines.
Object georiënteerde technieken beschrijven een probleem in de vorm van klassen en objecten. Een klasse vormt de beschrijving van de gegevens en de procedures om deze gegevens te benaderen en te bewerken. Een object zelf is een instantie van een klasse. Binnen een klasse wordt de data ingekapseld en zijn procedures opgenomen om deze data te benaderen, te bewerken en te presenteren. Van een klasse kan een subklasse worden afgeleid (erven). De afgeleide klasses kunnen eigen data en procedures toevoegen aan de klasse, waarvan is geërfd. Polymorfisme geeft aan dat bepaalde delen van een object (klasse) niets af hoeven te weten van eigenschappen van een onderdeel waarvan deze niet afhankelijk zijn.
De programmeur krijgt ook te maken met de taalsyntax, de grafische schil om het programma, de foutafhandeling, de data en de zogenaamde business rules (welke relaties zijn er en wat voor berekeningen zijn vereist).
Als programmeertechnieken worden ook de wiskundige methoden beschouwd, waarmee een probleem wordt opgelost. Voorbeelden zijn sorteerroutines, eindige elementen methodes, recursieve methoden en lineaire programmering.
Ondersteuning en eigen inbreng
Op de HCC-bijeenkomsten kan ondersteuning worden verleend aan (beginnende) hobbyprogrammeurs. Alle platforms en programmeertalen zijn welkom. De stof is echter dermate uitgebreid en dikwijls ook ingewikkeld dat niet bij voorbaat kan worden verwacht dat op elke vraag direct een antwoord kan worden gegeven. Tevens bestaan er grote verschillen tussen de afzonderlijke programmeertalen en de IDE’s. En elke programmeur heeft zijn eigen voorkeuren.
Wanneer het probleem niet direct kan worden opgelost blijkt kan worden doorverwezen naar de HCC Interessegroep Programmeren. Deze houdt 10 keer per jaar een bijeenkomst te De Bilt. Ook kan gezamenlijk worden gezocht op het internet, dan wel worden doorverwezen naar de handleidingen en de literatuur.
Leden van HCC die zelf programmeren worden uitgenodigd hun ervaring te delen. Dat kan in overleg met de locatiemanager ook in de vorm van een presentatie. Je kunt ook ondersteuning geven en vragen bij de installatie van een IDE en het wegwijs maken daarin.
Ook mogelijk is met een aantal mensen een nieuwe techniek of een nieuwe versie van een programmeertaal te bestuderen en praktijkervaring uit te wisselen. Het ligt niet in de bedoeling om cursussen te geven, maar landelijk in De Bilt is dat wel mogelijk bij voldoende belangstelling.

Coördinator is Rudolf J. AndringaRudolph Andringa.email pictogram