What is Computer Science??
by, Kristofer Fox
Armondo Paniagua
Hector Velasco
Alex Berkoff
Joel Dualan
Mike Turnquist
Loourdes Garcia



Programming

This discipline is the low est level of computer science. In this discipline the problems that are to be solved are whatever the company would like. For instance, a company many need a piece of software which calculated the amount of pay each person was to get each mont h according to each person?s hourly pay. A computer programmer would create this piece of software according to the specifications set out by the management of that company. Basically the computer programmer puts into code whatever is stated in a description of the program. Here the problem solving skills may vary from difficult problems to simple translation from a description into code.
A programmer may or may not require a B.S. degree. Depen ding on the company a programmer may only need a trade school degree for there really isn?t any need for an expensive University degree for someone who simply codes for a living. Therefore in this degree a tradeschool education may be the only education needed. Graduates obtain very entry level jobs within which a simple programmer may not advance much farther. Although graduates are hired in all job settings because a programmer is always needed when a new piece of software is bei ng developed.
There a many languages in which a programmer may specialize some of which are:
- C programming in UNIX
- Perl
- HTML
- Oracle
- Win 95
- Macintosh
- UNIX/Internet

< B>Computer Science

Computer science is the study of algorithms which also includes formal and mathematical properties, hardware realizations, linguistic realizations, and applications. (Schneide r pg.4) It is also the discipline that requires patience and analytical skills. You need to be able to work closely with others.
The job of a computer scientist is to develop and design algorithms to sol ve different types of problems. Algorithms are step by step method for accomplishing some task. Computer scientists try to solve the algorithms behavior and decide if they are satisfactory and correct. They build and design computer systems which carry out algorithms. This is part of hardware realizations. They translate algorithms and design program languages which are carried out by the hardware. This is the linguistic realizations. Computer scientists then need to find important pr oblems and write correct software to solve math problems. This is the application part.
Computer science majors study different topics. They study computer science fundamentals and practice. It can be o perating systems, computer architecture, database systems, telecommunications, and others. There are also other courses so students can be specialized in different applications and computation. Computer graphics, scientific computation, busine ss computation and computer stimulation are some areas of emphasis.
From there, there are other topics. For example, in computer graphics, there is digital cartography, graphics algorithms and multimedia. As a computer science major, students obtain jobs as systems engineers, application programmers, program analysts and sales representatives. Graduates can work with computers as well as with people. This depends on the job you obtain. For examp le as a computer programmer or a sales representative.
There are different companies who hire computer science majors. These are some companies who have done hiring:
Qualcomm Disciple Data
Mit re Command Systems Inc.
Tellals Marathon Oval
GE IBM
Apple National Security Agency

Computer Engineering

The difference between computer science and computer engineering is a very thin line. While the two majors are obviously different, many cannot differentiate bet ween the two. While computer science deals generally with the solving of problems and development of procedures and solutions (algorithms), computer engineering is somewhat of a hybrid or two majors ñ electrical engineering and computer science.
So really, what is computer engineering? Computer systems engineering is made up of three branches ñ software engineering, computer network engineering, and computer engineering design. Sim ply put, computer engineering deals with the technical aspects of both the hardware and software sides of computing. Not only does computer engineering cover the design of computer systems, it also involves the management and maintenance of sy stems.
As stated earlier, computer engineering is actually a mix of the two majors of Computer Science and Electrical Engineering. With the technical knowledge covered under Electrical Engineering, a com puter engineer can understand the individual components that make up a computer system, and can then design and build more advanced systems. With the knowledge and skills gained from Computer Science, the computer engineer can understand how the software and hardware aspects work together. A computer system is worthless without adequate software, as software is worthless without hardware to run it. The engineer must understand both of these topics in order to decide on how much of the workload to place on the hardware and how much to the software.
The problems faced by computer engineers, as opposed to computer scientists, are that both the software and hardware sides of computing bu rden them. For instance, on a network, getting all the computer systems to work together, simultaneously, is a never-ending task. The problems that may arise might be caused from hardware incompatibilities or from software. It is the computer eng ineers task to find the problem, whether it is due to hardware problems or software, and work out a solution, either by programming or designing.
With computer systems engineering, the engineers are always trying to raise the bar of performance. A misconception regarding computer engineers is that they are dedicated to designing system architecture, and have nothing to do with the program design. In reality, the engineer must achieve a balance between the two, in which the tasks of computing are successfully delegated between software (operating systems, etc.) and hardware.
Students studying to become computer engineers cover topics ranging fr om Computer Science to Electrical Engineering, and additionally topics of computer engineering itself. On the Electrical Engineering side of the coin, such topics covered are electrical circuitry, linear systems analysis, linear control systems, and digital integrated electronics. On the other side of the coin, Computer Science, the topics covered include data structures, various programming languages, software engineering, and a grasp of the different operating systems. In computer e ngineering, the courses cover computer architecture, microprocessor system design, and logic and switching circuits. The courseware done covers much ground; spanning from programming to electrical circuits, electronics to architecture.
The major of electrical engineering is a very technical major that would require a baccalaureate degree from a 4-year college. It might be possible to get a job that a computer engineer has chosen by going to a trade school, but there is still a difference between a computer engineer and someone who has been trained to do a specific thing. Generally, the person coming out of the trade school is trained only in one specific trade, while the computer engineer has been trained to cover many aspects of computing along with what the person from the trade school has learned.

