BSc (Rekenaarwetenskappe)

Die doel van die BSc (Rekenaarwetenskappe)-program is om studente in staat te stel om as kreatiewe, kritiese graduandi in die Rekenaarwetenskappe te gradueer. Die kwalifikasie is van so ʼn aard dat gegradueerdes nasionaal kompeterend en internasionaal relevant sal wees. Die leerplan sluit Wiskunde, Statistiek en Fisika in. Studente word sodoende toegerus om interdissiplinêr ʼn bydrae te lewer. Tans is daar ʼn groot aanvraag na rekenaarwetenskaplikes. Beroepe wat deur rekenaarwetenskaplikes beoefen kan word, sluit die verwerking en analise van data, ontwerp van stelsels vir verskillende toepassings, die implementering van wiskundige en teoretiese onderbou van grafika, kunsmatige-intelligensieontwerpe en ʼn bydrae tot die opvoedkunde in.

BSc (Rekenaarwetenskappe)

Die doel van die BSc (Rekenaarwetenskappe)-program is om studente in staat te stel om as kreatiewe, kritiese graduandi in die Rekenaarwetenskappe te gradueer. Die kwalifikasie is van so ʼn aard dat gegradueerdes nasionaal kompeterend en internasionaal relevant sal wees. Die leerplan sluit Wiskunde, Statistiek en Fisika in. Studente word sodoende toegerus om interdissiplinêr ʼn bydrae te lewer. Tans is daar ʼn groot aanvraag na rekenaarwetenskaplikes. Beroepe wat deur rekenaarwetenskaplikes beoefen kan word, sluit die verwerking en analise van data, ontwerp van stelsels vir verskillende toepassings, die implementering van wiskundige en teoretiese onderbou van grafika, kunsmatige-intelligensieontwerpe en ʼn bydrae tot die opvoedkunde in.

WAT KAN EK MET DIE BSC (REKENAARWETENSKAPPE)-GRAAD DOEN?

ʼn Student wat die graad BSc (Rekenaarwetenskappe) aan Akademia behaal het, kan ʼn bydrae in verskeie ekonomiese sektore lewer, insluitend die finansiële, bioïnformatiese, wapenvervaardigings- en mediese sektore.

WAT BEHELS DIE KWALIFIKASIE?

NKR-vlak 7

400 krediete

SAKO-nommer: 118638

ONDERRIGLEERMODEL: Voltydse kampusmodel

WAT KAN EK MET DIE BSC (REKENAARWETENSKAPPE)-GRAAD DOEN?

ʼn Student wat die graad BSc (Rekenaarwetenskappe) aan Akademia behaal het, kan ʼn bydrae in verskeie ekonomiese sektore lewer, insluitend die finansiële, bioïnformatiese, wapenvervaardigings- en mediese sektore.

WAT BEHELS DIE KWALIFIKASIE?

NKR-vlak 7

400 krediete

SAKO-nommer: 118638

ONDERRIGLEERMODEL: Voltydse kampusmodel

KWALIFISEER EK OM BSC (REKENAARWETENSKAPPE) TE STUDEER?

KWALIFISEER EK OM BSC (REKENAARWETENSKAPPE) TE STUDEER?

MODULES

Hierdie module bied ʼn inleiding tot die ontwikkeling van programontwerp en -analise, met C++ wat as programmeertaal gebruik word. Studente word bekendgestel aan basiese programmeringskonsepte soos die invoer/afvoer, basiese datatipes en gepaardgaande operatore, uitdrukkings, beheerstrukture, skikkings, en parameteruitruiling. Vloeidiagramme word bekendgestel ten einde modulêre programmering te ondersteun. Naspeurtabelle word gebruik om studente te help verstaan hoe parameters se waardes verander wanneer hul rondgestuur word. Vaardighede om effektiewe toetsing en ontfouting te doen word ontwikkel.

Die module stel studente bekend aan die rekenaar as ʼn stelsel. Daar word onderskeid getref tussen harde- en sagtewarekonsepte. Hardewarekonsepte wat deur die module gedek word, sluit die argitektuur van die rekenaar sowel as die interne voorstelling van getalle en karakters binne ʼn rekenaar in. Terwyl sagtewarekonsepte onder meer stelselsagteware en toepassingssagteware dek. ʼn Kort weergawe van die geskiedenis van rekenaarwetenskap vorm deel van hierdie module. Daar word ook gekyk na etiese vraagstukke wat ontstaan het as gevolg van die bestaan van rekenaarwetenskap.

