ECE 3822: Software Tools for Engineers
Resource List
This web page contains a list of the software packages that
you will need to download and install. Learning how to manage
these packages is part of the fun of this course. These packages
were chosen mainly because they have proven over time to be
reliable and easy to use. My general philosophy is to minimize
the number of tools I use on a daily basis and to develop a
comfort zone with these tools. The tools shown below are ones I
tend to use on a daily basis.
Note also that many of the tools below exist for Windows and Mac
as well as Linux. With them you can actually create a Linux-type
command line environment under Windows for example. Similarly,
from a terminal window on a Mac, you should find most of these
commands available.
Packages that are not required for the course are marked as "optional."
Also, next to each package name, there is a comment directed at
students who have a Windows machine and are installing this
software into a Windows/VirtualBox/Linux environment.
Step 1:
Install a virtualization package so you can run Linux
on top of Windows (skip if you have a Mac).
- VirtualBox:
allows you to run multiple operating systems concurrently on
your machine. We use it to run Linux under Windows. This allows
you to use your native Windows tools, such as Microsoft Office,
concurrently with a Linux terminal window.
(Install under Windows.)
Step 2:
Install Linux (skip if you have a Mac, or, of course, a Linux
machine). We prefer Ubuntu, but several choices are listed
below. Note that the Mac version of Linux is very close to most
Linux packages, but has its Mac customizations.
- Ubuntu Linux:
a specific implementation of Linux that is extremely popular.
Other popular versions are
Redhat
and
Debian.
To learn more about different Linux distributions, go to
Distrowatch
or Google "most popular versions of Linux".
(Install on the VirtualBox filesystem.)
Step 3:
Enjoy some of these packages that are part of the basic Linux
environment (these do not normally need to be installed).
- GNU:
most of the basic commands you use in Linux are based on packages
that were developed many years ago by the GNU Foundation in what
was the beginning of the open source movement. You don't have to
install these things because they are part of your basic
Linux distribution.
(No installation necessary under Linux).
- Bash:
one of the most common default shells in Linux. It is a very
powerful command line editing environment based on emacs
key bindings.
(No installation necessary under Linux.)
- GCC:
the core C/C++ compiler that comes with most Linux
systems. Occassionally you might download and install a new version
of the compiler. However, these days we tend to go with whatever
is installed in your base environment and try to write simple,
portable code. There is a debugger, gdb, which is also part
of this suite of software development tools.
(No installation necessary under Linux.)
- Emacs:
do you dream in emacs commands? This is perhaps the single greatest
success story for software engineering. This "simple" text editor
dates back to 1980 (if not further) and is extremely powerful
and infinitely configurable. Those who know me know that I can't
live without emacs... I am typing this web page from emacs. Emacs
for Windows (and other operating systems) exists, but it is also
part of the core Linux distribution.
(No installation necessary under Linux.)
Step 4:
Install these packages to faciliate remote connections, file
transfers and encryption.
- Dropbox:
an excellent tool for sharing and distributing files.
(Temple's equivalent, Owlbox, will be okay as well.)
(Install under Windows.)
- WinSCP:
a very nice terminal emulator that lets you connect to a remote
Linux machine from your Windows machine. It is a shame such a
package doesn't exist for the Mac.
(Optional: install under Windows, not needed for Linux.)
- Cyberduck:
the closest thing to WinSCP that is available for a Mac. The Mac
has a pretty nice terminal window built in that makes it fairly
easy to connect to remote hosts. Most of these tools are based on
a protocol known as
Secure Shell.
(Optional: Install on a Mac.)
- FileZilla:
a GUI-oriented file transfer package that makes it very easy to
move files to/from a remote machine such as a web server. The
bookmark feature makes it particularly powerful.
(Install under Windows.)
- TrueCrypt:
an open source encryption tool that lets you protect your thumb
drives, disk drives and other removable media.
(Optional: install under Windows.)
Step 5:
Install these packages to faciliate program development.
- Python:
the main
scripting language we will use in this course. It has a
syntax that is very similar to MATLAB. There are a wide range
of open source tools available now for this language.
An powerful interpretive language that preceded Python was
Perl.
(Install under Linux/should be there by default, but you might
need to upgrade the version.)
- Eclipse:
an integrated
development environment that lets you develop, debug and maintain
code in a number of languages including Java, C++ and Python.
(Install under Linux.)
Step 6:
Install these visualization and conversion tools.
- Audacity:
a tool to dsiplay, edit and convert audio files.
(Optional: install under Windows.)
- Sox:
a universal sound exchange package that lets you convert audio
signals from one format to another. This is usually installed
on most Linux systems.
(Optional: Install under Linux/should be there by default, but you might
need to upgrade the version.)
Step 7:
Install the content management systems and tools.
- Git:
an open source distributed version control system.
(Install under Linux.)
- Github:
a web-based hosting service for software development projects
that use the Git revision control system.
(Optional: install under Linux.)
- RCS:
a simple command line oriented revision control system that is ideal for
managing single files. We use it to manage files on our web site
and project documentation. This is normally part of a standard Linux
distribution.
(Optional: Install under Linux/should be there by default, but you might
need to upgrade the version.)
Step 8:
Install these office automation tools.
- Thunderbird:
a wonderful email client that allows you to easily manage multiple
email accounts from a single interface.
(Optional: install under Windows.)
- Mendeley:
a free reference manager and pdf organizer. This allows you to
store technical citations in a database and generate various
citation formats automatically. We won't cover this in this course,
but the use of a reference manager is rapidly becoming a standard
part of the technical documentation process.
(Optional: install under Windows.)
There you have it - you have successfully made your computing environment
much more useful for doing real work. Of course, there are quite a
few more tools you will need such as Microsoft Office, MathType,
Adobe Acrobat, Photoshop and Illustrator, a good browser, many plug-ins
for your browser to view videos and listen to audio (e.g., VLC, RealPlayer,
Flash, Flip4Mac) and Java extensions for your browser. Fortunately we
won't specifically deal with these things in this course.
If you need help, visit the College of Engineering Information
Technology Office located in ENGR 307 (on the east corridor on
the third floor). They can be reached by phone at 215-204-6368.
Questions or comments about the material presented
here can be directed to
picone@temple.edu.