Due: Thursday, May 4 and at Finals
Points:
This assignment will be in two parts. The first part of the assignment will require some research and have you write a brief report or give answers to a few questions. This will also include some small coding of examples to illustrate what you have researched. This part of the assignment will be part of your final exam. You will be expected to discuss your report with the entire class during the final exam period.
The second part of the assignment will involve some additional work (likely writing a more extensive program depending on the topic) that you may choose to do for extra credit. The additional work that you do will be determined in consultation with me. This part of the assignment will be due next Thursday.
You may choose from the topics listed below or come up with your own topic in consultation with me.
Topic 1 - Prolog. Research the Prolog programming language giving a brief overview
of its use including practical uses of the language and some simple examples that illustrate
the syntax of the language. Extra Credit problems:
father(FATHER,CHILD). mother(MOTHER,CHILD). citizen_of(PERSON,COUNTRY). male(PERSON). female(PERSON).Now add other clauses to represent the following:
A person is a citizen of a country if their father is a citizen of the country. One person is a sibling of another if they have one parent in common. One person is a sister of another if ... One person is a brother of another if ... One person is an aunt of another if ... One person is an uncle of another if ...Add some facts to your system (e.g. male(john)., father(stephen,rachel).) and then test your "program" out with some queries where you know what the answer should be.
Topic 2 - Threads. Research the states a Java thread can take and how to stop or interrupt a thread from another thread including some sample code that illustrates how it works. For the extra credit you would work on a slightly more sophisticated problem to be determined.
Topic 3 - Clusters and MPI. Research what an Oscar cluster is and how it is installed and work on fixing our cluster installation (with my help). For the extra credit you would either do additional work on the cluster, or write some mpi code that runs on the cluster depending on when/if the cluster installation works.
Topic 4 - Scheme. Research these aspects of scheme: how to do input, higher order
functions, and practical applications of functional programming. Include simple examples
that illustrate their use. Extra Credit problems:
(define (test x) (< x 5)) defines a function named test which tests if x is < 5 (create-filter test) should create a function which takes a list as an argument and returns a new list of all the elements that are less than 5. So ( (create-filter test) '(2 4 8 3) ) should return '(2 4 3)
Topic 5 - Pointers. Research how pointers in C or C++ are used including the use referencing and derefrencing operators. Include simple examples illustrating their use. For the extra credit you would work on a slightly more sophisticated program to be determined.