Uploaded by snowdenrin.it

Unit 12 Computer Science

advertisement
Computer Engineering
Computer Engineering is about making computing systems — not just
things that look like computers, but computers embedded in all sorts of devices from
cars to coffee makers. In many ways, it is similar to a double-major combining
electrical engineering and computer science. However, it is not just about computer
hardware and software. It is about understanding how the various hardware and
software components interact, so that you can improve the pieces and make them
work better together, thus improving performance and/or giving the system new
capabilities.
Computer Engineering combines the disciplines of electrical engineering +
computer science. You will learn about Computer Science and how programming can
be integrated into hardware and form embedded system solutions. You will also
learn how transistors work together to formulate chips which are commonly used,
you will also learn about data structures in your curriculum and how they make the
programming world go round and you will also learn about Digital logic /Systems
Design and understand how verilog /vhdl works with hardware and how to program
fpga…. The list goes on and on intl Signals and Systems , AI machine learning and
every branch you can think of in the realm of computing. I know I never answered
what is computer engineering? but the real question I think is what isn't computer
engineering ? it's a great field and I love it wouldn't change a thing.
My BS is in Computer Engineering, MS in Computer Science, and PhD in Electrical
Engineering. So I’ll answer this question from my experience in all three fields, and I’ll
assume this is for choosing an undergraduate major at a US college.
From a Bachelor standpoint, my personal view is that computer engineering is a
medium level difficulty in terms of taking quantitative and technical courses, with
computer science being easier and electrical engineering being harder. All three
majors overlap each other in a lot of ways.
Quantitative Courses
For most universities, computer engineering will require the basic core math courses
of any engineering major: trigonometry, calculus, linear algebra, differential
equations, probability and statistics.
Most universities will require additional courses for computer engineering in discreet
mathematics / Boolean algebra, introduction to signal processing, and an
introductory course to algorithms.
Technical Courses
20–40% of core courses will be computer science: programming and data structures,
software engineering, operating systems, etc.
20–40% core courses will be electrical engineering: introductory and intermediate
electronic circuits (DC/AC circuits, operational amplifiers, steady state and transient
response, device models, etc) along with circuit labs.
The rest of the core courses will focus on a subset of the following computer
engineering topics:
Assembly Level Programming
 Verilog/VHDL Coding
 Digital Signal Processing
 Digital Circuit Design
 Computer Architecture
 Microprocessor Systems
 Embedded Systems
 VLSI Circuit Design
 Computer Assisted Design
 Computer Communications
And as with most engineering majors, in the last year students take a senior design
project lasting 1 or 2 semesters.

