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