BSc (Rekenaarwetenskappe)
WAT KAN EK MET DIE BSC (REKENAARWETENSKAPPE)-GRAAD DOEN?
WAT BEHELS DIE KWALIFIKASIE?
NKR-vlak 7
400 krediete
SAKO-nommer: 118638
ONDERRIGLEERMODEL: Voltydse kampusmodel
KWALIFISEER EK OM BSC (REKENAARWETENSKAPPE) TE STUDEER?
MODULES
Hierdie module bied ʼn inleiding tot die ontwikkeling van programontwerp en -analise, met Java 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 integraalrekene. Die resultate van kalkulus het oor jare geblyk om besonder nuttig te wees onder andere vir fisika en ingenieurswese.
Dinamika en statika saam vorm ‘n grondslag vir meganika. Hierdie module is ‘n inleiding tot Newton se bewegingswette (met toepassings) wat die effek van kragte op die beweging van liggame modelleer.
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 jaar van die program. Die module-inhoud sit die opleiding, wat in die eerste semester in Kalkulus begin is, voort deur integrasietegnieke te behandel en fokus verder op spesifieke gebiede van wiskunde wat onder meer komplekse getalle, matrikse, lineêre vergelykings en lineêre transformasies 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, standaard- statistiese modelle en inferensiële tegnieke hanteer.
Die begrip vektor is besonder nuttig met vele toepassings in Wiskunde en Toegepaste Wiskunde. Soos met getalle, word bewerkings gedefinieer wat dan Vektoralgebra tot gevolg het. ‘n Baie belangrike toepassing is ‘n alternatiewe formulering van Euklidiese Meetkunde wat gebruik kan word om posisie in die ruimte en vorms van voorwerpe te beskryf.
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 die studie van lineêre algebra uit te brei na die studie van algemene vektorruimtes, eiewaardes en eievektore, diagonalisering, inprodukruimtes en lineêre transformasies op algemene vektorruimtes. Studente word gelei om algebraïese bewysvoering te bemeester en om probleme te analiseer en op te los. Verder word die studente gelei om ʼn belangstelling en waardering vir wiskunde te ontwikkel en om ʼn selfstandige houding teenoor leer en die gebruik van toepaslike idees te ontwikkel.
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) Parsiële Differensiaalvergelykings
Die doel van hierdie module is om die student ʼn inleiding te gee tot oplosmetodes vir parsiële differensiaalvergelykings met die nodige teoretiese regverdiging, meer spesifiek reeksoplossings, D’Alembert se metode en ʼn numeriese metode. Die hittevergelyking, golfvergelyking en Laplace se vergelyking en verwante probleme word behandel. Die onderliggende teorie is van uiterste belang en die konvergensie van reekse van funksies geniet die nodige aandag.
2) 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 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 2024
Jaar een: Vanaf R59 280 | Jaar twee: Vanaf R69 160 | Jaar drie: Vanaf R59 280
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