Courses

Dr. Shankar is scheduled to teach the following courses during Fall 2014:

  • A joint course for undergraduate engineering students in electrical engineering (EEL 4930 – Smart Sensors) and computer science and engineering (CEN 4214 – Software-Hardware CoDesign). The intent is to bring students with different, but complementary backgrounds to develop robust Apps for sensor-based Apps. The EE students bring excellent background in sensors, analog and digital signal processing, and instrumentation; the CS and CE students have excellent background in digital software and hardware, and systems. Both backgrounds are required to develop outstanding sensor-based Apps. EE students will use Processing (and possibly C) language, while CS and CE students will use Java, both with Android SDK, to develop the App together. Earlier work (see below) has shown the feasibility of combining Apps developed in different languages and also in building a generic framework for plug-and-play assembly of museum exhibits based on different themes and events. The syllabi are found here: Smart Sensors and Software-Hardware CoDesign
  • A joint course for graduate engineering and biology students, with the intent to show both groups of students fundamental concepts in both the fields and how each has influenced progress in the other. Advances have been made in mapping at system, subsystem, component, and lower levels between the two domains. Much has been learned about the human system; innovative technologies have evolved that address engineering problems by mimicking the human system, and vice-versa.  Applications are vast and varied, from microelectronics, computer architectures, and software agents in engineering,  to robotic aids and artificial sensors and organs in medicine.   Dr. Shankar has applied the concepts of nonlinear dynamics, a fundamental construct in physiological and natural complex systems,   advantageously to fields as diverse as medical diagnostics, mobile computing, engineering design productivity, and STEM education. The goal of this course is to expose the students to fundamental concepts, technological mappings, and engineering & medical applications in a variety of fields. The student will develop a fresh research and development perspective that is grounded in highly evolved biological systems. This will open up opportunities for research and collaboration. The syllabus is found here: Biologically Inspired Architecture
  • Both courses have practical applications in Internet of Things (IOT). IOT  may be defined as a “collection of smart, sensor-enabled physical objects, and the networks, servers and services that interact with them” [see Moor Insights & Strategy]. Moor identifies the four major IOT segments as: Monitoring, Operational, Attainment, and Life. All of these have a fundamental limitation that the data are not good enough [see “What’s Holding Us Back“]. The undergraduate courses will show how to collect and analyze sensory data to identify patterns of usual and unusual behavior which may find application in creating   safety/life alerts and for optimization of   engineered/biological systems. The graduate course will take the systems approach to show how nonlinear behavior in biological and engineered components make the systems robust and useful.  The course will also explore how such systems fail and how such failure can be manifested in terms of measured parameters. The next challenge would be to combine the two approaches to predict patterns for early failure, so corrective actions can be taken.

Dr. Shankar  taught the following  courses during the past 4 years. Links to student blog sites may be found at these following sites for Android, Robotics, and Semantic Web:

During Summer 2014:

  • Android Mobile Applications: For high school students (as part of STEM focus at FAU): Juniors and seniors from 9+ local high schools worked in teams of 3/4 to develop smart phone Apps. the focus was on developing apps for the Museum of Discovery and Science (MODS) in Ft. Lauderdale. See: http://www.mods.org/home.htm .   The focus was on using sensors on Android phones. Students used Processing and Java for software development and used the following sensors in their Apps: touch, accelerometer, LBS, NFC, Bluetooth, and magnetometer. All the student work can be accessed here: http://smart.eng.fau.edu/display/PUB/Mobile+Apps+for+Google+Android    . The top four teams have been invited to present at the semi-annual conference of mobile professionals in S. Florida. See http://mtc.fau.edu/  .
  • Bio Signal Lab: Three DIS students and one visiting student  continued the work of a student from Spring 2014. They are developing a state-of-the-art biomedical lab using TI’s OMAP +ARM board. The three active projects are: Digital signal processing of ECG signals (acquired and from database) using C and Matlab in Code Composer Studio; Automated ECG instrumentation – with Labjack and Processing, for securing high CMRR (common mode rejection ratio) and automated nulling of offset; and processing of auditory signals for both physiological and pathological analysis. More is found here: http://smartsystems.eng.fau.edu/biomedical-signal-processing/  .  We also published at the ASEE Conference in 2014. More publications are expected at the ASEE conference.
  • Robotics Lab:   Members of FAU’s robotic lab participated with a DIS students from electrical engineering. The goal here is to build low cost robots that high schools can easily afford. The objective this summer was to improve robustness of the design and precision of the distance and angle turned. More is found here: http://robotics.fau.edu/  and http://smartsystems.eng.fau.edu/precision-robotics/ .   Two visiting French graduate students developed an infrastructure to offer a course on embedded robotics in spring 2015. The goal for this course is to develop multi-player floor board games with autonomous robots. They addressed the following aspects: Use of Raspberry Pi units as relay stations to acquire board images from the four corners of the board, and relay them to Android phones via Bluetooth; and use of Android Phones to perform ‘triangulation’ to estimate the locations of the various robots on the floor board. More is found here: http://smartsystems.eng.fau.edu/math-with-ev3/ and http://smartsystems.eng.fau.edu/raspberry-pi/.