CS vs. EE vs. CE?
Overall, to study computer engineering requires a very logical and technical mindset.
It’s not a heavy math major, but you will dive very deep into digital logic. Since
computer engineering integrates computer science and electrical engineering you
will also be exposed to a lot of programming and electronic circuits.
Due to this integration of multiple fields, computer engineering makes for
the perfect major for those who are on the fence between these fields. After
graduation you can easily switch hats and become an electrical engineer or a
computer scientist in industry or graduate school with minimal additional learning.
Furthermore, if you’re a very good student, you can even double major between CS,
EE, and/or CE and really strengthen your background.
Conclusion
Prospective students should pick a major based on what motivates them the most. If
you like programming, algorithms, and software engineering you should study
computer science. If you like electronics, electromagnetism, and power systems you
should study electrical engineering. And if you like digital logic, microprocessors, and
trying to understand what makes computers tick on a hardware level then you
should study computer engineering.
If you have no interest in computers then you’re going to have a bad time studying
computer engineering. The level of difficulty of a major is not only based on the
amount of work and the quantitative/technical level of required courses, but also on
how passionate students are on that topic. Pick a major that motivates you to
work hard towards it because it fascinates you. Not the other way around.
From those who haven’t opted for this stream, it’s all about “programming and using
and creating software, websites and stuff”. Yes, programming and web development
are the pith of the entire course but there is way more than that, stuff that an
average student might not find useful at all until he/she wishes to really contribute to
the field. If you have learned the subjects like automata theory, operating systems,
microprocessors, computer networking, computer organization and architecture etc.
properly, you may even perhaps come up with a programming language of your own
someday.
If you are keen on programming and have a nag for problem solving (not
mathematics really, real life problems), you are going to have a great time and might
even end up graduating with a hefty package. Subjects like structured programming
approach (which deals with C) and object oriented programming methodology (they
could have just named it Java programming) intend to teach to how to code.
Subjects like data structures and algorithms, analysis of algorithms are the ones
which enhance your coding skills by teaching you various techniques of
programming. If you wish to become a good developer, as in, if you want to build
products that really outsmart the others, you would better make sure you study
these well.
It’s not only about programming and development. Companies invest as much
money in security of their businesses/products as they do in building it. There are
courses in computer networks and network security, both theoretical and practical
(interesting too!). You can easily find students who go on to get certified as a
network engineer just because the field is really vast.
Not everyone is good at programming, but some might be excellent at designing the
software. Some could be good at testing a software to see whether it functions
correctly when subjected to extreme conditions. Some could be good at handling
important data, which is usually very valuable to organizations. When I talk about
data, it comes in tonnes of forms and dealing with all of them needs trained experts.
In computer engineering, you have database management systems and advance
DBMS to teach you all about databases.
There are some non-technical but equally important subjects as well. In some
universities or autonomous institutes, they teach economics, business ethics and
communication skills separately. There are subjects like structures and object
oriented design and software engineering, which aren’t very technical. In fact, I
happened to loathe them because it was nothing but all theory! But, they are
important because they teach us what actually happens in the industry and how does
it happen when it comes to IT. You might not be good at the technical stuff but you
could be good at business and analysis. These subjects are all about that.
I hope I have answered your question rightfully.
Computer Engineering is a sub-field of Electrical Engineering.
You study hardware and software related issues for anything that is related to
computing, such as: computer architectures, compilers, operating systems,
programming languages, application-specific circuits, computer graphics, VLSI
design, etc.
Really it all comes down to:
do you want to work on electrical circuits? Do you want to work with LOW-LEVEL
programming (assembly coding, processor risc/cisc). do you have STRONG interests
in computer architecture?
Do you want to become suicidal?
If your answer is yes, yes and yes, then sure it’s worth it.
As for me, I went into compEng thinking I wouldn’t want to just do pure
programming and I somehow survived every semester.. The thing was that with
computer engineering, it’s almost like you have to study it all the time. Even when
you’re not in school. A lot of students I felt like they lived and breathed computer
engineering. Like they just knew there stuff before we would even go over it in a
course..
With engineering it’s a lot of math. I loved that part but what I didn’t love was
assembly language.. or constructing circuits on a breadboard manually by hand.
Nope. Wasn’t for me. I was clueless. High-level languages? C, Java, VB.NET? Sign me
up! It really depends on you. If you feel like You want to write code and do all this
other stuff on the side. Go ahead.
I personally found CompENG to be more work. Compsci is much easier for me
because it had just a strong focus on programming. Where Computer Engineering
felt more all over the place. Compsci is more hands on Solving puzzles and Building
things through writing logic. In the long run I don’t think CompEng and CompSci
differ too much in the salary range though from what I seen, compSci has more job
oppurtunities.
I think these type of STEM majors are pretty worth it. But it’s only really worth it if
you like it. And the only way to know for sure if you like it is to try out a couple of
courses. What I do know, in my personal experience is that CompEng is more
challenging. So keep that in mind.
I have a B.S. in Computer Engineering and I’m currently doing a Master’s in
Computer Science. I originally went for Computer Engineering because although it is
fascinating to be able to write some lines of code and let the machine work out its
magic (technology is magical to me), I believe it is important to have a basic
understanding of the physical components of the incredible piece of hardware that
you work with every day.
I’ve often felt that in many instances Computer Engineering is a link between
Electrical Engineering and Computer Science. What I like about Computer
Engineering is the extensive use of calculus and what I like about Computer Science
is the use of abstract logic to solve problems.
In my opinion, having a Computer Engineering background before pursuing
Computer Science provides a solid backbone to appreciate the intellectual ingenuity
of the computational world. If you can dab in both fields, you will end up with a
richer experience overall.
Computer engineers make computers faster, smaller, cheaper, and smarter. They
design and implement hardware for next generation computing systems; design and
analyze computer architectures; design and implement software for applications;
design and analyze computer communication system architecture, protocol, network
and hardware; design processors and algorithms for secure, efficient, and error-free
transmission and storage of audio, image, and video information; and design manmachine interface systems for factory automation, control, and communication.
I received a BS in Computer Engineering from Clemson University in 2014.
I interned at an embedded systems design and manufacturing company. I was a test
engineer and learned all about digital and analog I/O. My tasks ranged from writing
test plans, testing hardware, and all the way to assembling prototype systems for
customers. This was a hardware type gig...
I used this internship to leverage my way in to a full-time job at The Boeing
Company as a software engineer. I was working with MySQL, database design and
website development. This was a software type gig...
I started my company at the same time I started working at Boeing. I started with iOS
apps to boost my object oriented programming skills (something NOT taught as a
computer engineer) I have written two apps, sold one and am priming the other for
sale soon. This is a software type gig...
After 7 months of software development at Boeing, I transferred internally to a role
as a Robotics Engineer. I worked hand and hand with Kuka robots, even went as far
to use a rivet gun to assist in the completion of the first engine inlet built by a robot.
Computer Engineering was super helpful here because I was on a team of
mechanical engineers, where they taught me Mech Engr principles and I taught them
code. This was a hardware gig..
Now I am running my own research company to build the first Thought Recognition
system. This is a beautiful blend of software and hardware, where I use cutting edge
hardware and state-of-the-art software principles to make my prototype. Plus I get
to work with a ton of people smarter and more skilled then my self. I was able to fit
right in because the open source project I help with needed a Node.js module
written for communicating with an OpenBCI device (it measures brainwaves). This
required using all those bitwise operators and such that you learn so well in
computer engineering to turn 1s and 0s into numbers a web developer could use.
Computer Engineers can do it all, plus our major is harder than computer science, so
you can hold that over your buddies too :) We are the blend and fold between
software and hardware. I always explain our major with this simple example: The case
for your laptop was designed by a mechanical engineer, the battery, power plant,
and circuits were designed by electrical engineers, everything you see on the screen
(i.e. UI) was designed by computer scientists, and computer engineers fill in the
voids, such as making sense of a key being pressed, or parsing a string of binary
data, to the operating system that runs the entire software system.
Trust me, you would learn a lot! It also depends on the curriculum being followed in
your university.
When I did my bachelors, it all started with Fundamentals of Programming. You
would learn a variety of programming languages. Over the period of my course, I
was trained in C, C++, Java, SQL, PL/SQL, Perl, Python and C#.
I also learned about Data Structures, Design & Analysis of Algorithms, Object
Oriented Programming, Operating Systems, Database Management Systems,
Computer Networks, System Architecture, Principles of Compiler Design, Theory of
Computation, Formal Languages & Automata Theory, Software Engineering, Object
Oriented System Design, Artificial Intelligence, Open Source Softwares & Frameworks
and Cloud Computing. I believe that most of the universities are now offering
courses on Big Data and Internet of Things as well.
Apart from these, you would also have to learn a lot of Mathematics as well.
Probability & Queuing Theory, Numerical Methods, Discrete Mathematics etc., are
the prominent ones.
If you are someone who is aspiring to take up a bachelors in CSE, then most of these
would sound Greek and Latin to you, now. But most of these subjects are very
interesting and easy to learn. You may google more about these subjects and what
you learn in them.
Always remember, CS is best learnt when you learn it by yourself. Your lecturers or
professors can spoon feed you the concepts, but how you implement them in real
time is upon you. Hands on is the best way.
As an electrical Engineer with more than 11 years experince and a computer
professional programmer, enthusiast and network admin, these are my findings:
1- Electrical engineering opens doors to understanding other fields especially Physics
and Mathematics, this can help you if you want to learn other scientific fields for the
sake of it.
2- EE can be harder than CE as I have experience in both fields (self-learning CE is
simple, EE is MUCH hard)
3- EE work environment later is harder than that of CE , electrical personnel deal with
much higher voltages and bigger equipment and WORK IN THE FIELD MOST OF THE
TIME , CE on the other hand deal mainly with data transfer medias and work in
OFFICES MOST OF THE TIME.
Computer Engineering-You can consider it as an association between between
computer science and electrical engineering .It deals with how the computer and its
devices interact regardless of the software that is installed. It is up to designer to
design and create devices that can actually communicate with established hardware.
Its main topics include:





