diff --git a/app/views/main/help.html.haml b/app/views/main/help.html.haml
new file mode 100644
--- /dev/null
+++ b/app/views/main/help.html.haml
@@ -0,0 +1,56 @@
+= user_title_bar(@user)
+
+.announcementbox
+ %span{:class => 'title'}
+ How to submit
+ .announcement
+ %p
+ You must specify the language you are using
+ in your program header. You can optionally
+ specify the task you are submitting to.
+
+ %p
+ The possible language options are
+ C, C++, and Pascal.
+ The follow are examples.
+
+ %table{:border => '1'}
+ %tr
+ %th{:width => '100px'} C
+ %th{:width => '100px'} C++
+ %th{:width => '100px'} Pascal
+ %tr
+ %td= "/*
LANG: C
*/"
+ %td= "/*
LANG: C++
*/"
+ %td= "{
LANG: Pascal
}"
+
+ %p
+ The server will not accept your submission,
+ if you do not specify the language.
+
+ %p
+ Optionally, you can also specify
+ the task with TASK: taskname.
+ On the first page, the taskname for each task is
+ shown in parentheses.
+
+ %p
+ For example, suppose you are using C++
+ to write task mobiles, you put
+
+ %table{:border => '1'}
+ %tr
+ %td{:width => '100px'}
+ %tt /*
LANG: C++
TASK: mobiles
*/
+
+ %p
+ on top of your source code.
+ If you are using Pascal to write the same task,
+ you'll use
+
+ %table{:border => '1'}
+ %tr
+ %td{:width => '100px'}
+ %tt {
LANG: Pascal
TASK: mobiles
}
+
+