During Spring 2014:

  • CEN 4214 -Software- Hardware CoDesign: For computer science and engineering undergraduate students.  The focus of the course was sensor-based app development for MODS (see above). Students developed Apps for the framework and integration of code developed in Processing and Java. The intent was to develop building blocks for a plug-and-play architecture for museum Apps (see above). The syllabus is found here.
  • COT 6930- Android components: For computer science and engineering graduate students, this course offering focused  on autocode generation using Eclipse Modeling Framework, as applied to Android App development. Several good apps were developed. They will be published soon.  Dr. Shankar presented a workshop at IEEE Syscon in April 2014 based on this course material. The slides are found here: http://csi.fau.edu/courses/auto-code-generation/

During Fall 2013:

  • CEN 4214 – Software-Hardware CoDesign: For computer science and engineering undergraduate students. These students (33) collaborated with urban planning students (11) and digital arts students (6) to develop Apps for urban and regional planning. Three faculty members concurrently taught courses to the three groups of students who came together after the first seven weeks of the semester to develop Apps.  Apps are documented here: https://bitbucket.org/shankarfau/profile/teams
  • COT 4xxx – Senior Seminar: Graduating computer science and engineering seniors addressed a specific domain that has been impacted by Web 1.0 and Web 2.0 technologies. The presentation and associated paper  trace the real-world problem, technology solution and the aftermath of the solution, from social, ethical and legal perspectives. Their video and slides are found here: http://csi.fau.edu/courses/senior-seminar/
  • COT 6930 – Semantic Web Programming:  This course focused on semantic web standards, technologies, and framework. Dr. Shankar presented a workshop at the April 2014 IEEE Syscon conference. The slides are found here: http://csi.fau.edu/courses/semantic-web/

During Fall 2012- Spring 2013: Dr.  Shankar was on sabbatical leave.

During summer 2012:

  • For High School students (as part of STEM focus at FAU):  Android Mobile Applications. Juniors and seniors from 9 local high schools worked in teams of 3 to develop Android Apps using both MotoDev Studio (for Android SDK that uses Java and XML) and App Inventor (a lego-like interface). The latter is easier to use, but is limited in building multiple activity Apps. The students built the  same App using both methods and compared them on certain performance metrics (code size, power dissipation, and usability). Links to their blog sites are available at our Android site.
  • Undergraduate Students: Software Hardware CoDesign (on Android Smart Phone App Development). This was a two-way collaboration among students from engineering and graphics, and involved Professor Fran McAfee, School of Communications and Multimedia Studies, College of Arts and Letters. These were eLearning courses with four F2F (Face to Face) sessions (which will be replaced with virtual sessions in later offerings). Lessons from offering these concurrent eLearning courses will help us involve other disciplines in future offerings, while taking advantage of the eLearning paradigm to reach remote students and form virtual teams. For student blog sites, see our Android site.
  • Graduate Students:  Android Components. This course developed a flow based on the  Eclipse Modeling Framework (EMF) for developing new plugins for the Android SDK.  EMF provides a top-down mechanism to generate  most of  Java code automatically , quickly, and reliably, starting from an UML class diagram.  This course used the following books: EMF Eclipse Modeling Framework by Steinberg, Budinsky, Paternostro, and Merks, 2nd edition, Addison-Wesley, 2009; and The Busy Coder’s Guide to Android Development by Murphy, CommonsWare. Both books were graciously  made available free to our students by the publishers. Student project reports will be available at their blog sites which are listed at our Android site

