Tuesday, March 29, 2011

Possible Class Projects based on Scratch

Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art -- and share your creations on the web.

More information can be accessed: http://scratch.mit.edu/

Some ideas about possible class projects:
  • Tablet / touch screen + Scratch will be a nice tool in classroom. We have smart board in classroom, and student can learn the concept of programming in class.
  • Talking desktop or kind of voice recognition software + Scratch may be used to create talking virtual robot.
  • Education games, etc.
  • Visualize knowledge being teaching in class: Hands-on in class exercises for Programing Language; simulator for Digital Logic Design; Hands-on assignment for Operation System; etc. 
Collection of free voice recognition software: (Wikipedia)
Windows: ZebSpeech, E-Speaking.
  • Dragon Dictate for Mac - From Nuance Communications, released as a new version of MacSpeech Dictate in 2010.
  • iListen - Product from MacSpeech, developed and supported for PowerPC-based Macintosh until ca. 2009.
  • MacSpeech Dictate - By Nuance Communications. Dictation product for Intel-based Macintosh. Renamed and upgraded as "Dragon Dictate for Mac" in 2010.
  • MacSpeech Dictate Medical - Dictation product for Intel-based Macintosh with included vocabularies for 54 medical and dental specialties.[1] Developed by MacSpeech; acquired by Nuance Communications in 2010.
  • MacSpeech Dictate Legal - Dictation product for Intel-based Macintosh with a vocabulary of legal terms.[2] Developed by MacSpeech; acquired by Nuance Communications in 2010.
  • MacSpeech Scribe - By Nuance Communications. Transcription product for automatically transcribing recorded dictation into text.
  • Speakable items - Included with Mac OS X or higher. Apple's speech synthesis and recognition technology is collectively called PlainTalk.
  • ViaVoice - Product from IBM, developed and supported until ca. 2007.
Open Source: 
  • CMU Sphinx — open source under a BSD license
  • Julius — Japanese language only programs with BSD-style license.
  • simon — GPL; Uses Julius and the HTK
  • iATROS — Released under a GPL license.

FAQ: What programming language should I learn first?

From: FAQ: What programming language should I learn first?


There are hundreds of different programming languages out there. As a newcomer you can ignore the fact that most of them exist. However, even if we narrow the list to just a dozen mainstream languages, deciding on what programming language to learn first can be a daunting task. You might find yourself asking, should I learn C, C++, Java, C#, or PHP first? If you ask ten programmers this question, you’ll probably hear ten different answers. Here is my take.

Much as with human languages, programming languages are used to communicate. Interestingly they still involve communication between people, whether other programmers will end up reading/modifying/enhancing your code or you’ll do at a later point in time. Unlike natural languages however, programming languages are unequivocally understood by computers, thanks to the aid of interpreters, compilers, and similar types of software.

Depending on the kind of program you’re trying to write, and in which environment you’re working, you’ll find that some programming languages are better suited than others for certain tasks, even if most common programming languages are labelled as being “general purpose”.

For example, if you want to create iPhone and iPad applications, your best bet would be to use Objective-C. For Android smartphones and tablets, in most cases, you’ll need to become accustomed with Java. If you want to build web applications, you’ll want to learn client-side technologies such as HTML, CSS and JavaScript (of those three only JavaScript is an actual programming language, but the other two are necessary nevertheless). For the server-side of your web application, you’ll probably want to learn a language like PHP, Ruby, or Python (all three have frameworks that will help make most web programming tasks easier and less time consuming), rather than a system programming favorite like C. (And of course, one has to mention SQL if you’re interfacing with a relational database).

So should you start your foray into the world of programming languages with JavaScript? What about Objective-C? SQL? My advice is to avoid starting your programming journey with a language that is tailored to a specific environment. This early in the game, your main objective is to learn how to program – and how to reason like a programmer – rather than learning a specific language. Once you have mastered the fundamental concepts with the aid of a general purpose programming language, you can ease into other languages as the need arises, depending on the type of software you’d like to develop.

This is a profession where most of your skills are developed and honed by actually “doing”. If you grasp the fundamentals of programming outright, you can easily pick up a specific language and framework when you need to build iPad applications or whatever else you’d like to create.

