Live data from Hacker News

CS294: Program Synthesis for Everyone

people.eecs.berkeley.edu

11–20 of 24 posts

Re: CS294: Program Synthesis for Everyone

#11
Nice to see this do so well over here. I posted this to /r/Racket earlier and as I said over there:

> This has screencasts or at least slides for most lectures. I have just started going through it myself and plan to "audit" all the lectures and do the homework assignments. Anyone have an interest in this and would like a virtual study buddy?

It's also worth pointing out that this excellent RacketCon talk [1] made me go seek out more about Excel Flash Fill [2] and in seeking to understand how that works I stumbled upon this course.

[1]: https://www.youtube.com/watch?v=nOyIKCszNeI&list=PLXr4KViVC0...

[2]: http://research.microsoft.com/en-us/um/people/sumitg/flashfi...

Re: CS294: Program Synthesis for Everyone

#12
post #9

Can someone give me the layman summary of this. I.e. what day to day problem could this be useful to solve? Would it be useful for creating a DSL for example?

I think the clearest example of an application that comes from these techniques is Excel Flash Fill and this course goes over the algorithm used in the Flash Fill paper.

http://research.microsoft.com/en-us/um/people/sumitg/flashfi...

Re: CS294: Program Synthesis for Everyone

#14
post #3

Oh hey, I actually took this class. Funny to see it linked on HN. It was easily the single most valuable class I took in undergrad. There's definitely a lot of useful information there, but I'm not sure how well it's organized because the course website wasn't designed to stand on its own.

I am planning to go through this course virtually from the material linked. Would you mind if I get in touch with you if I get stuck on something?

Re: CS294: Program Synthesis for Everyone

#15
post #11

Nice to see this do so well over here. I posted this to /r/Racket earlier and as I said over there: > This has screencasts or at least slides for most lectures. I have just started going through it myself and plan to "audit" all the lectures and do the homework assignments. Anyone have an interest in this and would like a virtual study buddy? It's also worth pointing out that this excellent RacketCon talk [1] made me…

You don't have contact info on your profile, re: study buddy.

Re: CS294: Program Synthesis for Everyone

#16
post #11

Nice to see this do so well over here. I posted this to /r/Racket earlier and as I said over there: > This has screencasts or at least slides for most lectures. I have just started going through it myself and plan to "audit" all the lectures and do the homework assignments. Anyone have an interest in this and would like a virtual study buddy? It's also worth pointing out that this excellent RacketCon talk [1] made me…

You don't have contact info on your profile, re: study buddy.

Ah, thanks, you can email me: kaspar.emanuel@gmail.com.

Re: CS294: Program Synthesis for Everyone

#17
post #11

Nice to see this do so well over here. I posted this to /r/Racket earlier and as I said over there: > This has screencasts or at least slides for most lectures. I have just started going through it myself and plan to "audit" all the lectures and do the homework assignments. Anyone have an interest in this and would like a virtual study buddy? It's also worth pointing out that this excellent RacketCon talk [1] made me…

BTW, here's a detailed technical talk about that Excel Flash Fill thing from last year's Curry On! conference:

Sumit Gulwani - Data Manipulation using Programming By Examples and Natural Language

https://www.youtube.com/watch?v=uqV9BlxEG5s

Re: CS294: Program Synthesis for Everyone

#18
post #14
post #3

Oh hey, I actually took this class. Funny to see it linked on HN. It was easily the single most valuable class I took in undergrad. There's definitely a lot of useful information there, but I'm not sure how well it's organized because the course website wasn't designed to stand on its own.

I am planning to go through this course virtually from the material linked. Would you mind if I get in touch with you if I get stuck on something?

Sure, although I'm not sure how much I remember of any given topic :P.

Re: CS294: Program Synthesis for Everyone

#19
post #9

Can someone give me the layman summary of this. I.e. what day to day problem could this be useful to solve? Would it be useful for creating a DSL for example?

The same concept is behind Viv, the successor to Siri: http://www.esquire.com/lifestyle/a34630/viv-artificial-intel...

A lot of the recent work here takes advantage of SMT solvers (next generation of SAT solvers), but that's not necessary. As with Viv and Flash Fill, a lot of it is about changing the concept of what it means to write a program, and use alternative approaches to "complete" it. As another example, generating 0-day bug fixes based on how code "should" look, or recommending typed completions to gaps in code.

For my past work in that group, I looked at "sketching" efficient schedules for parallel code, where I only specified the bits I cared about. Nowadays, I think about automatically generating queries for visual analytics.

Re: CS294: Program Synthesis for Everyone

#20
post #8
post #6

I'm not familiar with this discipline. What might this subject matter be used for? Is this related to ML in a broader sense?

It's about making tools that help with the structural aspects of generating code. It's not part of machine learning, but rather it's very much about symbolic/analytic/logical production of code based on a specification of some sort.

I mean just about every thing was AI at one point; program synthesis was seen as AI (like in the 70s) right up until it wasn't after we effectively encoded it into programming languages. For example lisp it self was effectively AI research as well. In computer science it's pretty typical to refer to things as AI right up until we understand how to engineer it; the history of email that was posted recently is a great example (at first we just had computers extracting features and learning things, and it was vague and generic; these days we understand the system as a reputation network, and we understand the details of each of the features because it required a bunch of engineering to make that specific solution scale and fast).
Post reply on HN