Digital Logic Electronics
Microprocessor Programming
Algorithms
Digital Signal Processing
Embedded Systems
VLSI Design and Manufacture
First off, any good CE program should include a lot of software.
Second, any good CS program should include a lot of hardware.
The reality is that you’ll get a lot further in the software field if you have a good
grounding in hardware (anything involving operating systems, system software in
general, real-time systems, device drivers, high-performance computing, etc. requires
a fairly intimate knowledge of hardware architectures).
Don’t change your major because you’re having problems with your hardware
courses. Get help with them. Now if your interests lie more toward software than
hardware, then look to your selection of electives first, and then to changing majors when it comes to the job market, it really doesn’t matter which degree you have either way you should leave school with a basic set of both hardware & software
skills.
These are just job titles and fields of study. Job titles in the software industry are not
standardized. A software engineer, software developer, software programmer,
software design engineer, firmware developer, firmware programmer, etc. might all
do the same type of work at roughly the same salary, but have different job titles at
different companies or at different times during their careers.
My degrees are both in Computer Science, but my job titles have included Senior
Director of Software Engineering, Manager, Lead Senior Software Engineer, Software
Development Engineer, Software Design Engineer, Software Developer, Programmer,
Consultant, among many other job titles in development and management. Whether
the word “engineer” appears in the job title means different things in different
organizations. And my Computer Science degrees didn’t prevent me from holding
several positions with “engineer” in the title. But I wouldn’t have cared if “engineer”
was in the title or not. It is all about the work, not about the job title.
Don’t worry about job titles. They really don’t translate well between different
organizations. Focus on what you have actually done, on what you actually can do,
on what value you can bring to an organization, and on continually improving
yourself and honing your craft — no matter what your past, present, or next job titles
might happen to be.
Computer science and engineering is a very large field of study. But normally in any
computer science course you will be learning the following topics.
Programming: Here you learn the basics of any programming
language and how to code with it. Here actually you learn how to
make computer do things. The things can range from simple
mathematical computation to automating a boring task. Usually in
most of the courses the language taught here is C. But, now most of
the colleges are shifting to python because of its rapid growth,
usage and simplicity.
 Data structures: Here you study various structures of how can data