A well-rounded programmer will end up learning several programming languages and tools over the course of their career. That said, if you are just starting out, focus on one language first. While this might seem a tad dull on the surface, the good news is that unless you pick a truly exotic programming language, a lot of what you learn will be applicable to other programming languages as well. Remember that at this stage, above all else, you are learning how to communicate your thoughts in precise statements for other programmers to understand (and for the computer to execute).

For this reason, you can’t really go too wrong with any of the “somewhat mainstream”, general purpose programming languages (e.g., C, Java, C#, Perl, Ruby, Python, or Scheme). That said, particularly if you are learning on your own, I’d advise that you go with a language that will make your learning trek easier. In other words, opt for a programming language that is widely used, well documented, and beginner-friendly. You’re looking for one that isn’t overly bureaucratic, doesn’t require you to manage memory directly, or have a deep understanding of mathematics to get started.

As such, my suggestion would be to start with Python, and use it as a tool to learn the general craft of programming. Learning Python is fun, easy, and useful. You’ll be able to use it for a wide array of projects in several environments (scripting, web, scientific research, etc…).

There are a variety of free tutorials on the web, but if you want a more rigorous/systematic/academic introduction, I highly recommend “Python Programming: An Introduction to Computer Science (2nd Edition)” (USA | UK | Canada).

Once you have learned the fundamentals of programming, have a decent command of the Python language, and have gained some experience with practical Python projects, you should be better armed to evaluate and pick up other languages and frameworks based on the projects you intend to develop or contribute to in the future (Open Source projects are awesome for this purpose).

Friday, March 25, 2011

POSSCON 2011

This year, POSSCON (Palmetto Open Source Software Conference) 2011 is held at the Columbia Metropolitan Convention Center, Columbia, SC. We have 2 faculty members and a team of students attend the conference. Check http://posscon.org/ for more details.

About POSSCON:


The Palmetto Open Source Software Conference brings a world-class lineup of IT thought leaders to the Southeast for three days to discuss the latest issues for developers, executives, government leaders and educators.

Open source software continues to be one of the hottest and most relevant topics in information technology as organizations strive to meet the increasing demand for innovation with shrinking budgets. That’s why the goal of the organizers is to provide affordable access to quality open source education.
In 2010, more than 350 people from 14 states, 20 colleges and universities and about 100 business and government organizations attended.

In 2011, POSSCON will be held at the Columbia Metropolitan Convention Center for all three days and will feature an executive forum, hands-on workshops, and social and networking events. Programming tracks will be offered in the areas of TechnicalEducations,Healthcare and Leadership.
The mix of people in addition to stellar speakers, affordable registration fees, cutting-edge staging and Southern hospitality make POSSCON a must-attend event. People from varied backgrounds have attended since 2008 and all say the same thing – “this is a truly unique event and a unique blend of people.” We’re proud of that.

Wednesday, November 10, 2010

Conference ALERT Presentation

Service-Learning and Leadership Development Conference: Conference ALERT
Aspiring Leaders Emerging Ready for Tomorrow

20101106ALERTConf from Hong Jiang on Vimeo.

Friday, November 05, 2010

Benedit College & W. A. Perry Middle School -- Robotic Competetion Program

November 4, 2010, 6:30 p.m. - 8:45 p.m., Benedit College &W. A. Perry Middle School -- Robotic Competetion Program is hosted at Swinton Center Ball Room C of Benedict College. Check the following pictures.

Thursday, October 21, 2010

Lecture: Learn & Serve with Robots


2010/10/21, 12:00PM at ALU106, Dr. Jiang gave a presentation: Learn & Serve with Robots. The presentation slides can be accessed here:
LearnServeRoboticsS.pdf


Tuesday, September 28, 2010

Guest Lecture: Discover Open Source Software throught ColaLUG

2010/09/28, Mr. Ben Francis gave us a lecture:
Discover Open Source Software
-- Through the Columbia Linux Users Group

Mr. Ben Francis is currently the president of ColaLUG, and information technologist of South Carolina Army National Guard with rank of Major.

More information about ColaLUG:
http://www.colalug.org/

Thursday, September 23, 2010

Computer Fix-It Day

Have a computer that needs help?


On Saturday, head to the Swearingen Engineering Center, where the student chapter of the Association for Computing Machinery (ACM) is hosting Fix-IT Day.


From noon until 6 p.m., students from USC’s College of Engineering and Computing will be offering computer diagnostics, repair services and virus, malware and spyware removal. The group also will offer assistance in obtaining proper virus protection, keeping your computer secure and up to date as well as troubleshooting general problems.


Group members can service laptops, desktops, Mac, Windows and Linux. The event is free and open to students, faculty and the general public. The ACM cannot cover the cost of hardware, but if you have the hardware needed to make repairs, they will help install it free of charge.


The event is being held in the lobby of the Swearingen building at 301 Main St. in Columbia.


From Staff Reports


Read more: http://www.thestate.com/2010/09/22/1478306/usc-holds-computer-fix-it-day.html#ixzz10MFZalel

Thursday, April 01, 2010

POSSCON 2010 - April 15-17

A great oppotunity to learn: it's free for students.

Check the following link for details.

http://posscon.org/

Wednesday, March 03, 2010

Upcoming Events

Remember the following date for upcoming events:

3/11/2010 Colalug Meeting
6:30PM, Faculty Lounge (Room 1A03)
USC,Swearingen Engineering Center (301 Main St.)

3/16/2010 Intro. iRobot Programming
11:00AM, ALU313

All Students are welcome!

Tuesday, February 09, 2010

First Meeting 2010 Spring

We have our first meeting 11:00AM at ALU313 today.

Proposed activities this semester include:
  • Robotic programming training sessions;
  • Student research group events: presentation, workshop, etc;
  • Columbia Linux User Group monthly meeting - a chance to know and learn from local professionals;
  • Other possibilities (determined by students.)
Upcoming events are posted below:
  • 2/11/2010, 18:30-20:00, USC Swearingen Engineering Center 1A03 (Click HERE for the detailed direction), COLALUG monthly meeting, Topic: Video Modes, Key Signing
  • 3/9/2010, 11:00-12:00, ALU313, Robotic programming workshop;
  • 3/11/2010, 18:30-20:00, USC Swearingen Engineering Center 1A03, COLALUG monthly meeting;
  • 4/8/2010, 18:30-20:00, USC Swearingen Engineering Center 1A03, COLALUG monthly meeting;
  • 4/13/2010, 11:00-12:00, ALU313, Robotic programming workshop;
  • Biweekly research group meetings will be announced to limited students.

Friday, November 06, 2009

Hands-on project: Program music on iRobot

Robot Programming Training for Biginner (2)

Please check the website to download the related lecture and handouts.
http://groups.google.com/group/team-stacie

Wednesday, October 21, 2009

Robot Programming Training for Beginner (1)

Please click here to submit your evaluation. Thanks.
Handout is posted here.
More project examples can be found here.

Friday, September 18, 2009

Team STACIE is Recruiting ...

Please click HERE to join in Team STACIE - Benedict Robotic Team.


Team STACIE (the Science and Technology Activity Centered Interactive Education cohesive unit) undertakes important project-focused activities in robot systems and Artificial / Robot Intelligence (AI / RI). We try to improve students’ engineering skills through faculty mentoring, peer-to-peer mentoring, team building and community services. More specifically, we train students to learn about Artificial Intelligence (AI) such as Robotics. We also provide students with hands-on experience on how to operate / program Robots as well as learning the rationale behind it.

Saturday, May 02, 2009

Palmetto Open Source Software Conference 2009


Please check http://www.posscon.org/ for more information. The video is now available.



Wednesday, March 25, 2009

Robot-Programming Training Session 4


3/25/2009, 2:00pm - 3:00pm, ALU313, we have our last Robot Programming Training Session, and Mr. Jesse Field gave us a presentation on Programming iRobot to Play a Game of Tag.


Monday, March 23, 2009

IEEE UC-ICAR / BMW Trip


3/20/2009, Spartanburg , SC , IEEE UC-ICAR / BMW Trip.



Wednesday, February 25, 2009

Robot-Programming Training Session 3


2/25/2009, 2:00pm - 3:00pm, ALU313, we have our Robot Programming Training Session 3. Students learned how to analyze sample programs, and modify the sample programs to have new functions.