Angelusdurus

🐧 💻

Intro to Programming Languages

20 / 234 845 / 33911


Lecture 1.1. Course Environment

Time of First Successful Submission: 2026-05-19 14:26:26

Lab 1.1 - Start Terminal

Time of First Successful Submission: 2026-05-19 14:28:44

Lecture 1.2. Linux Shells

Time of First Successful Submission: 2026-05-19 14:32:31

Lecture 1.3. Linux File System

Time of First Successful Submission: 2026-05-19 14:37:08

Lecture 1.4. Executing Programs

Time of First Successful Submission: 2026-05-19 14:41:26

Commands

Time of First Successful Submission: 2026-05-02 13:45:41

Command Arguments

Time of First Successful Submission: 2026-05-02 13:46:35

Command History

Time of First Successful Submission: 2026-05-02 13:47:17

The Root Path

Time of First Successful Submission: 2026-05-02 13:48:19

Absolute Paths

Time of First Successful Submission: 2026-05-02 13:48:57

Changing position

Time of First Successful Submission: 2026-05-02 13:50:49

Changing to an Absolute Path

Time of First Successful Submission: 2026-05-02 13:52:35

Relative Paths

Time of First Successful Submission: 2026-05-02 13:56:50

Cat

Time of First Successful Submission: 2026-05-02 14:03:37

Ls

Time of First Successful Submission: 2026-05-02 14:08:59

Ls All

Time of First Successful Submission: 2026-05-02 17:45:46

Find

Time of First Successful Submission: 2026-05-02 18:17:36

Piping Echo

Time of First Successful Submission: 2026-05-06 07:55:12

Piping Stdout

Time of First Successful Submission: 2026-05-06 08:07:34

Piping Stdin

Time of First Successful Submission: 2026-05-06 09:04:12


Start Here

12 / 12 1686 / 45981


Using the Terminal

Time of First Successful Submission: 2026-03-13 14:13:50

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-13 14:21:01

Using the GUI Desktop

Time of First Successful Submission: 2026-03-13 14:24:53

Pasting into the Desktop

Time of First Successful Submission: 2026-03-13 14:30:08

Restarting Challenges

Time of First Successful Submission: 2026-03-13 14:55:56

Challenge Programs

Time of First Successful Submission: 2026-03-13 15:46:06

The Flag File

Time of First Successful Submission: 2026-03-13 16:15:05

Using Privileged Mode

Time of First Successful Submission: 2026-03-13 16:20:04

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-13 16:26:22

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-13 16:27:26


Linux Luminarium

128 / 128 3076 / 34366


Intro to Commands

Time of First Successful Submission: 2026-05-02 13:45:41

Intro to Arguments

Time of First Successful Submission: 2026-05-02 13:46:35

Command History

Time of First Successful Submission: 2026-05-02 13:47:17

The Root

Time of First Successful Submission: 2026-05-02 13:48:19

Program and absolute paths

Time of First Successful Submission: 2026-05-02 13:48:57

Position thy self

Time of First Successful Submission: 2026-05-02 13:50:49

Position elsewhere

Time of First Successful Submission: 2026-05-02 13:52:35

implicit relative paths, from /

Time of First Successful Submission: 2026-05-02 13:56:50

explicit relative paths, from /

Time of First Successful Submission: 2026-05-02 13:59:52

implicit relative path

Time of First Successful Submission: 2026-05-02 14:00:35

home sweet home

Time of First Successful Submission: 2026-05-02 14:02:34

cat: not the pet, but the command!

Time of First Successful Submission: 2026-05-02 14:03:37

catting absolute paths

Time of First Successful Submission: 2026-05-02 14:04:34

more catting practice

Time of First Successful Submission: 2026-05-02 14:05:37

grepping for a needle in a haystack

Time of First Successful Submission: 2026-05-02 14:06:29

comparing files

Time of First Successful Submission: 2026-05-02 14:08:04

listing files

Time of First Successful Submission: 2026-05-02 14:08:59

touching files

Time of First Successful Submission: 2026-05-02 17:40:40

removing files

Time of First Successful Submission: 2026-05-02 17:41:55

moving files

Time of First Successful Submission: 2026-05-02 17:43:26

copying files

Time of First Successful Submission: 2026-05-02 17:44:18

hidden files

Time of First Successful Submission: 2026-05-02 17:45:46

An Epic Filesystem Quest

Time of First Successful Submission: 2026-05-02 18:05:25

making directories

Time of First Successful Submission: 2026-05-02 18:14:18

finding files

Time of First Successful Submission: 2026-05-02 18:17:36

linking files

