Voortzetting van onze reeks stukken over aanvullende programmeergerelateerde onderwerpen die geen deel uitmaken van de CodeGym-cursus, met links en aanbevelingen over waar u ze kunt leren. Vandaag gaan we het hebben over algoritmen. Programmeervaardigheden LevelUp, deel 2. Waar te leren over algoritmen - 1

Wat zijn algoritmen

Een algoritme op zich is niets meer dan een stapsgewijze bon voor het oplossen van een probleem. De meeste algoritmen die tegenwoordig bij het programmeren worden gebruikt, zijn al ontdekt, getest en bewezen. Algoritmen in Java zijn statische methoden die worden gebruikt om verschillende bewerkingen op collecties uit te voeren. Als datastructuren door Java-programmeurs worden gebruikt om gegevens op te slaan en te organiseren, worden algoritmen gebruikt om de gegevens in die structuren te manipuleren. Deze twee onderwerpen zijn dus met elkaar verbonden, en begrijpen hoe ze samenwerken is heel belangrijk en kan uw Java-codering een stuk efficiënter maken. Algoritmen kunnen op elke programmeertaal worden toegepast, en van sterke ervaren programmeurs wordt normaal gesproken verwacht dat ze op zijn minst de basis van dit onderwerp kennen, en weten hoe ze algoritmen moeten converteren naar code in de programmeertaal die ze gebruiken.

Boeken over algoritmen

  1. Datastructuren en algoritmen gemakkelijk gemaakt door Narasimha Karumanchi.

    Een van de beste leerboeken voor beginners in algoritmen (en datastructuren). 'Datastructuren en algoritmen gemakkelijk gemaakt: datastructuren en algoritmische puzzels' is een boek dat oplossingen biedt voor complexe datastructuren en algoritmen. Er zijn meerdere oplossingen voor elk probleem en het boek is gecodeerd in C/C++. Je kunt deze gebruiken als leidraad om je voor te bereiden op sollicitatiegesprekken, examens en campuswerk.

  2. Grokking-algoritmen door Aditya Bhargava.

    'Grokking Algorithms' is een andere gemakkelijk te begrijpen, volledig geïllustreerde en geschreven gids in vriendelijke toon die je leert hoe je algemene algoritmen kunt toepassen op de praktische problemen waarmee je als programmeur elke dag wordt geconfronteerd. Je begint met sorteren en zoeken en terwijl je je vaardigheid in algoritmisch denken opbouwt, ga je complexere problemen aanpakken, zoals datacompressie en kunstmatige intelligentie. Elk voorbeeld bevat diagrammen en volledig geannoteerde codevoorbeelden in Python.

  3. Algoritmen ontgrendeld door Thomas Cormen.

    Een boek over de basisprincipes van algoritmen voor beginners en codeerprofessionals die hun kennis van het onderwerp willen uitbreiden, dit keer geschreven als een schoolboek voor MIT-studenten.

    “Lezers zullen leren wat computeralgoritmen zijn, hoe ze te beschrijven en hoe ze te evalueren. Ze zullen eenvoudige manieren ontdekken om informatie op een computer te zoeken; methoden voor het herschikken van informatie in een computer in een voorgeschreven volgorde ("sorteren"); hoe basisproblemen op te lossen die kunnen worden gemodelleerd in een computer met een wiskundige structuur die een "grafiek" wordt genoemd (handig voor het modelleren van wegennetwerken, afhankelijkheden tussen taken en financiële relaties); hoe problemen op te lossen die vragen stellen over tekenreeksen zoals DNA-structuren; de basisprincipes achter cryptografie; grondbeginselen van datacompressie; en zelfs dat er een aantal problemen zijn waarvan niemand weet hoe ze deze binnen een redelijke tijd op een computer kunnen oplossen”, zegt de auteur van het boek.

  4. Datastructuren en algoritmen in Java door Robert Lafore.

    En hier is een leerboek dat zich specifiek richt op Java. Naast duidelijke en eenvoudige voorbeeldprogramma's, voegde Robert Lafore aan het boek een workshop toe als een klein demonstratieprogramma dat uitvoerbaar is op een webbrowser. De programma's laten in grafische vorm zien hoe datastructuren eruit zien en hoe ze werken.

    Oplossingsvoorstellen voor de programmeerprojecten die aan het einde van elk hoofdstuk staan, worden ter beschikking gesteld aan docenten van erkende onderwijsinstellingen. Deze educatieve aanvulling op het leerboek is te vinden op pearson.com , in het Instructor Resource Center.

  5. Hallo wereld: Mens zijn in het tijdperk van algoritmen door Hannah Fry.

    'Hello World: Being Human in the Age of Algorithms' van Hannah Fry is een nogal interessant boek dat algoritmen vanuit een iets ander perspectief bekijkt. De auteur beschrijft de ware bevoegdheden en beperkingen van de algoritmen die al belangrijke beslissingen in de gezondheidszorg, transport, misdaad en handel automatiseren.