Die module stel studente aan objekgeoriënteerde programmering bekend. Daar sal geleer word hoe om objekte van reeds gedefinieerde klasse te instansieer en die ooreenstemmende klasse se funksies te gebruik. Verder sal studente leer hoe om klasse vanuit die staanspoor te definieer, objekte van die klasse te instansieer en funksies wat gepaardgaan met die gedefinieerde klasse te gebruik. Daar sal ook op ander objekgeoriënteerde programmeringskonsepte, soos oorerwing en die oorlaai van funksiename sowel as operatore gefokus word. Laastens sal daar na dinamiese geheue-allokasie, geskakelde lyste en rekursie gekyk word.

Die doel van hierdie module is om studente toe te rus met die fundamentele kennis van differensiaal- en integraal-analise, en die vermoë om wiskundige en praktiese probleme te ontleed, modelleer en op te los. Verder poog die module om studente betrokke te kry by outentieke wiskundige situasies wat verband hou met die teoretiese inhoud om sodoende studente se belangstelling in wiskunde te bevorder.

Die doel van hierdie module is om die fundamentele beginsels van fisika aan die student bekend te stel ten einde ʼn goeie grondslag in fisika te vorm. Onderwerpe soos klassieke meganika, elektrisiteit, magnetisme, optika en golwe, asook ʼn inleiding tot moderne fisika, sal hanteer word.

Die doel van hierdie module is om aan studente ʼn goeie grondslag te gee rakende ʼn wye spektrum van wiskundige idees, tegnieke en gereedskap om studente sodoende toe te rus vir die tweede en derde jare van die program, veral wat algebra betref. Die module-inhoud fokus op spesifieke gebiede van wiskunde wat onder meer logika, komplekse getalle, matrikse, lineêre vergelykings en vektoruitbeeldings insluit.

Die doel van hierdie module is om ʼn oorsig van die basiese konsepte en beginsels van statistiek, onder andere beskrywende statistiek en die toepassing van statistiek as datawetenskap, aan die student oor te dra. Die module fokus dus op die beginsels van statistiek wat breedvoerig dataversamelingstegnieke, dataorganisering, datagehalteversekering en algemene analises hanteer.

Die doel van hierdie module om die student bekend te stel aan die elemente van statika, as ʼn vertakking van meganika, waar gekyk word na liggame wat in rus verkeer of kragte wat in ewewig verkeer. Die inhoud fokus onder meer op vektoroperasies, kragte, wrywing, massamiddelpunte en swaartepunte.

Hierdie module stel die student aan formele tale bekend. Die formele tale wat behandel word sluit reguliere tale, konteksvrye tale en kontekssensitiewe tale in. Die voorgenoemde tale kan met behulp van masjiene of grammatikas gedefinieer word. Buiten vir die bestudering van reguliere uitdrukkings (een manier om reguliere tale mee te definieer) sal hierdie module van die grammatikas wat die voorgenoemde formele tale definieer ook bestudeer. Daar sal gefokus word op verskillende masjiene (eindige outomate, oorgangsgrafieke, Moore-masjiene, Mealy-masjiene, afdrukoutomate en Turing-masjiene) wat die voorgenoemde formele tale aanvaar. Outomaatteorie behandel die konsepte beslisbaarheid en berekenbaarheid. Aan die einde van die module word taaltipes binne die Chomsky-hiërargie van tale geklassifiseer. Let daarop dat die wiskundige modelle wat in hierdie model gedefinieer word praktiese waarde het.

Sommige van die teoretiese beperkinge met betrekking tot die take wat rekenaars kan verrig, sal duidelik word aan studente wat hierdie module voltooi. Die module sal bydra tot die ontwikkeling van korrekte algoritmes wat as rekenaarprogramme geïmplementeer kan word. Deur afdrukoutomate te ontwikkel kry studente insig met betrekking tot die gebruik van stapels. Oor die algemeen ondersteun die module verdere studies en toepassings binne die sektor van kompileerderontwerp, rekenaarprogrammering, bioïnformatika en linguistiek.

Die doel van die module is om studente aan datastrukture en algoritmes bekend te stel ten einde hul met praktiese programmeringsgereedskap toe te rus. Studente sal implementerings van algoritmes en datastrukture waaraan hul bekendgestel word in C++ doen. Sodoende sal gevorderde programmeringsvaardighede ontwikkel word. Studente sal in staat gestel word om die mees toepaslike datastrukture en algoritmes te kies ten einde programmeringsprobleme mee op te los. Die vaardigheid om algoritmes ten opsigte van looptyd en geheuebestuur te bepaal sal aangeleer word.