Time of First Successful Submission: 2026-05-02 18:20:04

Learning From Documentation

Time of First Successful Submission: 2026-05-03 15:38:18

Learning Complex Usage

Time of First Successful Submission: 2026-05-03 15:43:24

Reading Manuals

Time of First Successful Submission: 2026-05-03 15:45:57

Searching Manuals

Time of First Successful Submission: 2026-05-03 15:51:26

Searching For Manuals

Time of First Successful Submission: 2026-05-03 15:59:18

Helpful Programs

Time of First Successful Submission: 2026-05-03 16:02:19

Help for Builtins

Time of First Successful Submission: 2026-05-03 16:04:41

Matching with *

Time of First Successful Submission: 2026-05-03 16:08:45

Matching with ?

Time of First Successful Submission: 2026-05-03 16:10:12

Matching with []

Time of First Successful Submission: 2026-05-03 16:11:59

Matching paths with []

Time of First Successful Submission: 2026-05-03 16:13:16

Multiple globs

Time of First Successful Submission: 2026-05-03 16:15:08

Mixing globs

Time of First Successful Submission: 2026-05-03 16:23:45

Exclusionary globbing

Time of First Successful Submission: 2026-05-03 16:25:54

Tab completion

Time of First Successful Submission: 2026-05-03 16:27:36

Multiple options for tab completion

Time of First Successful Submission: 2026-05-03 16:28:56

Tab completion on commands

Time of First Successful Submission: 2026-05-03 16:29:50

Redirecting output

Time of First Successful Submission: 2026-05-06 07:55:12

Redirecting more output

Time of First Successful Submission: 2026-05-06 08:07:34

Appending output

Time of First Successful Submission: 2026-05-06 08:40:32

Redirecting errors

Time of First Successful Submission: 2026-05-06 09:00:12

Redirecting input

Time of First Successful Submission: 2026-05-06 09:04:12

Grepping stored results

Time of First Successful Submission: 2026-05-06 09:09:12

Grepping live output

Time of First Successful Submission: 2026-05-06 09:10:06

Grepping errors

Time of First Successful Submission: 2026-05-06 09:13:50

Filtering with grep -v

Time of First Successful Submission: 2026-05-06 09:15:59

Filtering with sed

Time of First Successful Submission: 2026-05-06 09:20:53

Duplicating piped data with tee

Time of First Successful Submission: 2026-05-06 09:50:32

Process substitution for input

Time of First Successful Submission: 2026-05-06 14:16:39

Writing to multiple programs

Time of First Successful Submission: 2026-05-06 14:22:02

Split-piping stderr and stdout

Time of First Successful Submission: 2026-05-06 14:42:08

Named pipes

Time of First Successful Submission: 2026-05-06 14:54:07

Printing Variables

Time of First Successful Submission: 2026-05-06 17:53:35

Setting Variables

Time of First Successful Submission: 2026-05-06 17:55:03

Multi-word Variables

Time of First Successful Submission: 2026-05-06 17:56:16

Exporting Variables

Time of First Successful Submission: 2026-05-06 18:01:59

Printing Exported Variables

Time of First Successful Submission: 2026-05-06 18:04:13

Storing Command Output

Time of First Successful Submission: 2026-05-06 18:05:33

Reading Input

Time of First Successful Submission: 2026-05-06 18:07:47

Reading Files

Time of First Successful Submission: 2026-05-06 18:09:35

Translating characters

Time of First Successful Submission: 2026-05-06 18:18:23

Deleting characters

Time of First Successful Submission: 2026-05-06 18:23:40

Deleting newlines

Time of First Successful Submission: 2026-05-06 18:25:08

Extracting the first lines with head

Time of First Successful Submission: 2026-05-06 18:26:57

Extracting specific sections of text

Time of First Successful Submission: 2026-05-06 18:29:31

Sorting data

Time of First Successful Submission: 2026-05-06 18:31:26

Listing Processes

Time of First Successful Submission: 2026-05-07 09:01:33

Killing Processes

Time of First Successful Submission: 2026-05-07 10:59:37

Interrupting Processes

Time of First Successful Submission: 2026-05-07 11:00:26

Killing Misbehaving Processes

Time of First Successful Submission: 2026-05-08 08:31:46

Suspending Processes

Time of First Successful Submission: 2026-05-08 14:13:29

Resuming Processes

Time of First Successful Submission: 2026-05-08 14:15:30

Backgrounding Processes

Time of First Successful Submission: 2026-05-08 14:25:46

Foregrounding Processes

Time of First Successful Submission: 2026-05-08 14:26:54

Starting Backgrounded Processes

