Fall 2004 COP4020: Presentation Topics

Note:

Week 6 (10/01/04)

 

1) Comparison study of programming languages: Java versus C/C++. History and motivation for design of Java, efficiency of Java compared to C/C++, safety of Java compared to C/C++

            Section 3: Yuval Peress

 

2) Discuss Cobol in business programming. Why is Cobol frequently used in programming business administration systems? Is (internal) decimal format important for financial systems?

            Section 1: Daniel Beech

            Section 2: Christopher Albritton

            Section 3: Jonathan Aevermann

 

3) Discuss Fortran in scientific programming.

            Section 1: Richard Massa

            Section 2: Hamilton Hadwin

            Section 3: Jennifer Danner

 

4) Discuss the application of Scheme programming for Artificial Intelligence.

            Section 1: Brian Smith

            Section 2: Anton Matthews

            Section 3: Jesse Levier

 

Week 7 (10/08/04)

 

5) Discuss the application of Visual Basic using excel and access.

            Section 3: Garret Reece

 

6) Explain the different aspects of the cost of a programming language in terms of maintenance, deployment, and support. What is the impact of typed languages on development? What is the impact of standard libraries on portability?

            Section 1: Mark Carpenter

            Section 2: Kathleen Brown

            Section 3: Bruce Bayha

 

7) Discuss the way Pascal, non-ISO C, ISO C, and Java handle if-then-else conditional nestings. Delineate the pros and cons from the user and compiler perspectives.

            Section 1: Gilberto Morejon

            Section 2: Thomas Harris

            Section 3: Max Dewalt

 

8) Discuss the impact of programming style on the performance of Scheme programs, e.g. recursion or loops, "if-then" or "cond" using assignment or not using it.

            Section 1: David van Hoose

            Section 2: Therasa Pace

            Section 3: Allison Macleay

 

Week 8 (10/15/04)

 

9) Discuss the use of program languages in bioinformatics.

            Section 3: Tina Suan

 

10) Lisp is often times described as a special-purpose language used in the field of artificial intelligence. How is Lisp more of a special purpose language than others such as C or C++?

            Section 1: Richard Cook

            Section 2: Jin Byun

            Section 3: Stephen Baylis

 

11) Goto jumps are often considered to be bad features of a programming language. Why are they considered bad? Give examples. Can these statements be useful? And if so, how? How do languages without goto type statements, such as Java, get around such limitations?

            Section 1: Rebecca Pembleton

            Section 2: Jennifer Herald

            Section 3: Ryan Flick

 

12) Most programs need conditional statements to make decisions. The IF-THEN-ELSE conditional statement is one way to make decisions. Discuss IF-THEN-ELSE  conditional in Pascal, C/C++  and Java.

            Section 1: Micah Villmow

            Section 2: Jingyuan Ren

            Section 3: Johan Martinez

 

Week 9 (10/22/04)

 

13) Construct a BNF grammar to function as a vending machine. This vending machine charges 50 cents for its products, and only accepts exact change (if 55 cents is given, it would not accept any of the money). In other words, the BNF should recognize strings such as

 

quarter  dime nickel dime

half_dollar

nickel nickel quarter dime nickel

 

The resultant BNF should be as efficient as possible, with no unnecessary rules. Pick a method of parsing and show how a few different sample strings would be handled ( both correct strings and incorrect strings).

            Section 3: Brandon Thompson

 

14) Selecting two different programming languages such as C and Fortran,  write a simple parsing program for a given grammar and apply it to example sentences such as “The dog walks”, and compare how the implementation affect their ability to parse sentences and check it for grammatical correctness against the given grammar. You two may focus on different aspects respectively.

            Section 1: Stephen Inglish

            Section 2: Michael Cervantes

            Section 3: Thomas Bonfield

 

15) Find a BNF description of Java’s syntax. Show that the Java syntax for the if-statement eliminates any ambiguity. That is, draw the parse tree of the following program skeleton (but now using Java’s correct syntax).

if (C1) if (C2) S1; else S2;

And argue that no other parse tree can be found using the Java BNF rules. Compare this syntax approach to C and Ada.

            Section 1: David Rovira

            Section 2: Masa James

            Section 3: Nicholas Folts

 

16) Discuss BNF and EBNF and the difference of them. How to translate EBNF into BNF.

            Section 1: Nicholas Walker

            Section 2: Cynthai Roberts

            Section 3: Antoinette Mulai

 

Week 10 (10/29/04)

 

17) Write an LL Parse that take a BNF description and a string and tell the user if the string match the grammar or not.

            Section 3: Christian Tobon

 

