[opensource] RESOLVE C++
bonesawosu at gmail.com
Sun Feb 8 00:57:14 EST 2009
At this point I felt like it was time to change the subject heading since
the whole printing issue was solved 3 conversations ago.
I think everyone has officially missed the point I was trying to make :(
I knew Java, C++ , C, PHP, blah_blah_blah going into that series. So I
would have learned zero about Java had that been the language used for
221,222,321. People's responses all seem to be directed toward arguing that
it doesn't matter which language you use for the series. But that's what I'm
That series isn't about learning a language at all. It's about learning
certain concepts involved with software design. Those concepts are totally
independent of language (to some extent since something like HTML wouldn't
be very useful for teaching recursion or sorting). However in order to teach
them you do need to use at least 1 language. And regardless of how much of a
language course it isn't, I don't think you can argue that you are
completely detached from learning the language that is taught. And this is
why I think Java would be a better choice of language. Even though you
wouldn't learn all the ins-and-outs of Java, you would at least (a) know
enough about it to be able to continue learning it on your own after the
series and (b) be able to add "Java" to your resume. And if you think that
adding any one specific language to a resume doesn't mean anything then
think again because I have gotten calls from companies about jobs as a
direct result of having Java listed on my resume. When I put that I knew
ActionScript on my resume I got probably 2-3 calls per day from people all
over the country wanting me to move there and make Flash stuff for them. Can
anyone else share some stories with us about companies specifically
targeting a certain language? I've heard that Microsoft only wants to see
you use C++ when you interview with them. And at career fairs I noticed that
Intel and IBM will actually circle "C" or "Assembly" if they see it on your
resume. The point I'm trying to get at here is that inside of the
221,222,321 series the language used doesn't really make a difference since
the class is about learning certain concepts and not language, but outside
of the 221,222,321 series making a simple switch in languages makes a huge
difference to anyone who makes it through the series because it's more
desirable to employers and it's easy to continue using it since it actually
has it's own compiler (please don't send responses about using gpp to
compile resolve because I already know that works as long as you have the
time to do some extra hacking to get everything setup right).
Even though the 221,222,321 series is about learning certain concepts and
not certain languages, a switch to using a more popular language like java
would in the long run be more beneficial to those who take it. I don't see
how using 'INTEGER' rather than 'int' makes learning about recursion or
linked lists any easier... so it's not like making the switch is going to
make people completely unable to focus on the underlying concepts. In fact,
I would even argue that it would make it easier to learn those concepts if
students weren't trying to also learn the syntax for resolve at the same
time. And even though I keep mentioning "Java", you could use C++ or C# or
and object oriented language.... I just think that Java is the way to go
since it's cake to learn and just soooooooooooo easy to use. In the end
having only 1 language under your belt isn't the way to go. But if you spend
a year teaching concepts that require a language to be used, then you might
as well use one that is going to be meaningful outside of the series.
In conclusion.... since the 221,222,321 series is not focused on the
language itself, switching from resolve to java (or any other OO language)
wouldn't make a difference while in the series, but would make a big
difference when you got out of the series.
Hopefully this email will help clear up what I'm trying to say about using
java instead of resolve. If not then let me know and I'll try to explain it
On Sat, Feb 7, 2009 at 9:21 PM, Silas Baronda <silas.baronda at gmail.com>wrote:
> Resolve/C++ is fine for what they need it to do. If you come into the class
> not knowing any other language then this is all good. My problem was that I
> came in and I knew about c, python, php, etc and was not trying to think
> like deeply about the subject taught. I considered it basic classes about
> another language and wanting to get through as quickly as possible so I can
> take better/cooler classes. I actually never thought they would go this
> deep in the early CSE classes.
> Now if someone came into this program not knowing any prior language then I
> think they would concentrate more on the things taught as a subject instead
> of the language. They wouldn't think of the language as the constraint but
> the actual problem they are trying to solve.
> I vote for objective-c as the language for the sequence. Just j/king
> On Feb 7, 2009, at 7:51 PM, Timothy Normand Miller wrote:
> As I understand it (knowing Bruce Weide and some of his RAs), Resolve C++
>> is basically C++ with Resolve concepts layered on top of it. There is, in
>> fact, a "pure" Resolve language that they use in their software verification
>> research. This language has quite a different syntax and is more abstract
>> and "academic" in nature, although they have an interpreter for it. The
>> pure Resolve language also provides a means to add logical specifications
>> that describe the meaning of what your algorithm is supposed to implement.
>> They're actively researching using automatic theorem provers to determine
>> whether or not your algorithm is consistent with the logical constraints (or
>> vice versa). While I'm not a fan of massively type-strict languages and
>> such (Pascal, Ada, VHDL, etc.), I can definitely see the value in having a
>> system for PROVING that your code is correct according to its specification.
>> They use Resolve (C++ or not) to teach high-level language concepts that
>> can be implemented in any language, but their goal is to abstract away a lot
>> of the mechanics of programming and focus on those concepts. Stacks,
>> queues, algorithms, logical constraints, etc.
>> Personally, I think that if one were to select a mainstream language to
>> use to teach these things, something purely OO like Ruby (or perhaps Python)
>> would be better than Java, if only for the lack of legacy cruft and simpler
>> syntax that don't distract from the concept being explored.
>> Of course, if you want an interesting challenge, you should try doing all
>> of this stuff in Verilog or VHDL. :)
>> On Feb 7, 2009, at 6:25 PM, Paul Betts wrote:
>> Why am I only on my phone when good mails like this show up?
>>> Anyway, short summary is, Resolve is great ideas hampered by a crap
>>> language (C++) that really clouds the solid underlying concepts.
>>> Paul Betts
>>> On Feb 7, 2009, at 14:46, Shaun Rowland <rowland at cse.ohio-state.edu>
>>>> On Feb 7, 2009, at 2:25 PM, Aaron Joseph wrote:
>>>>> Also, I never asked anyone to send me the key, I just wondered if
>>>>> someone has successfully gotten it from soc lab or oit or some other legal
>>>>> source. And it seems like the answer is that no-one like soc lab or oit has
>>>>> it for free.
>>>> That is a little much to infer from what was stated. I am not going
>>>> to dwell on this. I gave my nudge about the subject.
>>>> Shaun, no-one is going to think you're "the man" for trying to do
>>>>> what's right. However you could have helped me out a little when I was
>>>>> trying to argue why RESOLVE sucks at that UG forum!
>>>> Heh. I really don't want to start a big discussion about Resolve.
>>>> But I can't resist giving my current impression - at least a little.
>>>> It is impossible to broach the subject without writing a book.
>>>> I have seen this argument come up so many times over the years.
>>>> I knew C++ pretty well when I came into Resolve. I also used to
>>>> wonder if it might be better to use another language which would
>>>> have given me more practical experience. I can't remember how many
>>>> of the things we learned there I had picked up reading on my own
>>>> (that's pretty much how I learn for the most part), but I've
>>>> always wondered if knowing a certain amount enabled me to fly
>>>> through those courses while not having all the material sink
>>>> in as much as it could have. I am not really worried about that
>>>> now. I have a lot more experience than back then. Learning to use
>>>> a new programming language is not a big deal IMO. That's more
>>>> of a practical concern which I prefer to do on my own anyway.
>>>> The "practical" side of the argument is greatly outweighed by
>>>> the "learning the concepts" side - especially now that I am
>>>> One of my problems when I was taking undergrad courses was
>>>> that I was more interested in doing things on my own instead
>>>> of doing homework... but that's another story. I am sure I'd
>>>> still have that problem, but I hope I am more disciplined now,
>>>> however it just might be hopeless :-)
>>>> Anyway, Bruce is co-director of the CSE department's Reusable
>>>> Software Research Group. He's a really smart guy. I'm sure that's
>>>> an understatement. Even if I wanted to argue about Resolve, I'd
>>>> put a _lot_ of thought into it first, probably come to the
>>>> conclusion that I'm possibly missing something that someone
>>>> who is an expert in the field knows, and then spend a lot
>>>> more time investigating it. Maybe if I wanted to argue about
>>>> it I'd end up learning even more reasons why the course sequence
>>>> is a good idea as is. Actually, I already feel that's the
>>>> case. The arguments for it being the way it is seem sound to
>>>> me. Bruce cares a lot about teaching. I am sure he's thought
>>>> about this much more than anyone else here, and he knows what
>>>> he's doing. I'm not saying that because he's a faculty member
>>>> of the department in which I work either.
>>>> If one is worried about this being a main item on their resume
>>>> and people wondering what it is, I don't see that as an argument.
>>>> It is good to not discuss the fact it was Resolve, but what you
>>>> have learned in the sequence. Besides, you'll probably have
>>>> time to learn "resume enhancing" languages before you're resume
>>>> would depend on such factors anyway. Once you know the art of
>>>> programming, picking up a "practical" language is not a big
>>>> deal I think. I've seen the Resolve argument come up over
>>>> the years, and the "practical language" argument means nothing
>>>> to me at this point.
>>>> So, my short answer is that I think the Resolve sequence is
>>>> fine - so if I spoke up, I'd end up being on the wrong side
>>>> of your battle :-)
>>>> I'll give you one seemingly supportive argument about how
>>>> I was annoyed in a group project once when two of us
>>>> wanted to use C++ and the other two said they knew real
>>>> C++ and not just Resolve... and they didn't, so it was
>>>> annoying. There are reasons why this experience was silly
>>>> however: a) Why would I ever have wanted to use C++?
>>>> b) Either language would not have made a big difference.
>>>> c) These group projects annoy me because I am a pain
>>>> to program with, caring about using white space correctly,
>>>> caring about things like using private data instead of
>>>> just making everything public (some people miss the point),
>>>> and planning out design first... using revision control.
>>>> d) It really had absolutely nothing to do with Resolve
>>>> itself. See, on the surface it seems supportive, but it
>>>> isn't :-)
>>>> I know this is all extremely way off topic. I'm bored right
>>>> Shaun Rowland
>>>> rowland at cse.ohio-state.edu
>>>> Opensource mailing list
>>>> Opensource at cse.ohio-state.edu
>>> Opensource mailing list
>>> Opensource at cse.ohio-state.edu
>> Timothy Normand Miller
>> millerti at cse.ohio-state.edu
>> Opensource mailing list
>> Opensource at cse.ohio-state.edu
> Opensource mailing list
> Opensource at cse.ohio-state.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Opensource