Time of First Successful Submission: 2026-05-08 14:28:01

Process Exit Codes

Time of First Successful Submission: 2026-05-08 14:29:58

Becoming root with su

Time of First Successful Submission: 2026-05-09 18:07:19

Other users with su

Time of First Successful Submission: 2026-05-09 18:08:16

Cracking passwords

Time of First Successful Submission: 2026-05-09 18:12:51

Using sudo

Time of First Successful Submission: 2026-05-09 18:15:20

Changing File Ownership

Time of First Successful Submission: 2026-05-10 07:42:23

Groups and Files

Time of First Successful Submission: 2026-05-10 09:46:53

Fun With Groups Names

Time of First Successful Submission: 2026-05-10 10:23:37

Changing Permissions

Time of First Successful Submission: 2026-05-10 10:53:13

Executable Files

Time of First Successful Submission: 2026-05-10 11:06:27

Permission Tweaking Practice

Time of First Successful Submission: 2026-05-10 11:22:53

Permissions Setting Practice

Time of First Successful Submission: 2026-05-10 11:29:45

The SUID Bit

Time of First Successful Submission: 2026-05-10 11:36:04

Chaining with Semicolons

Time of First Successful Submission: 2026-05-10 11:49:36

Building on Success

Time of First Successful Submission: 2026-05-10 11:50:53

Handling Failure

Time of First Successful Submission: 2026-05-10 11:51:58

Your First Shell Script

Time of First Successful Submission: 2026-05-10 12:00:43

Redirecting Script Output

Time of First Successful Submission: 2026-05-10 12:05:19

Executable Shell Scripts

Time of First Successful Submission: 2026-05-10 12:09:55

Understanding Shebangs

Time of First Successful Submission: 2026-05-10 18:02:00

Scripting with Arguments

Time of First Successful Submission: 2026-05-10 18:05:28

Scripting with Conditionals

Time of First Successful Submission: 2026-05-10 18:13:04

Scripting with Default Cases

Time of First Successful Submission: 2026-05-10 18:15:12

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-05-11 09:55:01

Reading Shell Scripts

Time of First Successful Submission: 2026-05-11 09:58:34

Launching Screen

Time of First Successful Submission: 2026-05-11 10:00:18

Detaching and Attaching

Time of First Successful Submission: 2026-05-11 10:02:47

Finding Sessions

Time of First Successful Submission: 2026-05-11 10:05:08

Switching Windows

Time of First Successful Submission: 2026-05-11 10:07:36

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-05-11 10:10:21

Switching Windows (tmux)

Time of First Successful Submission: 2026-05-11 10:17:15

The PATH Variable

Time of First Successful Submission: 2026-05-11 10:20:00

Setting PATH

Time of First Successful Submission: 2026-05-11 10:21:18

Finding Commands

Time of First Successful Submission: 2026-05-11 10:22:33

Adding Commands

Time of First Successful Submission: 2026-05-11 13:14:54

Hijacking Commands

Time of First Successful Submission: 2026-05-11 15:14:22

Bashrc Backdoor

Time of First Successful Submission: 2026-05-11 15:26:34

Sniffing Input

Time of First Successful Submission: 2026-05-12 14:53:48

Overshared Directories

Time of First Successful Submission: 2026-05-12 15:30:53

Tricky Linking

Time of First Successful Submission: 2026-05-13 14:56:06

Sniffing Process Arguments

Time of First Successful Submission: 2026-05-13 19:01:49

Snooping on Configurations

Time of First Successful Submission: 2026-05-13 19:08:31

The Fork Bomb

Time of First Successful Submission: 2026-05-13 19:19:31

Disk-Space Doomsday

Time of First Successful Submission: 2026-05-14 07:04:57

rm -rf /

Time of First Successful Submission: 2026-05-14 07:11:39

Life after rm -rf /

Time of First Successful Submission: 2026-05-14 07:21:15

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-05-14 07:34:42


Computing 101

94 / 94 529 / 22486


Your First Register

Time of First Successful Submission: 2026-03-15 09:27:58

Your First Syscall

Time of First Successful Submission: 2026-03-15 09:45:10

Exit Codes

Time of First Successful Submission: 2026-03-15 09:49:59

Building Executables

Time of First Successful Submission: 2026-03-15 10:37:06

Moving Between Registers

Time of First Successful Submission: 2026-03-15 10:46:54

Loading From Memory

Time of First Successful Submission: 2026-03-15 13:34:42

More Loading Practice

Time of First Successful Submission: 2026-03-15 13:36:15

Dereferencing Pointers

Time of First Successful Submission: 2026-03-15 13:38:18

Dereferencing Yourself