18) Discuss LL(1) parsing grammar.  How the grammar works? Sow how it is implemented in some programming language.

            Section 1: Michael Jason

            Section 2: Joseph John Chap

            Section 3: Erica Bourne

 

19) Find a BNF description of Cobol’s syntax, and discuss the Cobol grammar on English verbs.

            Section 1: David Schwartz

            Section 2: Amey Kulkarni

            Section 3: Cory Fox

 

20) Devise a test to show the efficiency increase of using CASE/SWITCH statements as compared to using normal if-then-else statements. Provide these results, along with an explanation of the experiment, for discussion. Various ways can be used to show the disparity better, while some ways would actually exaggerate or minimize the findings. Be prepared to discuss your methodology as well.

            Section 1: Ryan Woodrum

            Section 2: Michael Schultz

            Section 3: Wickus Nienaber

 

Week 11 (11/05/04)

 

21) Many languages allow the programmer to create both statically and dynamically allocated variables. Some languages, like Fortran, do not allow dynamic allocation. Discuss how this restriction affects writability, program flexibility, and other issues important to a programmer.

            Section 3: Todd Andel

 

22) Discuss the Hoard memory allocator, available from the web. Explain the purpose of 

Hoard in relation to multiple threads, and how Hoard handles these problems.

            Section 1: Kelley Jones

            Section 2: Lino Elias

            Section 3: Demetrius Brown

 

23) Explain how the central run-time stack is managed in Pascal to maintain static scopic. How would you modify the stack to use dynamic scoping (most recent association)? How would these changes affect the performance of programs?

            Section 1: Matthew Scragg

            Section 2: Michael Lind

            Section 3: James Gonzalez

 

24) The C language has three storage classes, called automatic, extern, and static. These determine whether and how memory is allocated for variables and/or determine the visibility of entities.

 

-Discuss the storage classes.

-Discuss the use of "auto", "extern", and “static" for global variables.

-Discuss the use of "auto", "extern", and “static" for local variables of a function. How is this different from the use of these storage classes for globals?

-Discuss separate compilation and linking in C (with emphasis on using "static" and "extern").

            Section 1: Benjamin Wunder

            Section 2: Christi Shirley

            Section 3: Mathew Oldham

 

Week 12 (11/12/04)

 

25) Read section 7.7.3 of the textbook. Discuss garbage collection as presented here, and the topics of reference counts and    mark-and-sweep collection.

            Section 2: Silas Williams

            Section 3: Mark Collin Searles

 

26) Research the automatic garbage collection performed in Java. Find actual benchmarks and test results on its usage. Discuss how such garbage collection affects performance. Have there been improvements in Java's garbage collection? If so, discuss this as well.

            Section 1: John Kerski

            Section 2: Ashley Grant

            Section 3: Justin Christofoli

 

27) Discuss overloading and polymorphism in Java. Be sure to talk about how the <extends> and <implements> are used within these. See the instructor for advice on this topic.

            Section 1: Aaron Sharp

            Section 2: Pei Juin Lu Noriel

            Section 3: Glen Hughes

 

28) Discuss Java threads as they relate to concurrent program, and discuss the utilities that Java employs to conserve data integrity (semaphores, monitors, etc.).

            Section 1: Vignon Zinsou

            Section 2: Nicholas Wallen

 

Self-Selected Topic: Visual Fox Pro.

            Section 3: Carl Owenby

 

Week 13 (11/19/04)

 

29) Early Basic, Fortran 77, and Pascal have different static scoping rules. Discuss these scoping rules and give examples of how sample code would be treated. Give your opinions on how these different rules affect the difficulty of programming and compiling.

            Section 2: Carol Yang

            Section 3: Yiming Wu

           

30) Loop index variables is important to calculate number of iterations. Discuss non-integer indexes and resulting round-off errors in the loops in C/C++. How it is in Fortran?

            Section 2: Duan Griffiths

            Section 3: Graig Conrad

 

31) Discuss the use of recursion in terms of efficiency, maintainability, writability, etc. In which cases is recursive programming good, and in which cases is it bad? Fortran does not allow recursion. What effect does this have on programming those things that are best handled by recursion (are there situations in which Fortran cannot handle a certain task because of its lack of recursion?)?

            Section 2: Charles Mason

            Section 3: David Kopicki

 

32) A tail-recursive function is a function in which additional computation never follows a recursion call.  Discuss the difference between iteration, recursive and tail-recursive function by test some examples.

            Section 2: Christopher Williams

            Section 3: Brian Pelletier