Die eerste deel van Gevorderde Programmering skop af waar Datastrukture en Algoritmes eindig. In die eerste deel van Gevorderde Programmering word studente aan ʼn aantal ingewikkelde datastrukture, wat binêre bome en hope insluit, bekendgestel. Die tweede deel van die module stel studente bloot aan ontwerppatrone. Studente leer hoe om oplossings te benut wat ander mense, wat aan dieselfde probleme blootgestel is, daargestel het. Gevolglik moet studente nie die wiel herontwerp nie – veral nie binne ʼn werksomgewing nie. Deur bewus te wees van en te verstaan hoe om ontwerppatrone te gebruik, kan voordeel uit beste praktyke en ondervinding van ander getrek word. Die module handel oor ontwerppatrone wat saak maak, die gebruik daarvan (en wanneer om ontwerppatrone nie te gebruik nie). Die Java-toepassingkoppelvlak (Java Application Program Interface (API)) en Java se ingeboude patroonondersteuning sal die ontwikkelingsomgewing vir patrone wees.

“Goeie besluite vereis goeie inligting wat afgelei word van rou feite. Hierdie rou feite staan bekend as data. Data kan op die mees effektiewe manier bestuur word wanneer dit in ʼn databasis gestoor word. Die beskikbaarheid van uitstekende databasissagteware stel selfs mense sonder databasisondervinding in staat om databasisse en die toepassings daarvan te skep. Ongelukkig plavei die skep-sonder-ontwerp-proses die pad vir ʼn groot aantal databasisrampe” (vertaal uit Coronel et al. [2010]).

Hierdie module is ontwerp om studente bloot te stel aan die ontwikkeling van databasisbeginsels en die bestuur van databasisse. Die fokus val op relasionele databasisse. Onderwerpe wat bestudeer word, sluit normalisering, entiteitverhoudingmodellering, transaksionele bestuur en gelyktydige beheer, data-storing en data-administrasie in. Die module behoort die student in staat te stel om ʼn databasisbestuurstelsel te ontwikkel deur van moderne modelleringgereedskap gebruik te maak.

Sovêr dit die ontwerp van rekenaarargitektuur aangaan, is absolute antwoorde met betrekking tot rekenaarargitektuur selde moontlik. Die ontwerpe word beïnvloed deur baie faktore, byvoorbeeld die huidige stand van tegnologie en ons eie verstaan daarvan sowel as historiese faktore. Een van die doelstellings van hierdie module is om belangrike konsepte te benadruk. Studente word sodoende in staat gestel om die beperkinge van huidige hardewareoplossings te verstaan. Hardewarebeperkings veroorsaak dat dit nie altyd moontlik is om nuwe neigings onmiddellik te implementeer nie. Hierdie module sal studente in staat stel om die onvermydelike verandering in toekomstige stelsels te verstaan en te waardeer. Daar is ʼn groeiende behoefte aan rekenaarwetenskaplikes om betrokke te raak in die ontwikkeling en implementering van gebruikerskoppelvlakke vir ingebedde stelsels soos die wat in selfone, karre, en tablette gevind word. Ten einde aan hierdie behoefte te voldoen, moet ons weet wat op die lae vlakke van sulke stelsels aangaan. Die meeste rekenaarorganiseringskonsepte maak slegs sin indien ʼn mens sien hoe hul op ʼn spesifieke masjien geïmplementeer en gemanipuleer word. Studente moet verstaan hoe die verskillende komponente van die rekenaar kommunikeer. Vir hierdie rede word praktiese werk in Assembler gedoen. Sodoende raak studente bekend met die Assembler-taalvlak van die masjiene waarop hul werk.

Hierdie module stel die student bekend aan die beginsels onderliggend van net-gesentreerde rekenaarkunde wat toegepas kan word op die wêreldwye web en die internet sowel as aan verspreidingstoepassings. Die hooffokus van hierdie module is die konsepte van kliënt- en bedienerkantprogrammering, webgebaseerde toepassings, poort- en sok-interaksie, die skryf van programme met afstandsbeheerfunksieroepe, en om met databasisse verbind te wees terwyl daar van die gepaste tegnologie gebruik gemaak word. Die ondersteunende tegnologie van markeertale (mark-up languages) en skriptale (scripting languages) word ook bestudeer. Studente sal verder moet demonstreer dat hul die vermoë ontwikkel het om sagteware en hardeware te gebruik, te integreer en te onderhou wat vereis word om die bemeestering van die nodige konsepte te illustreer.