Time of First Successful Submission: 2026-03-15 13:40:15

Dereferencing with Offsets

Time of First Successful Submission: 2026-03-15 13:44:12

Stored Addresses

Time of First Successful Submission: 2026-03-15 13:48:11

Double Dereference

Time of First Successful Submission: 2026-03-15 13:52:10

The Stack

Time of First Successful Submission: 2026-03-15 15:08:57

Stack Offsets

Time of First Successful Submission: 2026-03-15 15:11:35

Program Arguments on the Stack

Time of First Successful Submission: 2026-03-15 15:44:14

Popping From the Stack

Time of First Successful Submission: 2026-03-15 15:50:35

Disassembling Programs

Time of First Successful Submission: 2026-03-15 19:32:01

Tracing Syscalls

Time of First Successful Submission: 2026-03-16 09:12:25

Starting GDB

Time of First Successful Submission: 2026-03-16 09:16:07

Quitting GDB

Time of First Successful Submission: 2026-03-16 09:17:28

Starting Programs in GDB

Time of First Successful Submission: 2026-03-16 09:20:02

Disassembling in GDB

Time of First Successful Submission: 2026-03-16 11:19:25

Stepping Through Instructions

Time of First Successful Submission: 2026-03-16 11:22:18

Reading Register Values

Time of First Successful Submission: 2026-03-16 11:24:28

Popping Stack Values

Time of First Successful Submission: 2026-03-16 11:29:36

Examining Memory

Time of First Successful Submission: 2026-03-16 11:31:33

Examining Stack Pointers

Time of First Successful Submission: 2026-03-16 11:39:03

Cooperative Debugging

Time of First Successful Submission: 2026-03-16 11:51:56

Writing Output

Time of First Successful Submission: 2026-04-01 11:04:03

Chaining Syscalls

Time of First Successful Submission: 2026-04-01 11:07:22

Writing Strings

Time of First Successful Submission: 2026-04-01 11:10:55

Reading Data

Time of First Successful Submission: 2026-04-01 11:34:20

Opening Files

Time of First Successful Submission: 2026-04-01 14:29:47

Hardcoding the Filename

Time of First Successful Submission: 2026-04-01 14:38:37

Comparing Values

Time of First Successful Submission: 2026-04-02 14:20:00

Comparing Characters

Time of First Successful Submission: 2026-04-02 14:29:17

Conditional Control Flow

Time of First Successful Submission: 2026-04-02 14:44:48

Comparing Strings

Time of First Successful Submission: 2026-04-02 16:24:57

Reverse the Password

Time of First Successful Submission: 2026-04-02 16:40:19

Conditionals Without Conditionals

Time of First Successful Submission: 2026-04-04 10:30:17

Looping

Time of First Successful Submission: 2026-04-04 11:27:04

Reverse the Calculation

Time of First Successful Submission: 2026-04-04 18:50:53

Reverse the Reverse

Time of First Successful Submission: 2026-04-04 18:53:43

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-04-04 19:05:44

Loops on Data

Time of First Successful Submission: 2026-04-05 18:36:36

set-register

Time of First Successful Submission: 2026-04-05 18:55:53

set-multiple-registers

Time of First Successful Submission: 2026-04-06 15:38:25

add-to-register

Time of First Successful Submission: 2026-04-06 15:40:28

linear-equation-registers

Time of First Successful Submission: 2026-04-06 15:49:13

integer-division

Time of First Successful Submission: 2026-04-07 10:59:15

modulo-operation

Time of First Successful Submission: 2026-04-07 11:07:13

set-upper-byte

Time of First Successful Submission: 2026-04-07 11:11:31

efficient-modulo

Time of First Successful Submission: 2026-04-07 13:43:27

byte-extraction

Time of First Successful Submission: 2026-04-08 16:15:59

bitwise-and

Time of First Successful Submission: 2026-04-08 18:59:48

check-even

Time of First Successful Submission: 2026-04-08 19:46:07

memory-read

Time of First Successful Submission: 2026-04-09 08:50:03

memory-write

Time of First Successful Submission: 2026-04-09 09:04:17

memory-increment

Time of First Successful Submission: 2026-04-09 09:19:18

byte-access

Time of First Successful Submission: 2026-04-09 10:10:49

memory-size-access

Time of First Successful Submission: 2026-04-09 10:48:16

little-endian-write

Time of First Successful Submission: 2026-04-09 11:04:48

memory-sum

Time of First Successful Submission: 2026-04-09 11:17:12

stack-subtraction

Time of First Successful Submission: 2026-04-09 15:55:27

swap-stack-values