Graduates of computer engineering are usually involved in technical areas of computing:
digital systems< BR> computer architecture
parallel and distributed computing
software engineering
algorithms
programming languages
operating systems
computer networks

Typical job titles of a computer engineer in clude:
Digital Design Engineer
Software Systems Analyst
Computer Architect
Technical Programmer
Microprocessor-based System Designer
Integrated Circuit Designer

W hile these lists may seem rigid and constricting, the opportunities of the computer engineer are seemingly endless. The other misconception about computer engineering, like Computer Science, is that a computer engineer?s job consists of a desk, k eyboard, and monitor. In reality, though, many computer engineers find careers in business, entertainment, automotive, medical, and many other fields. The computer engineer can find work wherever computer systems are utilized: consumer applian ces, industrial equipment, medical devices, cellular phones, automobiles, avionics, or financial trading systems. For instance, while an engineer would predictably work in companies such as Microsoft, Intel, and various other computer-related com panies, people don?t realize that computer engineers are also working for companies in the movie industry and video game industry.

A brief list of some companies hiring computer engineers:
Hewlett-Packard
IBM
Noki a
Rockwell Semiconductor Systems
Intel
Microsoft
TRW
Disney
Sega

Far from what people have concluded about computer engineering, the engineer has actual contac t with living human beings. Especially in big companies such as Microsoft or Intel, the engineer is part of one of many teams. The time spent in these teams is most likely equal to the time spent working alone. Others are relying on each indiv idual engineer in the team, and feedback and cooperation are key elements to success.

Software Engineering

Software engineering is the establishnent and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently. In other words, software engineers try to find newer and more sound engineering principles in order to obtain software that is reliable and works effici ently on real machines.
Software engineering methods provide the technical "how to's" for building software. These methods include a wide array of tasks that include: project planning and estim ation (plan what is to be made in all aspects: cost, risks, work tasks, etc.), system and software requirements analysis (involves understanding the nature of the programs to be built), design of data structure (translating the requirements fo r the software into a set of representations that describe various things such as data structure, architecture, algorithmic procedure, and interface characteristics), coding (designing representations that must be translated into an artificial language that results in an instruction that can be executed by the machine), testing (testing the resulted software that is implemented in machine executable form to uncover defects), and maintenance (allowing the customer to handle whatever de fects incur upon him/her with corrective maintenance).

Problem Solving:
There are a few general problems the software engineer has always tried to bring down to a minimal state. They include the following:

Ignorance: Not having enough information from past software has always been a problem. With little historical data as a guide, estimation has been by "seat of the pants" with predictably poor results. Low results result in l ow feedback from the customer as to what works and what doesn't.

Customer Dissatisfaction. Customers become too dissatisfied with the software too often. Software engineers usually develop projects without keeping in mind wh at the customer wants. This is because there is never enough communication between the customer and the software developer.

Software errors. The quality of software has always been questioned. Only recently, has there been syst ematic, technically complete software testing.

Difficulty in Software maintenance. Maintaining software has always consumed very much money. There's always been the extra patch or fix it that cause a loss in profit.

Topics of Students' Study:
There are quite a few courses that students majoring in software engineering have to take. Some courses include:

Software Engineering Mathematics
Concurrency and Distributed Systems
Specification and Design
Specification Methods
Object-Oriented Programming
Concurrency and Distributed Systems
Functional Programming
Requirements Engineering
Scalable Parallel Programming
Concurrency an d Distributed Systems
Object-Oriented Programming
Functional Programming
Specification Methods
Machine-Assisted Software Engineering
Software Development Management
Software Testing

Do keep in mind that these courses are aside from the general education courses every other university offers.

Baccalaureate Degree or Trade School?
One can receive a diploma for software engineeri ng within two years of study at certain schools, but It is usually recommended to take a four year program for a bachelors in science. In fact, trade schools are most likely not to offer career as a software engineer. However, some universitie s may have two year programs. Ex: Oxford University offers a two and four year program.
Most companies will also pay more for a four year student than a two year because of the more experience the four year student may have. Jobs.
Graduates in software engineering have a wide array of job opportunities. Basically, it's because there are so many things that have to do with forming new software. There is alw ays demand for any one aspect of the different aspects of software engineering. If working for a big company, a software engineer can be part of a big software project that requires the work of many. Microsoft may require one software engineer ing group to formulate just one tiny aspect of its Word program. There are always government jobs if corporations are not to one's liking. Nasa might hire software engineers for making a guidance system easier to use. The possibilities are ver y grand for software engineers as long as they always try to solve the problems listed in the previous pages.
Software engineers most likely will always be working in groups. Basically, because more people get more things done quicker. Most corporations will have software engineering groups working on assigned projects. Of course, within the group there may be different positions/ but each person puts in his/her part. The more experienced engine er will most likely be placed as mana.ger of a team, while others just work for the experience and the challenge of solving problems.
Since software is always applied to some type of machine, software e ngineers most likely do work with computers, which operate the machine if the computer is not the machine already. They do work with computers constantly but not solely. A lot of their work goes into planning and problem solving to formulate some thing that will be implemented onto a computer.
There is always work for a competent software engineer at almost any place. There are big corporations like Microsoft, IBM, and Hewlett Packard who, of cou rse, hire software engineers. There are even government jobs that demand the formulation of software applications for what ever need. There is always job openings for software engineers.