Die doel van hierdie module is om studente goed toe te rus met die fundamentele kennis rakende die algebra van lineêre vergelykings en transformasies, matrikse en determinante, asook vektorruimtes. Daarbenewens word daar ook klem gelê op die student se vermoë om laasgenoemde in die praktyk te ontleed, modelleer en op te los.

Bedryfstelsels is ʼn essensiële deel van enige rekenaarstelsel. Op dieselfde wyse is ʼn bedryfstelselmodule essensieel deel van enige rekenaarwetenskapopvoedingsprogram. Die gebruiker kommunikeer met die rekenaar via die bedryfstelsel. Gevolglik is die bedryfstelsel ʼn uiters belangrike komponent van die rekenaarstelsel. Tegnieke wat verband hou met die ontwikkeling van bedryfstelsels beïnvloed baie ander gebiede van rekenaarwetenskap, insluitend rekenaarargitektuur, programmeertale, kompileerders, databasisse, rekenaarnetwerke, en mobiele agente. Rekenaars is tans prominent in feitlik elke toepassing van speletjies vir kinders tot en met die mees gesofistikeerde beplanninggereedskap vir regerings- en multinasionale firmas. Gevolglik verander bedryfstelsels vinnig om tred te hou met die gebruiker se behoeftes. Die fundamentele konsepte van bedryfstelsels bly egter onveranderd. Die fokus van hierdie module is juis daarop gemik.

Hierdie module is inleidend tot die fundamentele konsepte van rekenaarnetwerke wat die boublokke van die internet vorm. Die reis van boodskappe wat oor die internet gestuur word van bisse in ʼn rekenaar of foon, tot pakkies en uiteindelike seine oor die lug en/of drade word ondersoek. Konsepte wat tradisionele bedrade netwerke van draadlose netwerke en mobiele netwerke onderskei, word beskryf. Nuwe neigings binne die konteks van rekenaarnetwerke soos die Internet van Dinge (Internet of Things) word ook bestudeer.

Sagteware-ingenieurswese beslaan twee semestermodules. Die eerste Sagteware-ingenieurswese-module voorsien ʼn algemene inleiding tot sagteware-ingenieurswese. Belangrike konsepte soos sagtewareprosesse en soepel (agile) metodes word bekendgestel. Essensiële sagteware-ontwikkelingsaktiwiteite, wat begin by sagtewarespesifikasies en eindig met stelsel-evolusie word beskryf. Tydens die tweede semester word studente blootgestel aan die idee van sagteware-ingenieurswese as ʼn menslike aktiwiteit met ʼn besigheidsbemoeienis. Buiten vir lesings wat aangebied word, sal studente in groepe werk ten einde ʼn gekose sagtewareprojek te ontwikkel. Studente moet gevolglik sagtewareprojekbestuur en groepsdinamika verstaan. Studente sal verskeie PowerPoint-aanbiedings doen om idees met betrekking tot hul projekte aan te bied. Hul sal ʼn kwaliteitsversekeringstrategie bespreek en verdedig vir hul eie sagtewareprojek. Tydens die bespreking en verdediging sal hul moet verduidelik waar en hoe toetsing, inspeksie, statiese en dinamiese analise, en formele metodes gebruik behoort te word. Binne hierdie konteks sal studente die geleentheid hê om professionele en kommunikasievaardighede te ontwikkel.

Rekenaargrafika is ʼn baie wye veld. Daar bestaan egter ʼn kern fundamentele idees wat deel vorm van die grondslae van die meeste rekenaargrafika. Die doel van hierdie module is om soveel as moontlik van daardie fundamentele idees te dek as wat daar deur ʼn semestermodule gedek kan word. Alhoewel die fokus van hierdie module driedimensionele (3D) grafika is, is die eindresultaat van die meeste rekenaargrafikaprojekte ʼn tweedimensionele (2D) beeld. Die direkte produksie en manipulasie van 2D beelde is egter ʼn onderwerp in eie reg. Aangesien ʼn groot aantal idees van twee dimensies na drie oorgedra word, en die skep van 2D beelde makliker is as die skep van 3D beelde, begin die module met die behandeling van 2D grafika.