Time of First Successful Submission: 2026-04-09 16:01:52

average-stack-values

Time of First Successful Submission: 2026-04-09 16:33:03

absolute-jump

Time of First Successful Submission: 2026-04-10 07:13:23

relative-jump

Time of First Successful Submission: 2026-04-10 07:34:25

jump-trampoline

Time of First Successful Submission: 2026-04-10 09:38:58

conditional-jump

Time of First Successful Submission: 2026-04-13 13:31:06

indirect-jump

Time of First Successful Submission: 2026-04-15 13:18:05

average-loop

Time of First Successful Submission: 2026-04-15 13:40:03

count-non-zero

Time of First Successful Submission: 2026-04-16 15:23:00

string-lower

Time of First Successful Submission: 2026-04-29 11:48:00

most-common-byte

Time of First Successful Submission: 2026-04-29 14:59:00

Exit

Time of First Successful Submission: 2026-04-30 13:39:11

Socket

Time of First Successful Submission: 2026-04-30 14:24:32

Bind

Time of First Successful Submission: 2026-04-30 15:08:56

Listen

Time of First Successful Submission: 2026-05-01 12:19:52

Accept

Time of First Successful Submission: 2026-05-02 11:22:55

Static Response

Time of First Successful Submission: 2026-05-02 11:53:55

Dynamic Response

Time of First Successful Submission: 2026-05-02 13:26:15

Iterative GET Server

Time of First Successful Submission: 2026-05-06 14:06:33

Concurrent GET Server

Time of First Successful Submission: 2026-05-06 15:03:48

Concurrent POST Server

Time of First Successful Submission: 2026-05-06 16:06:59

Web Server

Time of First Successful Submission: 2026-05-07 08:26:09

Debugging Programs

Time of First Successful Submission: 2026-05-14 14:48:15

Inspecting Registers

Time of First Successful Submission: 2026-05-14 14:52:19

Examining Memory

Time of First Successful Submission: 2026-05-17 16:41:56

Setting Breakpoints

Time of First Successful Submission: 2026-05-17 18:48:50

GDB Scripting

Time of First Successful Submission: 2026-05-17 19:46:06

Modifying Data

Time of First Successful Submission: 2026-05-19 13:56:45

Modifying Execution

Time of First Successful Submission: 2026-05-19 14:13:40

Broken Functions

Time of First Successful Submission: 2026-05-20 15:22:29


Playing With Programs

5 / 116 20345 / 23846


What's the password?

Time of First Successful Submission: 2026-05-20 15:47:38

... and again!

Time of First Successful Submission: 2026-05-20 15:48:56

Newline Troubles

Time of First Successful Submission: 2026-05-20 18:53:56

Reasoning about files

Time of First Successful Submission: 2026-05-20 18:58:10

Specifying Filenames

Time of First Successful Submission: 2026-05-20 19:00:23


DSU Cyber Camps

12 / 104 1993 / 46271


Using the Terminal

Time of First Successful Submission: 2026-03-13 14:13:50

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-13 14:21:01

Using the GUI Desktop

Time of First Successful Submission: 2026-03-13 14:24:53

Pasting into the Desktop

Time of First Successful Submission: 2026-03-13 14:30:08

Connecting over SSH

Time of First Successful Submission: 2026-03-13 14:37:13

Restarting Challenges

Time of First Successful Submission: 2026-03-13 14:55:56

Getting Help

Time of First Successful Submission: 2026-03-13 14:59:03

Challenge Programs

Time of First Successful Submission: 2026-03-13 15:46:06

The Flag File

Time of First Successful Submission: 2026-03-13 16:15:05

Using Privileged Mode

Time of First Successful Submission: 2026-03-13 16:20:04

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-13 16:26:22

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-13 16:27:26


GCA CTF

12 / 104 1993 / 46271


Using the Terminal

Time of First Successful Submission: 2026-03-13 14:13:50

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-13 14:21:01

Using the GUI Desktop

Time of First Successful Submission: 2026-03-13 14:24:53

Pasting into the Desktop

Time of First Successful Submission: 2026-03-13 14:30:08

Connecting over SSH

Time of First Successful Submission: 2026-03-13 14:37:13

Restarting Challenges

Time of First Successful Submission: 2026-03-13 14:55:56

Getting Help

Time of First Successful Submission: 2026-03-13 14:59:03

Challenge Programs

Time of First Successful Submission: 2026-03-13 15:46:06

The Flag File

Time of First Successful Submission: 2026-03-13 16:15:05

Using Privileged Mode

Time of First Successful Submission: 2026-03-13 16:20:04

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-13 16:26:22

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-13 16:27:26