Learn Data Structures and Algorithms
The course of Data Structures and Algorithms (DSA) aims at teaching undergraduate students the knowledge of organizing data and estimating the running time of algorithms when they develop programs. Topics covered include representation and implementations of abstract data types, elementary algorithm analysis skills, lists, stacks, heaps, queues, hash tables, binary trees, and graphs, recursive techniques, and sorting algorithms. Learning the basic skills of DSA can take students from an introductory understanding of C programming language to a higher level and help them cultivate systematic programming discipline.
On this page, you’ll find some study resources such as lecture notes and related codes for a 3-credit course “BSAS202 Algorithm Design and Data Structure (in C language)” at the Department of Engineering Science of Macau University of Science and Technology.
Lecture Notes
Teach your course by sharing videos with your students. Choose from one of the following approaches:
Assignments
You can add a podcast or music to a page by placing the MP3 file in the page’s folder or the media library folder and then embedding the audio on your page with the audio shortcode:
{{< audio src="ambient-piano.mp3" >}}
Try it out:
Recommended Resources
Provide a simple yet fun self-assessment by revealing the solutions to challenges with the spoiler
shortcode:
{{< spoiler text="👉 Click to view the solution" >}}
You found me!
{{< /spoiler >}}
renders as
👉 Click to view the solution
Math
Hugo Blox Builder supports a Markdown extension for $\LaTeX$ math. You can enable this feature by toggling the math
option in your config/_default/params.yaml
file.
To render inline or block math, wrap your LaTeX math with {{< math >}}$...${{< /math >}}
or {{< math >}}$$...$${{< /math >}}
, respectively.
Example math block:
{{< math >}}
$$
\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}
$$
{{< /math >}}
renders as
$$\gamma_{n} = \frac{ \left | \left (\mathbf x_{n} - \mathbf x_{n-1} \right )^T \left [\nabla F (\mathbf x_{n}) - \nabla F (\mathbf x_{n-1}) \right ] \right |}{\left \|\nabla F(\mathbf{x}_{n}) - \nabla F(\mathbf{x}_{n-1}) \right \|^2}$$Example inline math {{< math >}}$\nabla F(\mathbf{x}_{n})${{< /math >}}
renders as $\nabla F(\mathbf{x}_{n})$
.
Example multi-line math using the math linebreak (\\
):
{{< math >}}
$$f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} & \text{if }k=1, \\
1-p_{0}^{*} & \text{if }k=0.\end{cases}$$
{{< /math >}}
renders as
$$ f(k;p_{0}^{*}) = \begin{cases}p_{0}^{*} & \text{if }k=1, \\ 1-p_{0}^{*} & \text{if }k=0.\end{cases} $$Code
Hugo Blox Builder utilises Hugo’s Markdown extension for highlighting code syntax. The code theme can be selected in the config/_default/params.yaml
file.
```python
import pandas as pd
data = pd.read_csv("data.csv")
data.head()
```
renders as
import pandas as pd
data = pd.read_csv("data.csv")
data.head()
Inline Images
{{< icon name="python" >}} Python
renders as
Python