diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f457c34e9b64bcfc5550e2ce2c8f55f60b4ebd78
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+# debug binary file
+/target
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000000000000000000000000000000000000..7985f386d694ffe282503bda575b8d2466ae90ad
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,7 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "scheduling_simulator"
+version = "0.1.0"
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..ee281bcfcbf93261120337e9aab5f886502708f8
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,6 @@
+[package]
+name = "scheduling_simulator"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000000000000000000000000000000000000..435aeaa1830e70947fe9589c196df767591b676b
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,34 @@
+use std::collections::VecDeque;
+
+#[derive(Debug)]
+struct Task {
+    id: usize,
+    name: String,
+    clock: usize,
+}
+
+fn main() {
+    let task1 = Task {
+        id: 1,
+        name: "send_mail".to_string(),
+        clock: 1,
+    };
+
+    let task2 = Task {
+        id: 2,
+        name: "complete_homework".to_string(),
+        clock: 10,
+    };
+
+    let mut list: VecDeque<Task> = VecDeque::new();
+    list.push_front(task1);
+    list.push_front(task2);
+
+    println!("{:?}", list);
+
+    let pop = list.pop_back();
+
+    println!("{:?}", pop);
+
+    println!("{:?}", list);
+}