17 Projects and Nathan

Hmm Projects C Structs or Classes or OO in Hmm 10 Continuations in Hmm 6 Trees, Binary Trees or Linked lists in Hmm ...

0 downloads 164 Views 213KB Size
Hmm Projects C Structs or Classes or OO in Hmm

10

Continuations in Hmm

6

Trees, Binary Trees or Linked lists in Hmm

3

Prolog in Hmm

2

Dictionaries or Hashmaps in Hmm

2

Matricies in Hmm

2

Type inferencing in Hmm

1

Code Annotation of Hmm

1

Cons, cdr, car, rand, math in Hmm

1

Explicit Polymorphism in Hmm

1

letrec in Hmm

2

Thread Blocks in Hmm

1

Memoization in Hmm

1

Hmm + Python

1

Map, Reduce and Filter in Hmm

1

Objective Hmm

1

SQL in Hmm

1

37

80%

9

20%

Non-Hmm Projects Lisp

3

Uro Lite - Data Block and Exec Block

1

Polite

1

lambda Calculus in Haskell

1

Flash Cards

1

Haskell from scratch

1

Monotony Web Development

1

Dr. Philip Cannata

46

1

CS345 Fall 2009 Project Grades 16

Number of Students with This Grade

14

12

10

8

6

4

2

0 0

10

20

30

40

50

60

70

80

90

100

Grade

Dr. Philip Cannata

2

Dr. Philip Cannata

3

Sample Project Presentations

• Hmm + Continuations - Timothy Joslin and Stephen Kimberlin

• Hmm + Structs - Chris Cunningham and Alex Espinosa

• Parallel Hmm - Garrett Lancaster and Phillip Birtcher

Dr. Philip Cannata

4

Parallel Computing Abstract: In December 2006 we published a broad survey of the issues for the whole field concerning the multicore/manycore sea change (see view.eecs.berkeley.edu). We view the ultimate goal as being able to productively create efficient, correct and portable software that smoothly scales when the number of cores per chip doubles biennially. This talk covers the specific research agenda that a large group of us at Berkeley are going to follow (see parlab.eecs.berkeley.edu) as part of a center funded for five years by Intel and Microsoft. To take a fresh approach to the longstanding parallel computing problem, our research agenda will be driven by compelling applications developed by domain experts in personal health, image retrieval, music, speech understanding and browsers. The development of parallel software is divided into two layers: an efficiency layer that aims at low overhead for 10 percent of the best programmers, and a productivity layer for the rest of the programming community-including domain experts-that reuses the parallel software developed at the efficiency layer. Key to this approach is a layer of libraries and programming frameworks centered around the 13 design patterns that we identified in the Berkeley View report. We rely on autotuning to map the software efficiently to a particular parallel computer. The role of the operating systems and the architecture in this project is to support software and applications in achieving the ultimate goal. Examples include primitives like thin hypervisors and libraries for the operating system and hardware support for partitioning and fast barrier synchronization. We will prototype the hardware of the future using field programmable gate arrays (FPGAs) on a common hardware platform being developed by a consortium of universities and companies (see http://ramp.eecs.berkeley.edu/ ).

Dr. Philip Cannata

5

Sample Project Presentations

Dr. Philip Cannata

6