COE808/EE8605:  The Project

Deadline: April 22, 2014, Tuesday.  

 

Requirement

·       You may do this project as a group of 2 or 3 students. Your group may define your own topics or choose the topic on page 2. You must submit a hardcopy and softcopy of your report.

·       The group report should be well written and professional. Include a title page that identifies all group members.  Also include page numbers and a table of contents.  Use Times New Roman font size 12. 

Reports should include at least the following major sections:

  1. Introduction - This is an introduction to the report.  Tell the reader what the report 

      is about and what they can expect to find as they read through the report.

2.   Design and implementation – Write a collection of programs to assist your understanding of Programming Languages Concepts. These programs should perform similar tasks using at least three programming languages (C, C++/Java and the third one must from another language). Compare how different languages handle similar tasks. Identify clearly what language features are demonstrated by your application, and where in the application they are used. Discuss any particular challenges you had in selecting, designing or building the application(s).  What did you learn while doing so?

3.  Results and Conclusion

 

      4.  Appendix: Include the source and output of your programs in an appendix at the 

           end of the report.  The source code should be exemplary:

-        Clear Names (variables, types, subprograms)

-        Clean Code

      -     Meaningful Comments

·       I have no specific requirements of the size of your applications.  They should be sufficiently complex to show what the languages can do.  I have in mind 800 – 1,000 lines of code. Quality counts more than size, but it is unlikely that trivial examples can convey effectively what people typically do with the languages.  Remember you are in competition with the other groups.

·        I have no specific requirements for report length.  A concise high quality report is always better than a long rambling poorly-organized one.  Your report should be long enough to do the job as I have outlined above, and no longer.

 

 

Suggested Topics

 

Write the Same Program in Several Languages  

 

For example, implement the game Crossing the River. At the start of the game, there are 3 cannibals and 3 missionaries on one side of a river. Your task is to move all cannibals and missionaries to the other side of the river.  The boat can only take 1 or 2 people each time.  But, when there are more cannibals than missionaries on one side of the river, they eat them and you lose the game. 

Example output should look like this:

        Crossing the River
        -----------------------------------------
        Round 0
        Left                   Right
        MMMCCC
        Boat
        First passenger (c for cannibal, m for missionary): h
        Illegal Input!
        First passenger (c for cannibal, m for missionary): m
        Second passenger (c for cannibal, m for missionary, n for none): c
        -----------------------------------------
        Round 1
        Left                   Right
        MMCC              MC
                                  Boat
        First passenger (c for cannibal, m for missionary): c
        Second passenger (c for cannibal, m for missionary, n for none): c
        Illegal input!
        Second passenger (c for cannibal, m for missionary, n for none): n
        -----------------------------------------
        Round 2
        Left                Right
        MMCCC        M
        Boat
        Missionaries eaten by cannibals! You lose!
 

        Crossing the River
        -----------------------------------------
        Round 0
        Left                 Right
        MMMCCC
        Boat
        First passenger (c for cannibal, m for missionary): m
        Second passenger (c for cannibal, m for missionary, n for none): c
        -----------------------------------------
        Round 1
        Left                Right
        MMCC           MC
                               Boat
        First passenger (c for cannibal, m for missionary): m
        Second passenger (c for cannibal, m for missionary, n for none): n
        -----------------------------------------
        Round 2
        Left                Right
        MMMCC       C
        Boat
        First passenger (c for cannibal, m for missionary): c
        Second passenger (c for cannibal, m for missionary, n for none): c
        -----------------------------------------
        ............
        ............
        ............

        -----------------------------------------
        Round 15
        Left    Right
        CC      MMMC
        Boat
        First passenger (c for cannibal, m for missionary): c
        Second passenger (c for cannibal, m for missionary, n for none): c
        -----------------------------------------
        Congratulations! You win the game in 15 rounds!

 

Write Different Programs Demonstrating the Same Features Identify a group of Programming Language features (arrays, loops, dynamic data, error processing, etc.) to form the basis of your evaluation. Write programs in different languages that demonstrate how each language handles those features. The programs don't have to be complex or the same (or even similar). You may choose to write one small program for each feature, or combine several features into one program.

 

Submission:

 

(1) Submit a hardcopy of your project report to me when you come to the final exam.

(2) E-mail Softcopy of report + Code  (Zip format) to Prof. Yang (cungang@gmail.com)