SoftIntegration Solutions

 Plotting/Numerical Computing
 Embedded Scripting
 Enterprise
 Academic

Solutions for Academic

Originated as a teaching and learning tool, Ch was designed and implemented for novice and inexperienced computer users to get a quick start in programming.

Ch is a very high-level language environment (VHLL). It allows students to focus on program structure and algorithm instead of tedious compile/link distraction. SoftIntegration delivers a powerful computing environment for teaching courses as listed below:

"Ch is an excellent environment for research and teaching. I use it for research and teaching on mechatronics and control. To me the main advantage of an interpreter is portability. Ch allows C programs to be executed portably across different platforms. In addition, a major advantage of Ch is its user-friendly mathematical and graphical infrastructure. Getting that in C, C++ or Java requires assembling a large collection of libraries from a variety of sources, each with its own quirks. I am very impressed with the salient graphical plotting capabilities in Ch. They are easy to use and very useful for applications in engineering and science."

-- Professor David Auslander
   University of California at Berkeley

  1. Applied numerical analysis with 2D/3D graphical plotting
  2. C language with C99 features and introduction to C++
  3. Introductory computer programming
  4. Mechanisms design and analysis
  5. Image processing and computer vision in OpenCV
  6. Computer network, TCP/IP, and socket/Winsock programming
  7. Feedback control systems
  8. Math Statistics
  9. Mechatronics and robotics
  10. Shell programming and script language
  11. Database and ODBC for database programming
  12. Computer graphical user interface (GUI) in X11/Motif, Windows, GTK+ and graphics in OpenGL
  13. Web design and CGI programming in C/C++
Unlike other proprietary mathematical software packages such as MATLAB® and Mathematica®, Ch conforms to the open ISO C/C++ standards supported by the entire computer industry. For example, Ch supports all new features for numerical computing in the latest C99 standard. As a superset of C with classes in C++, advanced programming in Ch will allow students to learn fundamentals such as structured programming and object-based programming with data abstraction and information hiding. The advanced numerical and visualization features in Ch allow students to solve practical problems in engineering and science rapidly. The latest technology and knowledge gained by students are applicable in industry in decades to come.

An inceasging number of universities have adopted Ch for their teaching and research programs. Instructors at universities and high schools are using SoftIntegration software to:


"Ch is very much appreciated by beginners and teachers alike. For the first time in my career, I was able to introduce pointers to complete beginners without it seeming unnatural."

-- Professor Jym Feat
   Paris8 University, France

  • Improve the quality of instruction
    Ch is user-friendly with brevity and simplicity. The Ch command shell is especially suitable for interactive presentations using a laptop in a classroom with a quick system response. With an interactive computing environment, instructors can relieve students from tedious compile/link/execute/debug cycles, and focus on teaching the knowledge and problem solving skills. Ch is especially suitable for developing interactive instructional contents in engineering and science for distance learning as shown in online scientific numerical computing and visualization.

  • Improve research programs
    Ch is an effective tool for many research projects. At universities, teaching and research are integrated. Graduate students with strong programming experience in C/C++/Ch will be beneficial to many research projects. Ch bridges the gap between system programming and script computing in C, there are ample research opportunities for exploration of its applications in many different fields.

  • Saving cost
    Unlike proprietary and expensive mathematical software packages, Ch and many toolkits and packages are free for academic use. Ch contains all capabilities, features, and simplicity of other proprietary mathematical software packages. Ch conforms to open ISO C/C++ standards. Your existing legacy C programs can readily run in Ch across different platforms without investments in different hardware platforms and system administration. Your research results, algorithms and code written in Ch can be easily shared with your colleagues and students who may use different computer platforms.

  • Easy and Convenience

    "I used your products to learn more about C and C++. Out of the 15 products that I tried, yours proves to be the best and unbelievably easiest to use,"

    -- Nick LaVeglia, a high school student.

    Ch will make beginners' learning experience more enjoyable. Ch will display with many diagnostical warning and helpful error messages, instead of cryptic arcane error messages such as "segmentation fault" and "bus error" using C/C++ compilers and linkers. As a superset of C with classes in C++, there is a large body of existing user and code base. Sample C code in many textbooks can readily be executed interactively in Ch for teaching and learning.

An example of interactive execution of commands below, valid in both Windows and Unix, demonstrates how Ch can be used as a calculator for scientific numerical computing and visualization.

   
   > 56*85.5-sin(1.5)               // calculate 56*85.5-sin(1.5) 
   4787.002505
   > array double x[36]
   > linspace(x, -3.1416, 3.1416)   // assign array x with values from -3.1416 to 3.1416 linearly
   > x                              // display array x
   -3.1416 -2.9621 -2.7826 -2.6030 -2.4235 -2.2440 -2.0645 -1.8850 -1.7054 -1.5259
   -1.3464 -1.1669 -0.9874 -0.8078 -0.6283 -0.4488 -0.2693 -0.0898 0.0898 0.2693
   0.4488 0.6283 0.8078 0.9874 1.1669 1.3464 1.5259 1.7054 1.8850 2.0645 2.2440
   2.4235 2.6030 2.7826 2.9621 3.1416
   > sin(x)                         // calculate sin(x) for array x   
   0.0000 -0.1786 -0.3514 -0.5129 -0.6579 -0.7818 -0.8806 -0.9511 -0.9909 -0.9990
   -0.9749 -0.9195 -0.8346 -0.7228 -0.5878 -0.4339 -0.2660 -0.0896 0.0896 0.2660
   0.4339 0.5878 0.7228 0.8346 0.9195 0.9749 0.9990 0.9909 0.9511 0.8806 0.7818
   0.6579 0.5129 0.3514 0.1786 -0.0000
   > plotxy(x, sin(x), "Ch plot", "xlabel", "ylabel")
   
plotxy.png
The above plot displayed in Windows can be copied and pasted in Word for documentation and project report.

The example below illustrates a difficult concept about how pointers in C are related to the memory they point to.

   
   > int i, *p, **p2     // i is an integer, p pointer, p2 double pointer
   > i=10                // i is assigned value 10
   10
   > p=&i                // p points to address of i
   00D847C0
   > *p                  // the memory pointed by p has value 10 
   10
   > p2=&p               // p2 points to address of p
   00D84D30
   > **p2                // the memory pointed by the pointer at p2 has value 10
   10
   >
   
Commands below illustrate how struct and computational arrays can be handled interactively.
   
   > struct tag {int i; double d;} s
   > s.i =20
   20
   > s.d=30
   30.0000
   > s
   .i = 20
   .d = 30.0000
   >sizeof(struct tag)
   16       // Note: because of alignment, size of tag is 16, not 12
   > array double A[3][3], C[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
   > A= 2*C
   > A
   2.0000 4.0000 6.0000
   8.0000 10.0000 12.0000
   14.0000 16.0000 18.0000
   > A= 2*C*transpose(C) * inverse(C)
   > A
   64.0000 0.0000 32.0000
   128.0000 0.0000 -64.0000
   256.0000 0.0000 128.0000
   >