During Spring 2012:

  • For High School Students: EGN 1935 – Intro to Mechatronics. This was developed after offering courses on embedded robotics at graduate level, and then at the undergraduate level. Once a low cost platform and the flow had been finalized, we offered this course to high school students in collaboration with Dr. Don Ploger, Education, and Ms. Agnes Nemeth, Math Teacher, Henderson School. Ninth graders built inexpensive robots, in groups of 3, to draw robotic art on large canvasses. Links to their blog sites and videos are provided at our Robotics site
  • For Undergrad Students: CEN 4214 – Software-Hardware CoDesign, a four-way collaboration among engineering, arts, business, and anthropology students and faculty members. This was in collaboration with Prof. Fran McAfee, MFA, School of Communication and Multimedia Studies, College of Arts and Letters; Dr. Michael Harris, Chair, Anthropology Department,  College of Arts and Letters, and Ms. Jeanne McConnell, MBA, College of Business. There have been many media articles on this effort. Please see Stories.
  • For Graduate Students:  COT 5930 – Concurrency Modeling.  Concurrency is very important in today’s world of multicore and distributed processing. However, it is also a very hard and difficult concept to comprehend and implement.  The book by Professors Magee and Kramer, entitled: Concurrency State Models and Java Programs, goes a long way in explaining the concepts and showing correct implementations. Over the many semesters this course has been taught, we also found that students wanted practical Apps that they could relate to. We incorporated two things this semester.  (1) We   used robotic animation with the aid of Dr. Becker’s book: Learning to Program with Robots  for Java (see http://www.learningwithrobots.com/). Students used his library to build examples of robotic action in sequential and parallel modes (thereby gaining appreciation of the performance benefits) and extending it to concurrency (for safe and deadlock free use of shared resources, while gaining the advantages of parallelism). (2) Students also improved the bluetooth link between two players using Android smart phones to ensure reliable communication while they played the game.  We will post the Apps here soon. You should be able to import them into a typical Java IDE (such as Eclipse) and run these Apps.

During Fall 2011:

I taught two courses that semester, on Embedded Robotics (undergraduate/graduate course)  and Semantic Web (graduate/distance learning course). Both used open source tools. The robotics course used Arduino C, Win AVR,  and AVR microcontroller from ATMEL, along with Processing and Java languages, to build mobile and stationary robots. By the end of the semester, the students, in groups of 3 (from EE/CE/CS) were expected to use one or more robots to create robotic art on a large sheet of paper ( frame size: 6 ‘ x 6’). There was interplay of many engineering challenges embedded in this project.   Our goal was to eventually build low cost robot kits that could be used for middle and high schools to teach math and physics skills in an entirely new and interesting way. The semantic web course used Jena framework, along with Protege for ontology development, and RDF/RDFS/OWL languages, coupled with standards/languages/tools for querying (SPARQL),  rule formation (SWRL), and reasoning (Pellet). We see the semantic web technology as full of potential, yet to be realized in a larger scale. As such, we also covered technologies related to intelligent web (such as Lucene for information retrieval and analysis). The students combined both these technologies in articulating solutions to real world problems, as pertinent to academic and medical domains, with database linkage to federal government sites.

Highlights of  Dr. Shankar’s Teaching Experience:

Focus (2008-on) – Mobile Applications: Software-Hardware CoDesign with Android, Android Components, Android Projects (on Robotics), Semantic and Intelligent Web Applications, all focused on various aspects (applications, frameworks, components, physical computing, graphics and animation, web services, and optimization) of the open source Android mobile platform of Google.

Focus (2000- on) – System on a chip (SoC): Network on Chip,  Concurrency Modeling, Software-Hardware CoDesign, Computers as Components, CAD-Based Computer Design with SystemC,   andSOC Design and Verification. Fall ’08: Biologically Inspired Architectures.

Focus (1999 – on) – Innovation: New Product Development, College of Business, co-taught.

Focus (1986-1999) –  VLSI:  Microelectromechanical Systems (with Dr. Masory); Analog and Neural VLSI; VLSI and Computer Architecture; Advanced Topics in VLSI Design (Low Power Design, SOI); Structured VLSI Design;  Introduction to VLSI

Focus (1982-1992)  – Architecture: Embedded System Design I; Concurrent Processing (with Dr. Fernandez); Introduction to Neural Networks; Introduction to Microcomputers;  Digital Computer Architecture I and III

Focus (1985- 2000) – Engineering Design Automation – CAD-Based Computer Design (with Verilog and ARM); Structured Digital Design; Computer Hardware Design I and II; Semi-custom VLSI Design in DSP (with Dr. Sudhakar);

Focus (1982-1985): – Data Acquisition: Data Acquisition and Measurement Systems;  Biomedical Instrumentation Lab (U. of Wisconsin-Madison)