Online cursussen over algoritmen

  1. Algoritmen, deel I , deel II door Princeton University via Coursera.

    Een behoorlijk goede volledig gratis cursus van Princeton. Het behandelt de essentiële informatie die elke serieuze programmeur moet weten over algoritmen en datastructuren, met de nadruk op toepassingen en wetenschappelijke prestatieanalyse van Java-implementaties. Deel I behandelt elementaire datastructuren, sorteer- en zoekalgoritmen. Deel II richt zich op algoritmen voor het verwerken van grafieken en strings. De cursus biedt geen certificaat na voltooiing.

  2. Datastructuren en algoritmen Specialisatieprogramma door UC San Diego via Coursera.

    Nog een gerenommeerd cursusprogramma over algoritmen en datastructuren aangeboden door de University of California, San Diego en National Research Institute Higher School of Economics. Deze specialisatie is een mix van theorie en praktijk: je leert algoritmische technieken voor het oplossen van verschillende rekenproblemen en implementeert ongeveer 100 algoritmische codeerproblemen in een programmeertaal naar keuze.

    “Geen enkele andere online cursus in algoritmen biedt je zelfs maar een schat aan programmeeruitdagingen waarmee je tijdens je volgende sollicitatiegesprek te maken kunt krijgen. Om je voor te bereiden, hebben we meer dan 3000 uur geïnvesteerd in het ontwerpen van onze uitdagingen als alternatief voor meerkeuzevragen die je meestal in MOOC's tegenkomt. Sorry, we geloven niet in meerkeuzevragen als het gaat om het leren van algoritmen... of iets anders in de informatica! Voor elk algoritme dat u ontwikkelt en implementeert, hebben we meerdere tests ontworpen om de juistheid en looptijd te controleren - u zult uw programma's moeten debuggen zonder zelfs maar te weten wat deze tests zijn! Het klinkt misschien moeilijk, maar we geloven dat dit de enige manier is om echt te begrijpen hoe de algoritmen werken en om de kunst van het programmeren onder de knie te krijgen”, aldus de auteurs van de cursus.

  3. Algoritmen Specialisatie door Stanford University via Coursera.

    En de derde goed erkende gratis cursus algoritmen van een gerenommeerde universiteit, deze keer Stanford University. Deze cursus is een inleiding tot algoritmen voor studenten met op zijn minst een beetje programmeerervaring. Leerlingen oefenen en beheersen de grondbeginselen van algoritmen door middel van verschillende soorten beoordelingen. Elke week is er een meerkeuzequiz om je begrip van de belangrijkste concepten te testen. Er zijn ook wekelijkse programmeeropdrachten, waarbij je een van de algoritmen uit de les implementeert in een programmeertaal naar keuze. Elke cursus wordt afgesloten met een multiple-choice eindexamen.

YouTube-kanalen en afspeellijsten

  1. Algoritmen door Abdul Bari.

    Een lijst met korte lezingen over algoritmen door Abdul Bari, een vrij populaire YouTuber die complexe onderwerpen op de meest eenvoudige en gemakkelijk te begrijpen manieren uitlegt aan zijn kijkers.

  2. Datastructuren en algoritmen in Java over programmeren met Mosh-kanaal.

    'Programmeren met Mosh' is een populair mainstream YouTube-kanaal voor beginnende programmeerders. Het heeft heel veel tutorials over Java en andere programmeertalen, ze zijn goed gestructureerd en goed gepresenteerd, inclusief de tutorial over datastructuren en algoritmen. Een goede manier om kennis te maken met deze onderwerpen als je geen zin hebt om boeken te lezen en cursussen te betalen.

  3. MIT 6.006 Inleiding tot algoritmen, najaar 2011 door MIT OpenCourseWare

    MIT OpenCourseWare is een kanaal van het Massachusetts Institute of Technology en heeft veel geweldige gratis videocursussen, waaronder die over algoritmen. De hele cursus bestaat uit 47 sessies van ongeveer een uur.