During the last half century there has been some debate about whether or not areas of computer science should be considered one of the engineering disciplines. Certain experts in software development, design, and application feel that they deserve to be called "software engineers." By now, most people accept the field of software engineering as a legitimate engineering discipline.
Although software engineering is a young field compared to other engineering disciplines such as chemical, electrical, or mechanical, it already has an exciting history full of valuable lessons derived from its early successes and failures. Software engineering covers a huge variety of topics originating both in computer science (such as development processes and methodologies, testing, and refactoring) and social science (such as software estimation metrics and techniques, risk management, and quality assurance). Everyone working with software, to one extent or another, can benefit from studying the history and fundamentals of software engineering.
A typical software engineering course may involve any combination of the following topics:
Software engineering has grown significantly and now encompasses a very diverse set of topics. Pressman's Software Engineering: A Practitioner's Approach is considered the best introductory book for computer science students along with Sommerville's classic Software Engineering. Frederick Brooks' The Mythical Man-Month is probably the most cited book in the field, detailing how the process of software development can go awfully wrong and stating for the first time that throwing more people on an ongoing project is far more likely to delay it! Code Complete by Steve McConnell and The Pragmatic Programmer by Andrew Hunt are a "must read" for anyone wanting to dive deeper, as is the Design Patterns: Elements of Reusable Object-Oriented Software, written by the famous "Gang of Four" (Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides), which changed forever the way software is developed. Finally, don't miss Joel Spolsky's blog and books, the definitive voice on modern topics of software engineering (or, "what you won't learn from your SE textbook"). For academic resources you should look into conference proceedings and journals published by the ACM, IEEE, Springer, Elsevier, Google Scholar, and CMU's Software Engineering Institute.
Are you sure you don't want to upload any files?
Fast tutor response requires as much info as possible.
Decision:
Upload a file
Continue without uploading