Artefacts (Example Course Material) for the paper titled: "Teaching Data Structures and Algorithms to Future Software Engineers: A Case Study""
Creators: name: Anonymous
Publisher: name: Zenodo
Year: 2019
Subjects: Data Structures and Algorithms, Course Design and Implementation, Software Engineering Education, Educational Psychology

description: This repository contains artefacts that are used while explaining the design and implementation of a DSA course for first year bachelor Software Engineering students. These artefacts or questions in some of these artefacts are used as examples while explaining the design and implementation of the DSA course (see Section "5. Course Design and Implementation" of the paper titled "Teaching Data Structures and Algorithms to Future Software Engineers: A Case Study"). <strong>Course Schedule </strong>(see file named "Course Schedule.pdf")<strong> </strong>serves as a portal to all course information (e.g., course schedule, deadline for assignments, exam dates) and artefacts (e.g., lecture slides, links to tutorial videos, reading assignments, questions and solutions for in-class exercises, hands-on programming/problem session, skeleton codes, unit tests, etc.). Links to tutorial videos are currently active. Tutorial videos are compilation of some youtube video as a result of a comprehensive search on the internet for each DSA topic. If you want to watch them, beware that some of them might have 5 minute advertisement before the actual video starts. References for all the videos are given below at the end of this text. Links for the remains artefacts (e.g., Kahoot questions, lecture slides, in-class exercises, hands-on programming/problem session/assignment questions and their corresponding solutions, unit tests, skeleton codes, etc.) are all inactivated in order to ensure anonymity. However, this repository contains instance(s) of each of these artefacts. Sampled instance from each of these artefacts is adequate to explain the design and implementation of the DSA course. <strong>References (for Tutorial Videos)</strong> <strong>[1] </strong>Interview for software engineering and technical roles How to: Prepare for a Google Engineering Interview. available at: https://careers.google.com/how-we-hire/interview/#interviews-for-software-engineering-and-technical-roles (August 2019). <strong>[2] </strong>Code Signal. Static vs. Dynamic Arrays. available at: https://www.youtube.com/watch?v=qTb1sZX74K0 (August 2019). <strong>[3] </strong>Joe James. Java: Array vs. Arraylist Difference. available at: https://www.youtube.com/watch?v=ZVJ7kpEMc7U<strong> </strong> (August 2019). <strong>[4] </strong>Gayle Laakmann McDowell. Big-O Notation. available at: https://www.youtube.com/watch?v=v4cd1O4zkGw (August 2019). <strong>[5] </strong>Derek Banas. Big O Notations. available at: https://www.youtube.com/watch?v=V6mKVRU1evU (August 2019). <strong>[6] </strong>GeeksforGeeks. Largest Sum Contiguous Subarray. available at: https://www.youtube.com/watch?v=qX6U6--RL74 (August 2019). <strong>[7] </strong>Chand John (Ted-ED). What is the fastest way to alphabetise your bookshelf. available at: https://www.youtube.com/watch?v=WaNLJf8xzC4<strong> </strong> (August 2019). <strong>[8]</strong> Computerphile. What on Earth is Recursion? available at: https://www.youtube.com/watch?v=Mv9NEXX1VHc (August 2019). <strong>[9] </strong>Gayle Laakmann McDowell. Algorithms: Recursion. available at:https://www.youtube.com/watch?v=KEEKn7Me-ms (August 2019). <strong>[10]</strong> Ekkeda. Divide and Conquer: Analysis of Algorithm. available at: https://www.youtube.com/watch?v=hR735TIw9s8<strong> </strong>(August 2019). <strong>[11]</strong> Gayle Laakmann McDowell. Algorithms: Mergesort. available at: https://www.youtube.com/watch?v=KF2j-9iSf4Q (August 2019). <strong>[12]</strong> Gayle Laakmann McDowell. Algorithms: Quicksort. available at: https://www.youtube.com/watch?v=SLauY6PpjW4&amp;t=287s (August 2019). <strong>[13] </strong>udiprod. Visualisation of Quicksort. available at: https://www.youtube.com/watch?v=aXXWXz5rF64 (August 2019). <strong>[14] </strong>udiprod. Merge Sort vs. Quick Sort. available at: https://www.youtube.com/watch?v=es2T6KY45cA&amp;t=1s (August 2019). <strong>[15] </strong>CSHelene. Stacks and queues: the basics. available at: https://www.youtube.com/watch?v=6QS_Cup1YoI (August 2019). <strong>[16] </strong>Gayle Laakmann McDowell. Data Structures: Stacks and queues. available at: https://www.youtube.com/watch?v=wjI1WNcIntg&amp;t=248s (August 2019). <strong>[17] </strong>Rob Edwards. Stacks and Queues: Using arrays to write stacks and queues. available at: https://www.youtube.com/watch?v=sHgHZdZEjz4 (August 2019). <strong>[18] </strong>Reel Learning. Data Structures: Introduction to Linked Lists. available at: https://www.youtube.com/watch?v=pBrz9HmjFOs (August 2019). <strong>[19] </strong>Gayle Laakmann McDowell. Data Structures: Linked Lists. available at: https://www.youtube.com/watch?v=njTh_OwMljA (August 2019). <strong>[20] </strong>Gayle Laakmann McDowell. Data Structures: Trees. available at: https://www.youtube.com/watch?v=oSWTXtMglKE&amp;t=461s (August 2019). <strong>[20] </strong>Gayle Laakmann McDowell. Data Structures: Binary Search Tree. available at: https://www.youtube.com/watch?v=i_Q0v_Ct5lY (August 2019). <strong>[21] </strong>Gayle Laakmann McDowell. Data Structures: Hash Tables. available at: https://www.youtube.com/watch?v=shs0KM3wKv8 (August 2019). <strong>[22] </strong>Rob Edwards (San Diego State University). Hashes: Open Addressing. available at: https://www.youtube.com/watch? v=yA8bDfWj0UU (August 2019). <strong>[23] </strong>Rob Edwards (San Diego State University). Hashes: Chaining. available at: https://www.youtube.com/watch?v=nVu_OnyGk6U (August 2019).