Management Information Systems

Management Information Systems (MIS) is a very diverse major within which a person can get a very diverse number of jobs. The main concentration of this discipline is the use of different applications in the business world. A MIS person will be given a problem, say an accounting problem and he or she will have to either find an application on the market that will solve this particular problem or he or she will have to write a program that will solve this problem. Speaking out of experience, my department when I worked in MIS was given a piece of software that enabled the network administrator (also an MIS major) to catalogue what each employee was using on his/her machine and be ab le to tell the administrator whether or not it was an up - to - date version or in need of replacing. Our department had to figure out whether or not this software was worth the hundreds of dollars it would take to buy enough licenses for this software or if this could be done manually. After a lot of testing, my boss, had to then give a presentation on whether or not this was worth the money.
There are many topics studied in this discipline, m ost of which are in the business field. However someone who wants to be in MIS must also take some of the beginning csc courses such as 118. However, purely computer science majors may also be hired into the MIS field. The corollary to this wo uld be a business major who can also be in the MIS department. This is mainly because each MIS department consists of usually more than one person. One may be a business major while the other may be a computer science major, they shall then bo th work together to do the function of the MIS department.
This degree can be earned in both a trade school and a full university. The main difference is that when one graduates from a full university, one will have all the requirements filled to become a full MIS person. Whereas somebody with a business degree may go to trade school to learn some computer science and then become an MIS person. With this degree, many jobs can be acquired. These jobs range from a pure systems administrator to a manager of a MIS department. For instance, the department I worked in had a manager (our boss) and then the underlings. One who was purely a network administrator. This person both wrote some of the UNIX programs which managed our backbone and installed new servers into the system. The other jobs in the department were ?desktop weenie? one who mainly maintained all of the desktop machines of each of the employees, and software admi nistrator, one who maintained a list of all the software in the company and kept track of who had which and how many licenses were in use. My job as an intern was to help upgrade all the other users to the newest version so the company wouldn?t b e put out of business because of illegal copies of a certain piece of software.
Graduates are hired by almost all new and old companies. Virtually all companies now have a MIS department simply because almost all companies require a network of computers to complete their function. The smaller the company the more skilled a person has to be in all areas of the MIS discipline. If one were to work for a larger company one could specialize in on ly networks or only management. However when in a small company, the MIS department may be as small as only one person who had to both manage the network and keep everyone?s desktop machine in running condition.
To work in the MIS depa rtment takes a lot of people skills because an MIS person is either on the phone a lot helping a user out with a network or software problem or actually in a person?s office training that person how to use the new software that the MIS departm ent just implemented on the network. Also one must also be able to make presentations to the higher-ups in the company in order to justify the cost of a new piece of software that would help greatly in the administration or efficiency of the comp any. Teamwork is quite essential when in a large company environment because of the variety of specialties that a person may have.
Therefore, in the MIS department there can more than just an MIS maj or. That is why this major can take the form of both a computer science major and a business major.


The Differences and Similarities

There are several major differences b etween each of these disciplines. However these differences can be described quite generally. As the list progresses the skill level increases along with the knowledge needed. A simple programmer is the lowest and one who studies this discipli ne must know a language or several languages quite well however the problem solving skills and management skills are not needed quite as much. A computer science major then must know the problem solving skills as well as several languages in o rder to complete the task set out for him or her. Similarly, the software engineer may need more problem solving skills as well as management skills in order to manage a project that he or she is engineering. Compute engineering is one of the mos t different out of all the disciplines because this one deals with both the hardware and the software side of the computing world. A computer engineer must know how the electrons are being pushed around in the computer and also know how to con trol them by means of both hardware and software.

Bibiligraphy:

http://www-personal.engin.umich.edu http://www-personal.engin.umich.edu
http://www.pcs.cnu.edu http://www.pcs.cnu.edu
http://www-soe.ucsd.edu http://www-soe.ucsd.edu
http://www.msoe.edu http://www.msoe.edu
http://www.ece.iit.edu http://www.ece.iit.edu
http://www.latrobe.edu.au http://www.latrobe.edu.au
Landis, Raymond B., Studying Engineering: A Road Map to a Rewarding Career, Legal Book Distributing, 1995, pp. 48, 59
Whiteford, Mary, 1997-1998 Catalog, Calpoly San Luis Obispo, Cal Poly San Luis Obispo, 1997, pp. 195-197, 351-352, 358-363, 374-379