Software Engineering
What is Software Engineering?
Software engineering is one of the hottest areas around! We all know what a critical role software plays in our lives. It's behind our banking systems. Our telephones depend on it. Home entertainment is full of it. Medical diagnosis and treatment couldn't be done without it. Industry is begging for more good software engineers.
The software engineer is a key player in most modern high-tech innovations and crucial business systems. He or she has to be concerned with user requirements, cost constraints, timely delivery of a product, feasibility of the customer's concept, quality of the software product, reliability, safety, and long-term maintenance. This takes a strong base of technical skills coupled with an ability to communicate and manage projects well.
Career choices
Because software plays a vital role in so many aspects of our lives, career opportunities are enormous and software engineers work in virtually every sector of the economy. Software engineers are responsible for specifying, designing, implementing, integrating, testing and supporting software systems in a team environment.
As you can see, software engineering is much more than just programming. You'll learn sound principles of engineering design and key computer science concepts, and then apply that knowledge to the design of software environments. Software engineering addresses critical issues across the life cycle of a software product, beginning with a proposal and continuing through development, testing, operation and maintenance.
An interdisciplinary approach distinguishes Clarkson
Software Engineering is distinctive at Clarkson because it is interdisciplinary: We combine the expertise, knowledge and experience of faculty from both the Computer Engineering and the Computer Science Departments. And that benefits you, because you master the application of theory, as well as knowledge and understanding of the software process, as you gain the ability to develop effective and cost efficient software systems. Clarkson's program is also designed to help you build interpersonal and communication skills so you can launch a successful career in today's world.
The courses you take as a software engineering major at Clarkson include basic math, science, and engineering as well as many in computer engineering, computer science and software engineering. There's a component in liberal arts and management as well. It's a full four years!
Why Clarkson for science and engineering?
U.S. News & World Report ranks Clarkson in its 2006 Best Undergraduate Engineering Programs at schools whose highest degree is a Ph.D. The placement rate for our engineers and scientists is one of the nation's highest and in recent years has been at or near 100%. Our graduates are sought both for their strong technical skills and their versatility. A Clarkson education builds your abilities in teamwork, management, communication and creative problem solving. Our graduates are accepted in the best advanced degree programs in the country, including our own.
A teaching emphasis in a research environment
Clarkson combines two distinctive strengths that benefit students: Personalized teaching and high-powered research.
With a 16:1 faculty-to-student ratio, our professors get to know students as individuals. On the other hand, these faculty members are also inspired explorers on the very frontiers of knowledge. They conduct world-class research in areas of vital importance — and involve undergraduates in the process!
Project-based learning
Clarkson takes a project-based approach to learning. Because you focus on the creative application of knowledge and skills to solve practical, real-world problems, you gain:
- a strong, hands-on foundation in the basics
- teamwork and leadership skills
- practice in creative problem solving
- techniques in research and analysis
- skills in applying what you know
- an opportunity to use state-of-the-art equipment and lab facilities
And at all levels, you enjoy the individualized attention that only an undergraduate-centered school can provide.
Team competitions in engineering design
Clarkson students sharpen their skills in creative problem solving, collaboration, communication and leadership through team competitions. These are organized through an umbrella program called SPEED (Student Projects for Engineering Experience and Design).
You'll develop broad skills
Software engineers focus on engineering systems that meet specified requirements, are constructed
to industrial quality standards, and are produced within cost and on schedule. As a graduate of our program, you will be a proficient software developer. Beyond that, though, you will have knowledge of software product engineering and engineering management. You will be able to apply established engineering design principles to software design and construction in a variety of applications.
Design experience
Each software engineering student participates in a major design experience in the senior year. Through this experience, you bring together knowledge gained in a wide variety of courses to solve realistic problems while building significant applications in a team-based environment.
Co-ops and internships
Lots of exciting opportunities await you. How do you learn what a software engineer does unless you have the chance to go out and do the work? A summer or a semester of professional employment is the best way to get an overview of what a career as a software engineer will be like, plus you get paid a professional salary while you learn. Thanks to Clarkson's Cooperative Education Program and the efforts of the Career Center, you can have co-op experience, earn money, and graduate in four years.
Software Engineering program goals
Clarkson's Software Engineering Program is designed to educate software engineers who:
- can apply engineering principles to software design and construction, and therefore are able to:
- develop software requirements and functional specifications
- use proven techniques to design software structure before it is implemented
- apply established verification and validation techniques
- understand the importance of constructing large software systems using standardized components and reusing existing code (modules) where possible
- use software tools as effective aids in all phases of software development
- design, develop and deliver software in a cost-effective manner
- have had experience with issues encountered at every stage in the software life cycle
- can work in an interdisciplinary team on software components of a system
- have good interpersonal and communication skills
- can readily assimilate new technologies
- understand the impact their discipline has on society
Minor in Software Engineering
A minor in Software Engineering is available to students in any degree program. To obtain a minor, a student must complete the following course requirements:
- CS141, CS142, and CS344 or EE261, EE361, and EE363
- CS242 or EE408
- EE368 — must have at least junior status when taking this course
- One restricted elective chosen from a list of courses maintained by the Software Engineering Program Committee
- One business course selected from a list of Business School courses maintained by the Software Engineering Program Committee
