Computer Science v/s Software Engineering
if you're wondering about the difference between computer science and Software Engineering you may have a few parts to that question like differences in their definition how they differ in terms of undergrad in the classes you take and how they differ in terms of careers. when it comes to how we define them if you do a search you'll find things along the lines of computer science is theory based or it's practically a branch of mathematics you'll learn algorithms data structures discrete math theory of computation and efficiently computers can solve problems programming languages and some other stuff. A lot of stereotypical computer science jobs are in research where you might be like working in artificial intelligence and deep learning to design neural networks. Such that a computer can learn to recognize objects or be a human in a challenging game or you could be working with data security and cryptography so sensitive information remains secure or computer scientists are even needed for quantum algorithms. When it comes to quantum computing which is not a huge field yet but is another example then software engineering is where you use many computer science topics such as algorithms data structures sorting methods and so on to build large-scale systems. They're the ones who are needed when products like Microsoft Office rolled of war craft or new antivirus software are going to be made these things can contain millions of lines of code it's not feasible for just one person and you can't have a bunch of programmers. Just dive in there's more structure to it. They have to understand all the requirements for a project plan the lifecycle of the software figure out how to implement everything like it might need to be fast super easy to use. Who will be using the final product like there will be other engineers or just an average person they have to do testing think about scalability and so on.
Where no software engineers can enter and you'll leave that's not at all how it works people in these two disciplines are totally mixed the rules are essentially interchangeable today and most job listings will say something like computer science or equivalent discipline required which usually means something like software or a computer engineering. I also said that many computer science jobs are in research for those typically require a masters or PhD and because most people don't do that a majority of computer science majors end up in software engineering
jobs most of your friends who graduate in computer science and go off to Google Facebook Apple Amazon etc are technically working in software engineering or software developer roles building those large-scale systems. Now even though they have different definitions when it comes to the college curriculum they are extremely similar.I'm going to sweep through them first and then go into detail on a few of them. Three programming courses that teach a lot of the basics they take discrete math this is more computer hardware focused class systems programming which goes into more detail on the C programming language algorithm design which is very important for a computer scientist and as a math intensive course programming language is one and this professional responsibilities course which is more about system safety code of ethics intellectual property and so on. These classes I just listed are all taken by software engineers as well so you hear how computer science is more geared towards Theory math algorithms and so on. Yet software engineers have to take discrete math algorithms and way more even if they don't do as much research work later in their career. Software engineers simply need all that computer science information still to work on their various projects. The remaining classes are what software engineers are not required to take those being computer architecture operating systems. A second programming languages course and theory of computation and of course this is not counting electives.If we go to the Software Engineering curriculum those same classes come up like I said which leaves for classes unique to software engineers.Software Engineering specific classes are not about learning new sorting techniques or more efficient programming methods or any more math theory or anything like that they're about how to plan out your project work as a team.Now lets discuss a little bit about software interfaces.
Design interfaces based on who be using your project and so on. Such as end user where it's used by people to get work done system software that provides underlying support to end-user software and embedded software that is within hardware devices like robot security systems or cars. Then you might define people involved with software whether it be end-users testers analysts etc as you can see it can start off with a lot of definitions.
GUI
Then you get into more of the software design like prototyping a GUI or a graphical user interface a way for someone to easily interact with software through graphical icons I actually had to do this at my job before we're previous to making the GUI in order to input data into my program for calculation. I had to type in an input command and if I hand that code off to someone that might be annoying for them to have to figure out. So the GUI instead just had a box for input values here
that could easily be typed.

No comments:
Post a Comment