Hi Jack were you able to take the Thingworx Fundamentals course? If you haven't yet, I highly recommend it.
1: Mashup already owns lots of widgets, may i define my own kind of widget? or we call user-defined widget?
Yes we call these custom Widget Extensions
2: A app run on diferent smart phones can show the same appearance? typically different screen size and resolution?
You can use a Responsive layout for this, as long as the screen size and resolution aren't too far apart (don't design the same mashup for a desktop and smart phone)
3: May i use R or Python to analyse data stored in Thingworx?
Thingworx has a fully accessible REST API so this is possible
4: What is the relationship among thing ,shape,template in composer?
They have inheritance, you can think of Shapes are pieces of functionality that could be used across different types of Entities. ThingTemplates (like Classes) are what a Thing MUST be based on, the Template can implement (use) any number of ThingShapes. The Thing is the Entity that is the modeled representation of the actual equipment or system you are modeling.
5: When i connect lots of my things to ThingWorx via Internet, is there any request for network capacity, like bandwidth or speed?
Not sure what you mean by request. But if you have devices, systems communicating back to Thingworx, capacity and bandwidth must always be considered. There are a variety of scaling options Thingworx provides to help with large deployments.