can be stored and accessed. Where to use a particular data
structure. These data structures will be used in various fields of
computer science and some non-computer science fields as well.
 Design and analysis of algorithms: Here you learn about various
methods you can use to solve any programming problem. You also
learn how efficient those algorithms are and how calculate
efficiency. Here you also learn some basic algorithms for searching
and sorting which are the two main thing in the field of computer
science.
 Computer organisation and architecture: Here you basically learn
about the internals of computer. Here you learn about how memory
is organised in a computer. How the computer communicates with
its devices etc
 Operating Systems: Here you study about what all an operating
system (incase you don't know what an operating system is
Microsoft Windows and Android are operating systems.) includes
and how it is designed.
 Computer Networks: Here you learn about the various concepts
involved in communication between two computers. Steps in
between. How to make the communication secure (it also taught as
a different subject in the form of Information and network security).
 Object oriented concepts: This topic teaches a easy way of
representing real life entities in a computer and perform various
operations on them.
Above are regarded as the core computer science subjects every computer science
student must know. Here some other subjects taught along with them.

Artificial intelligence: A huge field of computer science dealing
with the design of intelligent algorithm which help a computer to do
intelligent tasks which once thought that only a human can do.
 Pattern recognition/Machine learning: A sub-field of Artificial
intelligence which deals with teaching a computer do particular task
by training it.
 Mathematics: Computer science and mathematics go hand in hand.
Various subjects taught here are descrete mathematics, probability
and statistics, theory of computation, Mathematical logic, linear
algebra and calculus.
 Web technologies: Here you will learn various concepts and
languages used to build a website.
 Database management: Here you learn any of the databases and
how to manage it. Usually, relational database is taught in most of
the colleges.
 Software engineering: Here you learn various methods of software
development and deployment processes. You also learn steps
involved in software development such as collecting requiments,
analysing them development and testing and deployment.
 Linux: Here you study internals of Linux. Linux is an operating
system. So, you can say it is a case study of an operating system.
Along with the case study here you learn various commands and
shell scripting. Here you also learn about methods in C/C++ which
will help you in controlling and analyzing the operating system.
 Compiler design: Here you learn about various steps involved in
compilation of a program and how they are implemented.
And there are various other subjects like distributed computing systems, Big data,
cloud computing, Optimization techniques, software testing etc which are taught in
some of the selected colleges.

I graduated from a Computer Engineering Technology course within the past 5 years,
the course took about 4 years to complete (with co-op semesters) and covered a
variety of different areas.
We covered:



AC/DC Circuits
Electronic circuits
o This specifically refers to learning how different
components work within AC/DC circuits (ie 555 timers,
logic ICs, etc.).
Robotics
We worked on a smaller version of a robot that was able
to pick things up and move them. It was a basic version
of what you’d see in a factory moving boxes, or product
around. We learned to control it manually with a remote,
and also how to program it with pathing and patterns (ie
Move to position A, grab box when it gets there, lift up
and move box to position B, drop box, return to position
A).
Networking
o Configuring enterprise-level routers and switches, in our
case Cisco equipment.
o Network design on paper, including pricing of
equipment.
PLCs
o Programming and working on real-world PLCs including
making visual interfaces (HMI - Human Machine
Interface).
Embedded Programming
o Programming microcontrollers alongside circuits to
produce various results (ie when button A is pressed,
make lights flash 4 times, when A is pressed again, make
lights flash 3 times, repeat).
Server Administration
o Working with Linux and Windows servers.
o Working with VMWare software to create small
infrastructures and various types of virtual machines.
Digital Logic
o Working with logic operators on paper (AND, OR, XOR,
etc.).
o Using real circuits with logic ICs (as mentioned above) to
create outputs using LEDs that reflected our calculations
on paper
o Boolean algebra
Circuit board design
o Working with software to create circuit board designs
and then ordering those circuit boards from a
manufacturer and placing them in a real working project
Web Programming
o HTML, CSS, JS, PHP
Co-Op
o








