SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 1 ECEbuntu - An Innovative and Multi-Purpose Educational Operating System for Electrical and Computer Engineering Undergraduate Courses: Installation Guide and Supplementary Material Bilal Wajid, Ali Rıza Ekti, Mustafa Shawaqfeh, Student Members, IEEE, and Erchin Serpedin, Fellow, IEEE Abstract—ECEbuntu is free, easily distributable, customized Ubuntu 12.04 LTS based operating system designed for electrical/electronics and computer engineering (ECE) students. ECEbuntu is aimed at universities and students as it represents a cohesive environment integrating more than 30 pre-installed software and packages all catering to undergraduate coursework offered in ECE/CS. ECEbuntu supports a wide range of tools for programming, circuit analysis, printed circuit board (PCB) design, mathematical and numerical analysis, network analysis, microwave and RF transmission design. ECEbuntu is free and is intended to be an effective alternative to the existing costly and copyrighted software packages. ECEbuntu attempts to reduce duplication of effort for building software workstations in laboratories and is intended to act as a good teaching resource for a class room setting. Fig. 1: Disk Management Index Terms—Electrical and computer engineering, Ubuntu, Circuit design, Programming micro-controllers, Microwave and RF transmission line analysis, Computer networks, Numerical computation and visualization, PCB design, Computer programming, Remote access, Latex, Operating System, Linux, Electronics, Programming, Smith chart. I. I NSTALLATION ECEbuntu can be installed using the following steps:1. Freeing Disk Space for installation: If you are currently using Windows on your system, proceed to step 2. If you are using Mac proceed to step 3. For other operating systems (OS), please refer to the user-guide pertaining to your OS to free disk space for installation. 2. Freeing Disk Space in Windows: (adapted from http://technet.microsoft.com/:- Open the Disk Management console by typing diskmgmt.msc at the command prompt; or go to Control Panel, and type “Disk Management” at the search bar, see Fig. 1. - In Disk Management, right-click the volume that you want to shrink, and then click Shrink Volume, see Fig. 2. The authors are with the Dept. of Electrical and Computer Eng., Texas A&M University, College Station, TX, 77843–3128, USA. e-mails: {bilalwajidabbas, arekti, mustafa.shawaqfeh}@tamu.edu, serpedin@ece.tamu.edu. Fig. 2: Disk Management - In the field provided in the Shrink dialog box, enter the amount of space by which to shrink the disk, see Fig. 3. The Shrink dialog box provides the following information: * Total Size Before Shrink In MB: Lists the total capacity of the volume in MB. This is the formatted size of the volume. * Size Of Available Shrink Space In MB: Lists the maximum amount by which you can shrink the volume. This does not represent the total amount of free space on the volume; rather, it represents the amount of space that can be removed, not including any data reserved for the master file table, volume snapshots, page SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 TABLE I: Some Software tools in ECEbuntu ×64 Software tools in ECEbuntu GNU R Core for Statistics GTKWave Microwave and RF transmission line calculator LinSMith Smith Chart Generator GeoGebra: Mathematical applets Texlive Texmaker Eclipse and Eclipse-cdt for C/C++ Python: IDLE Assembly Language: xSPIM a GUI for MIPS32 Assembly Language emulator RKWard: GUI for R-Projects (R is a programming language used by Statisticians) GNU Octave: Scientific Computing QToctave QT end to Octave NetEmul: the LAN network Simulator gns3 Graphical Network Simulator: Program to simulate networks PUTTY: Connect to an SSH server with PuTTY xSPIM a GUI for MIPS32 Assembly Language emulator emu8051: Intel 8051 Emulator MCU 8051 IDE: GUI IDE for MCS-51 based Microcontrollers Oregano: Schematic Capture and Simulation of Electronic Circuits gEDA Schematics: Design Electronic Projects Gwave: Waveform Viewer for Spice Simulation Scilab: Scientific Software package for numerical computations + Advanced Computations KmPlot: Function Plotter kiCad: PCB Suite Fritzing: PCB Suite VISOLATE: PCB CNC Converter gEDA Schematic also known as PCB Project PCB Designer UNETbootin VLC: multimedia player and streamer Chromium: Google Chromium Browser files, and temporary files. * Enter The Amount of Space To Shrink In MB: Lists the total amount of space that will be removed from the volume. The initial value defaults to the maximum amount of space that can be removed from the volume. For optimal drive performance, you should ensure that the volume has at least 10 percent of free space after the shrink operation. It is suggested that at least 4 GB be reserved for ECEbuntu. * Total Size After Shrink In MB: Lists what the total capacity of the volume in MB will be after you shrink the volume. This is the new formatted size of the volume. 2 Fig. 3: Disk Management - Click Shrink, see Fig. 4. Once you have unallocated space, shown in the green box in Fig. 4 leave it as it is. Do not make a new partition, as the free space would be detected automatically by the ECEbuntu installation system, and ECEbuntu would be installed on it. Fig. 4: Disk Management 3. Freeing Disk Space http://macs.about.com/ in MAC: (adapted from - ‘Disk Utility’ bundled with OS X 10.5 has the ability to add, delete, and resize hard drive partitions without first erasing the hard drive, see Fig. 5. Earlier versions of Disk Utility have been known to loose data that is currently stored on the drive being re-sized. Therefore, this guide is specific to OS X 10.5. However, it may be usable for future versions of the Mac OS. Kindly refrain from using earlier version of Disk Utility for this process. - Launch Disk Utility, located tions/Utilities/, see Fig. 6. at /Applica- - Current hard drives and volumes will display in a list panel on the left side of the Disk Utility window. Hard drives are listed with a generic SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 3 - Click the ‘Partition’ button. - Disk Utility will resize the selected partition without losing any of the data on the volume. Fig. 5: MAC OS X: Disk Utility: One can use the ‘Disk Utility’ to add, delete, and resize partitions without first erasing the hard drive. 4. Download ECEbuntu: Go to http://people.tamu.edu/ bilalwajidabbas/ece.html to download ECEbuntu.iso (about 2.2 GB is size). Burn the .iso file in a DVD and insert the DVD into the system. Reboot the system and make sure that the DVD is chosen as the first boot priority. Once you boot from the DVD you would see the following options, see Fig. 7:- live: boots the live system. If one wants to test ECEbuntu before installing it in his/her system, use the ‘live’ option. If you want to boot from the live system go to Step 5. - xforcevesa: boots the live system in “safe graphics” mode. - install: installs ECEbuntu in your system. - memtest: checks the memory. - hd: boots from the operating system currently present in your system. Fig. 6: MAC OS X: Disk Utility: Click the right-hand bottom corner of the volume and drag to reduce the window. disk icon, followed by the drive’s size, make, and model. Volumes are listed below their associated hard drive, see Fig. 6. - Select the hard drive associated with the volume you wish to shrink. - Click the ‘Partition’ tab. - Grab the right-hand bottom corner of the volume and drag to shrink it. If one prefers, one can enter a value in the ‘Size’ field. - Click the ‘Apply’ button. - Disk Utility will display a confirmation sheet listing the volume you are about to resize. Fig. 7: Boot options for ECEbuntu 5. Booting the Live System: Go to ‘live’ and press enter as shown in Fig. 7. This will lead one to the login screen, see Fig. 8. One can login as the ‘Guest’ or one can create his/her own username and password. To make your own username and password, Press ‘Ctrl+Alt+F5’. This brings you to the command prompt as seen in Fig. 9. 6. To add a new user, type in the following commands: - ‘sudo su’, this gives you the administrator privileges. SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 4 Fig. 11: New user added screen, see Fig. 13. Fig. 8: Default Login Screen Fig. 9: Default Login Command Prompt - ‘adduser bilal wajid’, this command adds a new user by the name of ‘bial wajid’. You would have to put your own name here. - The above command would prompt you to add a new password, and some details about you. You are not required to fill in all the details. In the end, it would look something like Fig. 10. Fig. 12: Installing ECEbuntu. Fig. 13: Starting ECEbuntu. 8. The installation begins with the screen shown in Fig. 14. It is not necessary to have the system connected to Internet. However, it is advisable as the underlining Ubuntu system detects the hardware and may install additional drivers not part of the current release. Fig. 10: Adding a new User - Press ‘Ctrl+Alt+F7’ to go back to the login screen. Now you would see ‘bilal wajid’ added to the list of users. Go and login using the password you entered in the previous step, see Fig. 11. - Once you login, you could test ECEbuntu without installing it. If you wish to install it, you could reboot and proceed to Step 7. 7. To install ECEbuntu reboot using the DVD in the drive. Choose ‘install’ amongst the options mentioned in Step 4, see Fig. 12. One would see the ECEbuntu start Fig. 14: Starting the Installation 8. Next comes selection of the language. Since ECEbuntu is based on Ubuntu 12.04 LTS ×64, it contains support for multiple languages. The default language for the current version of ECEbuntu is ‘English’, see Fig. 15. Since ECEbuntu is a variant of Ubuntu the remainder of the installation SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 5 steps are the same. See Step 2 and beyond at http://www.ubuntu.com/download/desktop/installdesktop-long-term-support for the remainder of the steps. Fig. 15: Choosing the Language. Fig. 17: Emu8051: Emulator and simulator for 8051 microcontrollers. II. B OOTING FROM THE USB ECEbuntu can be installed via a bootable usb provided there is enough free space. In order to make a bootable usb download ECEbuntu from here. Once the .iso file has been downloaded, a number of software can be used to make a bootable USB. Examples of some freeware are UNETbootin http://unetbootin.sourceforge.net/ and Pen drive linux http://www.pendrivelinux.com/. It is recommended that the USB have at least 8GB of free space. Kindly refer to http://www.ubuntu.com/download/desktop/ create-a-usb-stick-on-windows for further details. III. RUNNING ECE BUNTU IN PARALLEL WITH W INDOWS AND MAC In principle, many operating systems can run in parallel on a single server using a process called virtualization. Through virtualization all the applications associated to an operating system, including the OS itself, live in a separate container called the Virtual Machine (VM). VMs are completely isolated from each other. However, all the hardware, meaning the CPUs, memory, disk space and networking are pooled together and delivered dynamically to each VM using a software called Hypervisor. The Hypervisor helps deliver each VM the resources it needs on run time, making use of the hardware resources most efficiently. Therefore, via the use of virtualization hardware, overhead costs decrease and since virtualization helps to run the servers at their optimum capacity, the operating efficiency increases tremendously. Examples of virtualization software are VMWare http://www.vmware.com/ and Parallels Desktop http://www.parallels.com/. Examples of some freeware are VirtualBox https://www.virtualbox.org/, QEMU http://wiki.qemu.org/Main Page, Cooperative Linux (CoLinux) http://www.colinux.org/, and FreeVPS, which is available at http://sourceforge.net/projects/freevps/. Genobuntu can be installed on a Ubuntu system that is running in parallel with Windows and MAC using the above mentioned software packages. IV. D ESCRIPTION OF ECE BUNTU S OFTWARE TOOLS What follows is a description of some of the ECE tools that come with ECEbuntu. These descriptions are taken from their respective debian packages. • Eclipse [1], [2] Availability:http://www.eclipse.org/ Description: Extensible Tool Platform and Java IDE The Eclipse Platform is an open and extensible platform for constructing and running integrated softwaredevelopment tools. The installed package provides the whole Eclipse SDK that contains Eclipse Platform, Java development tools and Plug-in Development Environment. Additional plug-ins useful for C and C++ development are also provided, see Fig. 16. • Dynamips [3], [4] Availability:http://www.ipflow.utc.fr/ Description: Cisco 7200/3600/3725/3745/2600/1700 Router Emulator Dynamips emulates Cisco 7200/3600/3725/3745/2600/1700 Routers. One can use Dynamips to create labs. Dynamips is a complementary tool to real labs for administrators of Cisco networks. Furthermore, Dynamips is useful for people wanting to pass their CCNA/CCNP/CCIE exams. • Emu8051 [5] Availability: http://www.hugovil.com/fr/emu8051/index.html Description: Emulator and simulator for 8051 microcontrollers Emu8051 is a simulator/emulator for the Intel 8051 family of microcontrollers. It allows the developers to simulate 8051 microcontrollers to test their code and debug it. The program can load Intel HEX files, see Fig. 17. SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 6 Fig. 16: Eclipse IDE. • gEDA [7] Availability:http://geda.seul.org/ Description: GPL EDA – Electronics design software The gEDA project has produced and continues working on a full GPL’d suite and toolkit of Electronic Design Automation tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout, see Fig. 19 20. Fig. 18: Fritzing: • Fritzing [6] Availability:http://fritzing.org Description: Easy-to-use electronic design software Fritzing is an open source project designed to help one transition from a prototype to a finished project. Aimed at users who want to produce or document circuits and experiments, one starts by building a physical prototype, then recreating it with the Fritzing’s graphical editor. From there one can generate a schematic PCB artwork and PCB production files, see Fig. 18. • GeoGebra [8], [9] Availability:http://www.geogebra.org/ Description: Dynamic mathematics software for education GeoGebra is a dynamic geometry system. One can do constructions with points, vectors, segments, lines, conic sections as well as functions and change them dynamically afterwards. On the other hand, equations and coordinates can be entered directly. Support for many geometric constructions is provided, as well as support for many elementary calculus-based tools (derivatives, oscilating circle, etc.), see Fig. 21. • GNS3 [10], [11] Availability:http://www.gns3.net/ Description: Graphical Network Simulator GNS3 is a graphical network simulator to design SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 Fig. 19: gEDA: GUI Electronic Design and Automation tools. 7 Fig. 22: GNS3: Graphical Network Simulator network topologies. One may run network simulations or configure devices ranging from Cisco routers, Cisco PIX firewalls, Cisco ASA Firewalls, Cisco IDS to JunOS routers using Qemu or Pemu. It is using Dynamips as simulation back-end and an IOS emulator which allows users to run IOS binary images from Cisco Systems. Fig. 20: gEDA: GUI Electronic Design and Automation tools. • Gwave [12] Availability:http://gwave.sourceforge.net Description: waveform viewer eg for spice simulators Gwave is a tool for viewing analog data, such as the output of Spice simulations. Gwave can read “raw” files from Spice2G6, Spice3F5 or Spice, and a tabular ASCII format suitable for use with GnuCAP. Gwave can also read several binary and ASCII files written by commercial spice-type simulators such as hspice, tspice, and nanosim. Gwave supports multiple “panels” with multiple variables displayed in each panel. In addition two vertical-bar cursors are available for time-difference measurements. Multiple files can be loaded, for comparing results of several simulations, see Fig. 23. • IDLE Availability:http://www.python.org/ Description: IDE for Python using Tkinter IDLE is an Integrated Development Environment for Python. IDLE is written using Tkinter and therefore, platform-independent. Fig. 21: GeoGebra: a dynamic geometry system. • QtOctave [13], [14] Availability:http://qtoctave.wordpress.com/about/ Description: Qt front-end to Octave Besides offering an attractive front-end to GNU Octave, an environment for numerical computation highly compatible with MATLAB, QtOctave currently also SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 8 Fig. 25: KMplot: Fig. 23: Gwave: waveform viewer eg for spice simulators. KDE education module, see Fig. 25. • Kicad [15], [16] Availability:http://iut-tice.ujf-grenoble.fr/kicad/ Description: Electronic schematic and PCB design. Kicad is a suite of programs for making printed circuit boards. It includes a schematic editor, a PCB layout tool, support tools and a 3D viewer to display a finished and fully populated PCB. Kicad is made up of 5 main components: - Fig. 24: QtOctave: an environment for numerical computations. features matrix data entry and display and some GUI shortcuts to frequently used Octave functions, see Fig. 24. • KmPlot Availability: https://projects.kde.org/projects/kde/kdeedu/kmplot Description: mathematical function plotter for KDE KmPlot is a powerful mathematical plotter for KDE, capable of plotting multiple functions simultaneously and combining them into new functions. Cartesian, parametric, and differential functions are supported, as well as functions using polar coordinates. Plots are printed with high precision at the correct aspect ratio. KmPlot also provides numerical and visual features such as filling and calculating the area between the plot, finding maxima and minima, changing function parameters dynamically, and plotting derivatives and integral functions. The installed package is part of the kicad - project manager eeschema - schematic editor pcbnew - PCB editor gerbview - GERBER viewer cvpcb - footprint selector for components • LinSmith Availability:here Description: Tool to generate Smith Charts Smith charts are used in electrical engineering to show how the complex impedance of a transmission line varies along its length. Smith Charts simplify the design of impedance matching networks to match the line to its load. LinSmith is a Smith Charting program, see Fig. 26. • MCU 8051 Availability:http://mcu8051ide.sourceforge.net/ Description: Integrated development enviroment for MCS-51 based microcontrollers MCU 8051 IDE is a tool for developing programs in assembly or C languages (with SDCC) for microcontrollers based on the industrial standard MCS-51. It consist of an editor with syntax highlight, auto completion, syntax validation, command line, compiler with support for macro-instructions, (even macro in macro), simulator/debugger with small hardware simulation and a text editor, see Fig. 27. • NetEmul Availability:http://netemul.sourceforge.net/ Description: program for simulating computer networks SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 Fig. 26: linSmith allows definition of multiple load impedances (at different frequencies), connections in both series and parallel, addition of discrete (L, C, parallel and series LC, and transformer) and line components (open and closed stubs, line segments), storing several load and circuit configuration separately, permitting several solutions without re-defining previous ones. Furthermore, the GUI helps provide component switches from impedance to admittance and a direct view of results. 9 Fig. 28: NetEmul: program for simulating computer networks. Fig. 29: Oregano: tool for schematical capture of electronic circuits NetEmul makes possible to build, configure and verify a network’s availability. NetEmul allows beginners to see the principles of operation of computer networks making it useful for laboratory experiments, see Fig. 28. • Oregano [17], [18] Availability:http://oregano.gforge.lug.fi.uba.ar/ Description: tool for schematical capture of electronic circuits Oregano is a GNOME application for schematic capture and printing of electronic circuits. It can simulate circuits using Gnucap, ng-spice or Berkeley spice, see Fig. 29. Fig. 27: MCU 8051 IDE: Integrated development enviroment for MCS-51 based microcontrollers. • PCB Availability:http://pcb.gpleda.org/ Description: printed circuit board (pcb) design program SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 Fig. 30: PCB: PCB is an interactive printed circuit board editor for the X11 window system. PCB includes nest feature, design rule checking, and can provide industry standard RS-274-X (Gerber), NC drill, and centroid data (X-Y data) output for use in the board fabrication and assembly process. PCB offers high end features such as an auto-router and trace optimizer which reduces layout time. The installed package contains the GTK+ user-interface for pcb. • PuTTY Availability:http://www.putty.org/ Description: Telnet/SSH client for X The installed package is the Unix equivalent of the popular Windows SSH client, PuTTY. It supports flexible terminal set-ups, multiple X11 authentication protocols, and additional options which are not available with the ssh present in xterm. • RKWard [19], [20] Availability:http://rkward.sourceforge.net Description: KDE frontend to the R statistics language RKWard aims to become an easy to use, transparent front-end to R, a powerful system for statistical computation and graphics. In addition to being a convenient GUI for the most important statistical functions, future versions will also provide seamless integration with an office-suite, see Fig. 31. • SciLab [21], [22] Availability:http://www.scilab.org Description: Scientific software package for numerical computations Scilab includes hundreds of mathematical functions. It assumes a high level programming language allowing access to advanced data structures, 2-D and 3-D graphical functions. Scilab provides multiple functionalities 10 Fig. 31: RKWard: a GUI for R statistical language. including:- tools for Maths, Statistics and Simulation - for engineering and science applications, like data analysis. - 2-D and 3-D Visualization - graphics functions to visualize, annotate and export data. - optimization, which includes algorithms to solve constrained and unconstrained continuous and discrete optimization problems. - modelling tools - control system design and analysis - signal processing - application development - Xcos - Hybrid dynamic systems modeller and simulator - Modelling mechanical systems, hydraulic circuits, etc. Scilab is a credible alternatives to Matlab and Simulink, see Fig. 32. • Spatial Statistics [23] Availability: http://cran.r-project.org/web/packages/spatial/index.html Description: GNU R package for spatial statistics The package provides functions and datasets to support spatial statistics. • SPIM Availability:http://pages.cs.wisc.edu/ larus/spim.html Description: MIPS R2000/R3000 emulator SPIM S20 is a software simulator/emulator that runs assembly language programs for MIPS R2000/R3000 RISC processor. SPIM is a self-contained system for running programs and contains a debugger and an interface to the operating system. • Tex Live SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 11 Fig. 33: Texmaker is a clean, highly configurable LaTeX editor with good hot key support and extensive LaTeX documentation. LaTeX documentation. Texmaker integrates many tools needed to develop documents with LaTeX, in just one application. It has some nice features such as syntax highlighting, insertion of 370 mathematical symbols with only one click, and “structure view” of the document for easier navigation, see Fig. 33. • TransCalc Availability:http://transcalc.sourceforge.net/ Description: Microwave and RF transmission line calculator Transcalc is an analysis and synthesis tool for calculating the electrical and physical properties of different kinds of RF and microwave transmission lines, see Fig. 34. Fig. 32: Scilab Availability:http://www.tug.org/texlive/ Description: TeX Live: A decent selection of the TeX Live packages The TeX Live software distribution offers a complete TeX system. It encompasses programs for typesetting, previewing and printing of TeX documents in many different languages, and a large collection of TeX macros and font libraries. • Texmaker Availability:http://www.xm1math.net/texmaker/ Description: cross-platform LaTeX editor Texmaker is a clean, highly configurable LaTeX editor with good hot key support and extensive • Visolate Availability:https://sourceforge.net/projects/visolate/ Description: tool for engraving PCBs using CNCs Visolate reads the gerber files describing printed circuit boards and converts them into the G-code (RS-274 code) needed to engrave the layout onto a board using the CNC machine. Precise renditions of the original layout can be created as well as Voronoi fillings of the original layout as well as shortening of the toolpath. A PPENDIX A S UPPLEMENTARY F ILES The main manuscripts comes with the following files: 1 Supplementary section can be downloaded from http: //people.tamu.edu/∼bilalwajidabbas/ecebuntu.html. SUBMITTED TO IEEE TRANSACTIONS ON EDUCATION, FEB. 2015 Fig. 34: Transcalc is built using the GIMP toolkit (GTK+) for its GUI interface. For each type of transmission line, using dialog boxes, one can enter values for the various parameters, and either calculate its electrical properties (analyze), or use the given electrical requirements to synthesize physical parameters of the required transmission line. 2 ECEbuntu.iso, about 2.2 Gbs in length, can be downloaded from http://people.tamu.edu/∼bilalwajidabbas/ ecebuntu.html. ACKNOWLEDGMENT The authors would like to acknowledge National Science Foundation Grant: CCF-1318338. R EFERENCES [1] J. desRivieres and J. Wiegand, “Eclipse: A platform for integrating development tools,” IBM Systems Journal, vol. 43, no. 2, pp. 371–383, 2004. [2] D. Geer, “Eclipse becomes the dominant java ide,” Computer, vol. 38, no. 7, pp. 16–18, 2005. [3] Y.-p. WU and W. ZHENG, “Application and analysis of packet tracer and dynamips in computer network simulation experiment [j],” Computer Era, vol. 10, p. 008, 2010. [4] L. Wen-chi, “On the configuration and application of dynamips virtual network [j],” Journal of Nanjing Institute of Industry Technology, vol. 2, p. 017, 2007. [5] T. Reinbacher, D. Gückel, M. Horauer, and S. Kowalewski, “Testing microcontroller software simulators,” in Proceedings of the Workshop on SLE for CPS at INFORMATIK, 2011. [6] A. Knörig, R. Wettach, and J. Cohen, “Fritzing: a tool for advancing electronic prototyping for designers,” in Proceedings of the 3rd International Conference on Tangible and Embedded Interaction. ACM, 2009, pp. 351–358. [7] S. Brorson, “Circuit design on your linux box using geda,” Linux Journal, vol. 141, no. 7, 2006. [8] M. Hohenwarter and J. Preiner, “Dynamic mathematics with geogebra,” Journal of Online Mathematics and its Applications, vol. 7, 2007. [9] L. Fahlberg-Stojanovska and V. Stojanovski, “Geogebrafreedom to explore and learn,” Teaching Mathematics and its Applications, vol. 28, no. 2, pp. 69–76, 2009. [10] W. Makasiranondh, S. P. Maj, and D. Veal, “Pedagogical evaluation of simulation tools usage in network technology education,” Engineering and Technology, vol. 8, pp. 321–326, 2010. 12 [11] V. Autefage and D. Magoni, “Network emulator: a network virtualization testbed for overlay experimentations,” in Computer Aided Modeling and Design of Communication Links and Networks (CAMAD), 2012 IEEE 17th International Workshop on. IEEE, 2012, pp. 266–270. [12] C. Medrano, I. Plaza, M. Castro, F. Garci07a-Sevilla, J. Martı́nez-Calero, J. P. Felix, and M. Corbalán, “A review of electronic engineering design free software tools,” in Education Engineering (EDUCON), 2010 IEEE. IEEE, 2010, pp. 1867–1871. [13] P. L. Luis, “Qtoctave, octave para todos los públicos,” Todo linux: la revista mensual para entusiastas de GNU/LINUX, no. 84, pp. 37–41, 2007. [14] M. P. López del Castillo, P. L. Lucas Rosado, and A. Sánchez Muñoz, “Qtoctave: el matlab de los pobres,” Actas de las I Jornadas en Innovación y TIC Educativas–JITICE 2010, p. 29. [15] J. C. Borg, X.-T. Yan, and N. P. Juster, “A kicad tool for pro-active exploration support to design synthesis for multi-x,” in Knowledge Intensive Computer Aided Design. Springer, 2000, pp. 295–322. [16] R. Halvick, “Kicad: a high level tool. electronic cad available to all,” ELEKTOR ELECTRONICS, vol. 33, no. 367, p. 134, 2007. [17] B. G. Zapirain, A. M. Zorrilla, I. Ruiz, and A. Muro, “Learning electronics using image processing techniques for describing circuits to blind students,” in Signal Processing and Information Technology (ISSPIT), 2010 IEEE International Symposium on. IEEE, 2010, pp. 156–160. [18] M. Neruda and L. Vojtech, “Modeling of smart textile materials for esd applications,” in ELMAR, 2012 Proceedings. IEEE, 2012, pp. 145–148. [19] S. Rödiger, T. Friedrichsmeier, P. Kapat, and M. Michalke, “Rkward: A comprehensive graphical user interface and integrated development environment for statistical analysis with r,” Journal of Statistical Software, vol. 49, no. 9, pp. 1–34, 2012. [20] D. Wick, “Free and open-source software applications for mathematics and education,” in Proceedings of the twenty-first annual international conference on technology in collegiate mathematics, 2009, pp. 300–304. [21] S. L. Campbell, J.-P. Chancelier, and R. Nikoukhah, Modeling and simulation in SCILAB. Springer, 2010. [22] C. Gómez, Engineering and scientific computing with Scilab. Springer, 1999. [23] W. Venables and B. D. Ripley, S programming. Springer, 2000.