|
Solutions for Colleges and Universities
|
Originated as a teaching and learning tool,
Ch was designed and
implemented for novice and inexperienced computer users to
get a quick start in computer programming with applications
in engineering and science.
Reasons for learning and teaching computer programming in C
as well as reasons for using Ch to teach C/C++ can be found
here.
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:
- Introduction to computer programming and its applications
- C language with C99 features and introduction to C++
- Applied numerical analysis with 2D/3D graphical plotting
- Mechanisms design and analysis
- Image processing and computer vision in OpenCV
- Computer network, TCP/IP, and socket/Winsock programming
- Feedback control systems
- Math Statistics
- Mechatronics and robotics
- Shell programming and script language
- Database and ODBC for database programming
- Computer graphical user interface (GUI) in X11/Motif, Windows, GTK+
and graphics in OpenGL
- 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 are using SoftIntegration software to:
- 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
Ch will make beginners' learning experience more enjoyable.
Ch will display
with many diagnostic 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")
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
>
|