We required, if I remember correctly, two semesters of
co-op minimum, but were given the opportunity to do
four semesters. I did four semesters of co-op.
The drop-out rate for this program was rather high from what I saw, with very few
(under 10) students remaining in the later semesters that were in my first round of
semesters. The entire class was, by my estimation, under 20 students in the last year.
ompanies don’t hire degrees; they hire people. They don’t look for specific degrees;
they look for specific skills and interests.
o
If you major in something you actually like, you are more likely to invest the effort to
master the material, which means you will develop the skills that the major teaches
better. And as a bonus, you’ll develop skills that you actually enjoy using, which
means you’re better prepared for jobs that you actually like!
(There’s an inexhaustible market for both computer scientists and computer
engineers. There isn’t a wrong choice; at most, there is a wrong choice for you.
Computer Engineering Versus Software Engineering. I was over half-way complete
with a Master’s in Software Engineering - this was 15 years ago. At that time, there
was a lot of debate in academia about the legitimacy of the degree Software
Engineering (SWE). Purists argued that Software is not even close to the rigor and
discipline of a true engineering degree.
Even back then, I felt apologetic for the SWE degree, yet, having the word
“Engineering” in my degree title - I felt, would open doors for me. My true thoughts
are that Computer Engineering deserves the engineer suffix much more than
Software Engineering does. Moreso, the job opportunities, I feel are greater for
Computer Engineering.
Bottom line, both degrees will serve you well, it is up to you as to how you apply
yourself to them in your studies, and eventually in the job market.
Computer Engineering is a field of study that generally combines topics in
computer science and electrical engineering with a focus on providing all the
building blocks to develop computer hardware and its accompanying software.
At our University, the focus of the Computer Engineering degree is digital design,
microelectronics and communications systems. Our graduates generally end up with
semiconductor and microprocessor manufacturers or software development
companies focusing on device drivers.
Computer science is practically a branch of mathematics, or at least was classically
seen to be. It encompasses:


Discrete math (graph theory, combinatorics, logic)
Programming language theory (type theory, compilers, languages)









Information theory (crypto, errors, compression)
Theory of computation (complexity, crypto, automatons)
Algorithms & data structures (can also include complexity via algo
analysis)
AI (machine learning, robotics, pattern recognition, data mining)
Parallel & distributed computing (concurrency,
communication/networks, HPC)
Architecture and systems (digital logic, OS, networking, systems
arch.)
Computational fields (scientific computing, numerics, could also
include graphics/visualization)
Graphics (computer vision in some cases, geometry)
Software engineering
Actually, not everyone would say that software engineering is encompassed by CS,
but I think it makes sense. The thing to realize is that in software engineering, you're
actually building something. It's a legitimate engineering field. The things you have
to worry about are similar to other engineering fields, and they include:






Software architecture and design
Scalability and maintainability
Validation, automation, and testing
Quality assurance
UI/UX
Systems (sometimes)
So, you'll notice that you can't do anything in the second list without knowing a few
things from the first list. CS gives you the knowledge base, SE is applying it to
building real-world stuff. It's like the difference between a physicist and a
mechanical, electrical, civil, nuclear, or aerospace engineer. Yes engineers use physics,
but there is a whole lot more to engineering than just theoretical calculations,
equations, and some experiments.
I asked myself this same question in high school -- I chose to go the Engineering
route at CMU. My reasoning was that I could teach myself Computer Science more
cheaply than Computer Engineering; CS requires a computer and books while
Computer Engineering requires more costly hardware. I felt I could teach myself CS
while I could not afford the resources to properly teach myself CSE.
At CMU, I majored in CSE but decided to additionally take the full CS curriculum.
After CMU, I switched to Computer Science at UC Berkeley for my PhD. I've often
looked back, and I think I made the right choice -- CS teaches us fundamentals that
last longer than the knowledge I was taught as an engineering student. However, the
engineering degree was incredibly valuable -- I experienced classes and gained
knowledge that a CS degree would not have afforded, including: materials science,
optics (physics), etc. The combined degrees have given me the knowledge of lowerlevel systems (from wire-wrapping, Verilog, implementing real-time operatingsystems, etc.) that has greatly complemented my CS knowledge (software
engineering, design patterns, CS theory, etc.)
If you need to choose one, I'd recommend computer science with a focus on number
theory, cryptography, distributed systems, machine learning, approximation
algorithms and software engineering.
A CE degree will give you a deep understanding of how computers physically work,
but you’ll discover that there are MANY different directions that you could branch
out towards with the topics learned. I think a better question to ask yourself is “What
really interests you about computers?”, which will help point you in the direction of a
“sub-field” related to CE.
To rattle off some examples:
Sub-fields within computer engineering that lean closer towards electrical
engineering involve making components comprised of specialized circuitry to
accomplish unique tasks, such as developing various execution units on a computer
chip or developing the circuitry of embedded devices. Your niche as a CE here would
be a more complete understanding of what the desired inputs/outputs of the circuits
should be, to be used in higher level concepts related to programming.
Those sub-fields closer to computer science might lean towards designing the
architectural layout of a computer chip, programming in some of the lower level
languages used in embedded electronics, or perhaps working on compilers that
need to ultimately communicate with a computer in its native binary machine
language. Your niche as a CE would be a more complete understanding of how the
software turns into a language that the processor actually reads and understands,
and you would have a greater expertise of what’s occurring “closer to the metal” (at a
physical lower level).
The sub-field of computer engineering which comes closest to mechanical
engineering is the field of robotics, and more specifically the fields of machine
learning/AI in conjunction with physical sensors taking input and deliver desired
output is what brought me to seek out a computer engineering degree. Your niche
as a CE here would be bridging the gap between knowing what inputs/outputs are
needed for the system to accomplish a task (mechanical), and how to actually
implement it and get it done via electronics.
Leaning towards chemical engineering, you could pursue battery technology as it
relates to powering computer systems or developing the next best material(s) and/or
processes to stamp computer chips out of.
Staying closer to the field of pure computer engineering, you could become the
resident expert of a company-wide computer network, which could vary anywhere
from a support IT role to a full network administrator and/or security expert. These
are to just name a few sub-field examples to help identify what interests you, and to
orient a path towards the sort of problems you think you’d want to work on every
day.
It depends on you and your interests.
Some computer engineers dive into the belly of the beast and specialize in ASIC
design. From what I’ve seen, there is more demand for a position like this than there
are positions. As it becomes cheaper to make chips, this may change.
Similarly, some go into programming FPGAs. The only job I’ve had so far where
FPGAs were when I worked at Cisco. They were used for routing lower layer data
traffic on a DOCSIS 3.0 endpoint. Like ASIC design, less demand but don’t let that
stop you.
Some go into programming firmware and operating systems. There are more
opportunities for you embedded Linux programming than ever before. (Think
Raspberry Pi) they’re only going to get bigger. Programming firmware takes a special
stet of skills considering its programming under extreme constraints. I highly
recommend to find an experienced mentor if you’re thinking about firmware or
operating softens work.
Some go into system architecture and design. These types of jobs involve connecting
circuits together to make a full product. (Schematic design and layout) This is my
personal bread and butter but it’s specialized. If you like tinkering with signals and
your physical objects, this one is for you.
Finally, any type of software engineering above the firmware:operating systems level.
This could be an app on a computer, big industrial application, phone app, web front
end or back end.
My best advice is to give every aspect an honest try and start to hone what resonates
the most. Work on projects outside of school. Break things, fix em, and build cool
stuff yourself.
I believe an engineering degree, especially in electrical engineering is more valuable
than pure computer science degree.
I graduated with a BSEE back in the early 90s and will say that almost every electrical
engineer I know is involved in some sort of software job. I have worked in a couple of
industries, factory automation and telecom. The factory automation job was an
interesting mix of electrical / mechanical engineering, project management, and
software development. I left because of all the travel. I was on road 80–90 days a
year. Now, in telecom I started out in engineering where I was responsible for
telecom equipment design and installation. After a couple years, I took another job
at same company supporting IT systems behind E911. So, I understand computer
science might provide a little more background in algorithm design, but at least
electrical engineers can design systems AND program them. Flexibility is a good
thing in my book. Especially with all the IOT stuff coming on board in the near future.
That will largely be a mix of pure engineering and software development. Now I will
say, there are some really complex algorithms being used to catch and prevent cyber
crime, stop spam, figure out consumer behavior, etc. The computer science major
might be a little better prepared for those complexities right out of school.
know that you known it is an electronic machine but at this time the definition of
computer is that it is a device that perform calculations, operations and processes
based on the reference given by a hardware or a software program. It is the word
which is derived from the Latin word”computare”. Its means to calculate a
programmable device. Computer device can’t work or do anything without a
program. It is the word which is referred also as a internal memory. Charles Babbage
is known as the grand father of it.What is the full meaning of it ?Common operating
Machine.Mostly Peoples say that the full meaning of computer is Common operating
machine which is purposely used for educational and technological Research. It is
device is generally used to perform logical operations and arithmetic
automatically.What are the uses of it?There are many uses of computers . Some of
the following are the given below:In earlier year, the most use of computer for
calculation, but in this time computer is used for many works and research.it is used
for Study.Used in the banks.it -&nbspThis website is for sale! -&nbspBanks Resources
and Information.’s used for booking tickets online.Used for online http://teaching.It’s
used for constructions works.Used for creating PROJECTS.IT’s used for making
websites.Used in the http://hospital.It is used in all companies. etc..What is the full
form of its?If we search on the google what is the full form of it then there are many
results will come of “the full form of computer”. But all the full form of computer are
different. We are not this saying that the full forms of the computer is not right, all
right but the main full form of computer we have given
below:CCOMMONLYOOPERATINGMMACHINEPPARTICULARUUSEDTTECHNICALEEDU
CATIONRRESEARCHTypes of computerThere are four basic types of computer are
given below:Mainframe computerSuper computerMinicomputerMicro computer1Mainframe computerIt is colloquially referred to as “big iron”. It is a computer device
which is used for a large information processing jobs.They are used for institutions
and universities and many more.2-Super computerA computer which is used with a
high level of performances compared to a general purposes computer device is
known as a super computer. Super computer are known as a professional computer.
It is measured in floating point operation per second( FLOPS) instead Million
Instructions Per Second(MIPS).China have ” there are more than 219 super
computers”. United states have 116 super computers. Japan have more than 29
super computers. India has 11 supercomputers from the top of the five hundreds
super computers in the WORLD.IT - High Technology Craftmen is used in the field of
computer science.3-Mini computerMini computers are used for scientific and
engineering computations and it is used for business.4- Micro computerA micro
computer is a microprocessor computer and as its central processing unit.Parts of
computerThere are four main parts of the
computer.monitorKeyboardmouseCPU(Central Processing Unit).AdvantagesIt can
quickly and easily store and process the data from one device to other
device.Connects you to internet very easily.You can make online money to using
computers.Computers can help you to learn anything which you want. and many
more etc.
I know a bit of the theoretical underpinnings of how computers work: Boolean logic,
logical circuits, simplified Intel 8502-style hardware architecture. I have a very highlevel acquaintance with more modern architectural concepts.
I understand the basics of operating systems, execution environments, network
protocols, compilers, and interpreters. I know several programming languages pretty
well, and can more or less figure out what a computer will do given a piece of code.
But all of that is barely scratching the surface. The size and complexity of this field
have exploded in the last 30 years, to the point where if anybody tells you they
“understand computers” they’re lying.
People spend years studying just to understand compiler optimization, or microcode
architectures, or file systems. The depth of knowledge that you need to really
“understand” any of those is staggering.
There are certain aspects of computers I do not understand.
For example, I’d personally have a hard time getting feature size down to 14nm; I
could probably do 65nm with difficulty, but I’d have no difficulty with 180nm, which
is one of the common feature sizes for Pentium III and Xeon CPUs. It’s in theory
doable with electron beam lithography, but larger sizes are doable with standard
immersion lithography.
But I understand all of the solid state physics involved, and most of the processes,
including how you’d build a silicon wafer production facility — hint: you can never
turn them off, because if you do: might as well pack it in, you are building a new one.
You probably also don’t want to shut down a fab, either; a half hour power outage at
a Samsung fab earlier this year destroyed about 3.5% of the NAND production for
March of 2018.
So probably one of the first things you have to build is somewhat ironically going to
be “an insurance industry”.
I also understand how to do necessary refining and intermediary work for things like
the Bessemer process for steel screws, and for aluminum refining using the Hall–
Heroult process (and tons of electricity) for the cases.
And, of course, I know how to build operating systems and applications to run on
them.
What is a computer?
Basically, a computer is an electronic machine that can carry out calculations and is
able to store information.
In order to do these things, a computer uses different programs for specific tasks. For
example, it has a word processing program for typing letters and a program called a
Web Browser for searching and browsing the internet.
Computers also come in different shapes and sizes e.g. laptops, desktops and tablets
but they are all able to perform the same or similar tasks.
Beginnings
The first programmable computer, designed by Charles Babbage in the 1830s, was
mechanical rather than electronic. Unfortunately it was never built, and it wasn't until
World War II that British code breakers built Colossus, the world's first
programmable and fully electronic computer.
However, Colossus still didn't include a number of elements present in modern
computers. Finally, after the war, a complete computer was built in Manchester by
the great mathematician Alan Turing, who had worked with the code breakers.
From science project to everyday tool
Computers were initially of interest only to scientists and engineers. But from the
human–computer interaction theories of mouse inventor Douglas Engelbart in the
1960s to the release of the Apple Macintosh computer in 1984, they became easier
to use and more capable of tasks that ordinary people could carry out.
Now, with the spread of personal computers (PCs), mobile phones, notebooks and
tablets, computers have become part of our everyday lives. It's almost impossible to
imagine modern society without them.
Highlights in the development of the computer
Computers started out as huge racks of glass valves and wires that
occupied multiple rooms and weighed tons. Now they can fit on tiny
microchips that are barely larger than an ant and are millions of
times more powerful than the first ones.
 Computers have a huge variety of uses. Originally employed to
break enemy codes and calculate artillery trajectories, they're now
used for everything from word processing and spreadsheets to
mobile phones and playing games.
 The number of computers in the world has risen incredibly. Urban
myth has it that, in the 1950s, the head of IBM estimated a global
market for five – yes, five – computers. But within the next few years,
it's expected that there will be 2 billion computers – and that figure
doesn't even include computers built into other devices.
 In the late 1960s, the American government created ARPANET, a
network that allowed the few university and military computers in
the US to talk to each other. This eventually turned into the internet,
a global web that connects well over a billion computers – and
people – to each other.
A computer is a machine that performs tasks and calculations based off a
set of instructions, or program operations.
Electronic computers were introduced in the 1940s and they were huge
machines that actually required a team of individuals to operate.
In contrast to early computer systems, today's computers are vastly smaller
and amazingly powerful. Not only are they thousands of times faster but they
are small enough to fit on your desk, on your lap, or even in a pocket.
In a nutshell computers work through an interaction of physical hardware
components and software instructions. Hardware is the actual physical parts
of a computer that you can see with your eyes or touch with your hands.
Software is basically a collection of code that makes up a computer program.
The hardware in turn carries out instructions by a computer program on a
complex level using electricity.
When talking about computers the most important piece of hardware is a
chip inside your computer called the central processing unit, or in short a
CPU. Microprocessor is also a very common term used. Think of it as the
"brain" of your computer. Like your own brain it can translate instructions and
perform calculations.







Other hardware items such as a monitor, keyboard, mouse, printer, video
card, sound card, or other physical piece are often called hardware devices or
even just devices for short.
 When looking at software, it is the actual instructions, or programs, that tell
the hardware components what to do. Without software the hardware is
essentially useless. A computer game, word processing program, or Internet
browser are some common types of computer software.
 Of course the most important piece of software for a computer system is the
operating system or also commonly called just the OS for short. It is
responsible for managing your entire computer and all the devices connected
to it. Popular operating systems include Windows XP, Windows Vista, Mac
OSX, and Linux among others.
Basically Computer is an electronic device that stores and manipulates information.
Unlike a calculator, it is able to store a program and retrieve information from its
memory as outputs and displayed using output devices. Most computers today are
digital, which means they perform operations with quantities represented
electronically as binary digits 0 & 1

Types of Computer:
Computers can be generally classified by size and power as follows, though there is
considerable overlap:
Personal computer: A small, single-user computer based on a
microprocessor.
 Workstation: A powerful, single-user computer. A workstation is like
a personal computer, but it has a more powerful microprocessor
and, in general, a higher-quality monitor.
 Minicomputer: A multi-user computer capable of supporting up to
hundreds of users simultaneously.
 Mainframe: A powerful multi-user computer capable of supporting
many hundreds or thousands of users simultaneously.
 Supercomputer: An extremely fast computer that can perform
hundreds of millions of instructions per second.
Here I am giving 3 definitions of computer in which first is a detailed one and
other two are short definitions :A computer is an electronic device or machine that performs processes,
calculations and operations based on instructions provided by a software or
hardware program. It has the ability to accept data as input, process it and
then produce outputs. It can also store data for later uses in appropriate
storage devices and retrieve whenever it is necessary.
A computer is an electronic device for storing and processing data typically in
binary form, according to the instructions given to it in a variable program.





A computer is an electronic device or machine that can store, find and
arrange informations, calculate amounts and control other machines.
Download