<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html style="direction: ltr;">
<head>
  <meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body style="direction: ltr;" bgcolor="#ffffff" text="#000000">
<p style="margin-bottom: 0cm; margin-top: 0pt;">OK, I think this is a
good time to express my view regarding the "Development tools" lecture.
It's purpose, as I see it, is to give the students a nice start with
the "right" tools for developing code, as needed for their exercises.
If their experience is good, they'll stay. If not, they'll soon use the
alternatives.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">If you want to give a
lecture about any other subject, as a Stay-in-Linux or mainstream
lecture, by all means come forward. But let's try to get some focus on
the initial lecture.<br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Correct me if I'm
wrong, but a student is not likely to go beyond a project which runs on
a single platform, having a few source files, and with no more than two
or three persons involved. Hence autotools are irrelevant, and so are
version control systems. Tarballing all sources, and sending to your
partner with comments, is as much version control as you need in these
situations.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Eclipse doesn't belong
to the "right" tools, in my opinion.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">I would therefore set
the following goals to a CS development tools intro lecture:</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">1. Being able to
compile the sources (objects and executable), including math libraries
and such, with reasonable flags (optimization, debug info, -Wall etc)
with gcc.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">2. Using make properly.
No crazy tricks, just getting the actions and dependencies right.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">3. Using vi/vim/emacs
(show both, explain why both are good). I wouldn't bother showing many
keystrokes, just demonstrating and pointing at where you can get a good
reference for them.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">4. Use ddd for
debugging. It's worth mentioning that it's based upon gdb, and that gdb
commands can be given directly (demonstrate?) but using gdb to start
with is not convincing at all.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">More is less. My $.02.</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">   Eli<br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;"><br>
</p>
<p style="margin-bottom: 0cm; margin-top: 0pt;">Tzafrir Cohen wrote:</p>
<blockquote cite="mid:20091015181405.GB30903@pear.tzafrir.org.il"
 type="cite">
  <pre wrap="">On Thu, Oct 15, 2009 at 05:14:50PM +0200, boazg wrote:
  </pre>
  <blockquote type="cite">
    <pre wrap="">as a side note, a seperate lecture on git for CS students, and how to use it
with t2 would be a good idea.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Why git?

While I think git is a handy tool, did you have in mind "developement
tools"?

Other tools that come in mind:

gcc
make
vi / vim
gdb
autotools
emacs
kdevelop
eclipse

(Just a list of tools from the top of my head, I don't intend to start a
flame war on the exact content of a non-existing lecture)

  </pre>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">-- 
Web: <a class="moz-txt-link-freetext" href="http://www.billauer.co.il">http://www.billauer.co.il</a>
</pre>
</body>
</html>