In hierdie module kry die student ʼn breë oorsig van verskeie onderwerpe in kunsmatige intelligensie (KI). Ter inleiding word die konsep van intelligente agente bekendgestel. Intelligente agente vorm ʼn deurlopende tema om onderwerpe te ontwikkel vanaf fundamentele beginsels in klassieke KI tot moderne masjienleertoepassings. ʼn Roete bestaande uit probleemoplossing d.m.v. soektogte, redenasie en beplanning word gevolg. Die probleemoplossing word aanvanklik gebaseer op logika en dan verder ontwikkel rondom waarskynlikheid en onsekerheid. Verder ondersoek ons masjienleermetodes wat o.a. moderne toepassings van kunsmatige neurale netwerke en versterkingsleer insluit. Die module word afgesluit deur te kyk na die impak van KI op die mensdom binne die konteks van etiese beginsels.

Die finale jaar laat studente toe om ʼn Wiskunde-module te kies. EEN van die volgende modules kan gekies word:

1) Tydreeksontleding

Hierdie module is ontwerp om studente toe te rus met al die nodige vaardighede om tydreekse te beraam, te evalueer en te voorspel. Dit word gedoen teen die agtergrond dat sulke tydreekse ʼn verskeidenheid kompleksiteite mag uitbeeld, insluitende siklusse; neigings; nievaste, outoregressiewe en bewegende gemiddelde eienskappe; asook spektrale komponente en verdere patrone van komplikasie in die residu.

2) Numeriese Analise

Hierdie module het ten doel om die student in staat te stel om die teorie rondom numeriese tegnieke soos die iteratiewe oplos van nielineêre vergelykings, interpolasie, numeriese differensiasie en integrasie, en die numeriese oplos van normale differensieaalvergelykings te implementeer, en om akkuraatheid- en betroubaarheidstoetse uit te voer. Daar sal gepoog word om die meeste van laasgenoemde met behulp van rekenaars op te los.

3) Parsiële Differensiaalvergelykings

Die doel van hierdie module is om aan studente ʼn inleidende oorsig te verskaf rakende die teorie van parsiële differensiaalvergelykings, asook om die student bekend te stel aan verskillende relevante oplosmetodes, soos byvoorbeeld die gebruik van Fourier- en Taylor-reeksanalises, oplos deur die skeiding van veranderlikes, die gebruik van Lagrange-metodes, asook die gebruik van eindige verskil- en eindige elementmetodes.

4) Optimering

Die doel van hierdie module is om studente in staat te stel om probleme vanuit die velde van besigheid en industrie te ondersoek en op te los. Oplosmetodes sluit die gebruik van lineêre programmering, neurale netwerke en genetiese algoritmes in. Daar sal klem gelê word op die gebruik van rekenaars om oplossings te vind.

ANDER INLIGTING

Die minimum tydsduur vir die program is drie jaar. Die maksimum toelaatbare tyd vir die voltooiing van die program is sewe jaar.

Om in aanmerking te kom vir toelating tot die BSc (Rekenaarwetenskappe)-program word een van die volgende benodig:

  • Nasionale Senior Sertifikaat met endossement vir toelating tot graadstudies met ʼn minimum van 50% vir Afrikaans en 60% vir Wiskunde. Fisiese Wetenskappe sal in jou guns tel, maar is nie verpligtend nie.
  • Sertifikaat van vrystelling soos uitgereik deur Universities South Africa (USAF) indien ʼn ander skoolkwalifikasie as NSS behaal is.
  • ʼn Hoër sertifikaat in ʼn ooreenstemmende studieveld.

Programkoste vir 2023

Jaar een: Vanaf R55 440

Handboeklyste vir 2023 word na suksesvolle registrasie aan studente gekommunikeer.

  • Rekenaar:   Intel i7 (of Intel i5 as ʼn minimum) – verkieslik ʼn skootrekenaar
  • Bedryfstelsel:   Die nuutste weergawe van Windows
  • Geheue:   Minimum van 8 GB RAM
  • Hardeskyf:   500 GB tot 1 TB
  • Die sagteware wat gebruik word, sal afgelaai word wanneer die studente arriveer

DOEN NOU AANSOEK OM BSC (REKENAARWETENSKAPPE) TE STUDEER

DOEN NOU AANSOEK OM BSC (REKENAARWETENSKAPPE) TE STUDEER