diff --git a/app/Http/Controllers/AutograderController.php b/app/Http/Controllers/AutograderController.php
index 67993bd06f9bb10ca323b789792372abbc909099..fe3fac574e18d27a6ac6459584abf4b57e89538c 100644
--- a/app/Http/Controllers/AutograderController.php
+++ b/app/Http/Controllers/AutograderController.php
@@ -143,7 +143,45 @@ class AutograderController extends Controller
             $answer = [];
             for($j=0; $j<count($answer_temp); $j++) {
                 if (!empty($answer_temp[$j])) {
-                    $answer[] = $answer_temp[$j];
+                    $array = str_split($answer_temp[$j]);
+                    if (in_array(':', $array)) {
+                        $idx = strpos($answer_temp[$j], ":");
+                        
+                        $row_start_temp = '';
+                        $column_start = 0;
+                        for ($k=0; $k<$idx; $k++) {
+                            if ($k == 0) {
+                                $column_start = ord($array[$k]);
+                            } else {
+                                $row_start_temp .= $array[$k];
+                            }
+                        }
+                        $row_start = intval($row_start_temp);
+            
+                        $row_end_temp = '';
+                        $column_end = 0;
+                        for ($k=$idx+1; $k<count($array); $k++) {
+                            if ($k == $idx+1) {
+                                $column_end = ord($array[$k]);
+                            } else {
+                                $row_end_temp .= $array[$k];
+                            }
+                        }
+                        $row_end = intval($row_end_temp);
+            
+                        $new_arr = [];
+                        for ($k=$column_start; $k<=$column_end; $k++) {
+                            for ($l=$row_start; $l<=$row_end; $l++) {
+                                $new_arr[] = chr($k) . strval($l);
+                            }
+                        }
+    
+                        foreach($new_arr as $n) {
+                            $answer[] = $n;
+                        }
+                    } else {
+                        $answer[] = $answer_temp[$j];
+                    }
                 }
             }
 
@@ -159,48 +197,52 @@ class AutograderController extends Controller
      * @return score
      */
     public function cosine($key, $answer) {
-        $token = [];
-        $vector1 = [];
-        $vector2 = [];
-        foreach($key as $k) {
-            if (!in_array($k, $token)) {
-                $token[] = $k;
-                $vector1[] = 0;
-                $vector2[] = 0;
+        if (count($answer) == 0) {
+            return 0;
+        } else {
+            $token = [];
+            $vector1 = [];
+            $vector2 = [];
+            foreach($key as $k) {
+                if (!in_array($k, $token)) {
+                    $token[] = $k;
+                    $vector1[] = 0;
+                    $vector2[] = 0;
+                }
             }
-        }
 
-        foreach($answer as $k) {
-            if (!in_array($k, $token)) {
-                $token[] = $k;
-                $vector1[] = 0;
-                $vector2[] = 0;
+            foreach($answer as $k) {
+                if (!in_array($k, $token)) {
+                    $token[] = $k;
+                    $vector1[] = 0;
+                    $vector2[] = 0;
+                }
             }
-        }
 
-        foreach($key as $k) {
-            $vector1[array_search($k, $token)] += 1;
-        }
-        foreach($answer as $k) {
-            $vector2[array_search($k, $token)] += 1;
-        }
+            foreach($key as $k) {
+                $vector1[array_search($k, $token)] += 1;
+            }
+            foreach($answer as $k) {
+                $vector2[array_search($k, $token)] += 1;
+            }
 
-        $dot_product = 0;
-        for($i=0; $i<count($token); $i++) {
-            $dot_product += ($vector1[$i])*($vector2[$i]);
-        }
+            $dot_product = 0;
+            for($i=0; $i<count($token); $i++) {
+                $dot_product += ($vector1[$i])*($vector2[$i]);
+            }
 
-        $length1 = 0;
-        $length2 = 0;
+            $length1 = 0;
+            $length2 = 0;
 
-        for($i=0; $i<count($token); $i++) {
-            $length1 += pow($vector1[$i], 2);
-            $length2 += pow($vector2[$i], 2);
-        }
+            for($i=0; $i<count($token); $i++) {
+                $length1 += pow($vector1[$i], 2);
+                $length2 += pow($vector2[$i], 2);
+            }
 
-        $similarity = $dot_product/sqrt($length1*$length2);
-        
-        return $similarity;
+            $similarity = $dot_product/sqrt($length1*$length2);
+            
+            return $similarity;
+        }
     }
 
     /**