joeframbach
Limp Gawd
- Joined
- Jun 22, 2005
- Messages
- 284
I have a paper/presentation due this Monday, and so far I have something of an introduction and have worked out the topic of the paper. I would like to share it with the forums here. Some feedback would be awesome!
Industry is concerned with practical, physical applications, and Academia is concerned with theoretical, metaphysical concepts. This statement may hold in fields such as Computer Science, Physics, and Mathematics, but the scope of the paper deals with Computer Science. Industry likes to use state-of-the art technology while applying old simple techniques. Academia uses archaic technology while developing smarter algorithms and techniques. There is some conflict in that Industry must re-train those coming from Academia, and this is very costly. What can be done to reconcile Industry and Academia? Vocational schools, internship programs, and academic grants help, but there is a deeper solution. I need to expand on the solution in this paper.
The Full Text said:The Reconciliation of Academia and Industry in Computer Science
Academia and Industry are two separate nations caught in an epic battle for the survival of their inhabitants. This battle has been waged for centuries, and has caused the deaths of many of its soldiers. In the 17th century, Galileo fought for Academic progress by proposing that the Earth revolved around the Sun. The Industry at the time was the Church, as it was the only group that developed physical laws. In the end, the work of Academia had imposed changes to the beliefs of the Industry, although Galileo had been incarcerated and silenced for his actions. The current age has a different Academia and a different Industry. Academia is now built solidly on higher education and theoretical work, and Industry is built on financial progress and real-world applications. Throughout the history of this interaction between Academia and Industry, many have attempted to bring together the two nations in harmony, through the use of vocational schools, internship programs, and academic grants. However, there are many issues that are not yet understood, so the two camps will remain separated.
Why Computer Science?
Computer Science is a field where there exist two very separate worlds, the Practical and the Theoretical. Practical Computer Science focuses on the development of end-user technology, such as web browsers, operating systems, and electronics firmware. Theoretical Computer Science focuses on the development of concepts that are not usually seen by the end user, such as programming language semantics, algorithm analysis, and automata theory. This paper would easily extend into the fields of Physics and Mathematics, which are other such fields of study where such a division exists. In Physics, much work is done with theoretical concepts such as quantum theory, and much work is done in practical applications such as aerospace engineering. This paper does not apply so well to the fields of Biology or Chemistry, where work is done in a mostly practical level, or to the fields of Psychology and Philosophy, where work is done in a mostly theoretical level.
This separation between Practical and Theoretical worlds is directly correlated to the Industry/Academia separation. Most theorists are found in Academia, and those interested in physical applications are found in Industry. In Computer Science, Engineers are usually found active in the workforce, and Theorists are usually found active in the classroom. As any scholar of Engineering would confess, the study of Engineering focuses on the already-existing world and its practical applications. Conversely, a practitioner of Philosophy would say that their work focuses on metaphysics and theory. Computer Science, however, does not focus solely on theory or physical results, nor is any majority of its practitioners found in either the workforce or the classroom. Scholars of Computer Science’s Academia are not out to describe pre-existing phenomena; they are at the forefront of theoretical work, creating new ideas and new laws to govern their new world. The workforce of Computer Science’s Industry, however, does not rely so much on theoretical progress; it thrives on physical processes and results.
What is the discrepancy?
Academia and Industry complement each other in functionality and purpose. The fact that they have different goals leads to conflict, as well. This shows very clearly in what happens to information and research in the two camps. Academia tries to spread it far and wide, while Industry tries to hoard it for financial gain. So while Academia needs the financial support of Industry, and Industry needs science, technology, and research from Academia, there is some tension when trying to decide what to do with the products of collaboration.
Industry sees little need for theoretical work; it has no practical applications in the “real” world. As long as applications “just work” and development time is kept to a minimum, the intricacies of theoretical algorithm development hold little value. However, the theoretical approach taken by Academia does hold much value for those interested. Efficiency and complexity analysis would, on a large scale, improve performance in real-world applications. Therefore, this singular problem becomes two-fold: Academia does not produce useful physical results, and Industry does not utilize new theoretical ideas.
Aside from the Practical/Theoretical divergence, another very closely related issue involves a disagreement of the use of technology and conceptual ideas between Academia and Industry. This disagreement takes place mostly in the realm of Industry, as the actions of Academia directly affect Industry, but the actions of Industry do little to sway Academia. Specifically, Academia is more inclined to make use of older technology while creating new conceptual ideas, and Industry is more inclined to make use of newer technology while implementing older, tried-and-true concepts. To further understand this discrepancy, the difference between technology and conceptual ideas will be discussed. The technology in question, for example, includes software packages and programming languages. Industry is more inclined to use faster software and more efficient programming languages to reduce development time, because physical results need to be quickly acquired. Professors in Academia, however, are not quick to adopt these changes, because new languages arise very often, and the differences from one version to the next are not significant to the development of conceptual ideas. These conceptual ideas include efficiency, optimization, and scheduling techniques. The fundamental aspect of how a data structure or algorithm works is mostly language-independent, and can be effectively taught with archaic programming languages. The workforce in Industry, is not concerned with the structure of an algorithm built into their programming language of choice; fundamental algorithms are implemented by Industry, and rarely developed therein.
This framework of Practical/Theoretical discrepancies and Technological/Conceptual subdivisions allows the problems in reconciling Academia and Industry to be fully understood, and allows solutions to be developed and proposed.
Filler.
[This section yet to be written.]
What can be done to reconcile the two nations?
Collaboration: The two nations must build a bridge, an eight-lane super-highway. The fact that it is very difficult to move from Industry to Academia will not change, so Industry must move to Academia. In higher-level undergraduate courses, more Industry-sponsored projects should be available. Training for such positions must be available as well. In recent years, this idea has become more popular. [This section needs to be expanded.]
Bringing Industry into the classroom
Many professors have moved from industry jobs into teaching. One common argument in this discussion has been that “real life examples” help to reinforce the importance of various concepts such as de-allocating allocated memory. Another argument is that students, due to their natural sense of mistrust, are often skeptical of their instructors. For this reason, many instructors find it beneficial to invite Industry professionals to reinforce classroom material with anecdotal evidence.
At Pitt, we offer a course in Software Design Methodology, CS1631. Various representatives from local industries come to the classroom and present projects to groups of 4-5 students. The students must collaborate and use a model of software development to complete the project. This course is a huge leap into the real world for a lot of students, and it is entirely beneficial for both the students and the Industry representatives. The point is that it is far easier for representatives from Industry to come to Academia to propose ideas, than it is for representatives from Academia to go to Industry to propose changes in the way they do their work.
Formal methods in practice
There have been numerous formal methods of software design developed in Academia, such as formal state-based specification languages, event-based process algebras, and formal frameworks. These methods hold much promise in theory, and have been proven to be useful and beneficial in practice, as shown in classrooms such as CS1631. However, it is rare to see such methods fully implemented in Industry. The software industry is not reluctant to adopt these techniques, but is held back by a lack of resources for full implementation. For these methods to be successful it must be sufficiently scalable, and Industry must have access to specialists with an extensive background in mathematics, because the methods were rigorously defined using extensive mathematical concepts. In practice, it is rare that Business Analysts and Domain Experts are adequately knowledgeable in the formal method to be able to participate in making or validating the formal specification.
Any relationship that is not mutually beneficial will quickly collapse
[This section yet to be written.]