Background Image

B.S. in Software Engineering

In this Section

The discipline of software engineering is concerned with the application of engineering principles to the construction of computer software. It addresses critical issues across the life cycle of a software product, beginning with a proposal to develop an application that requires computing resources and continuing through the development, testing, operation, and maintenance of the software product until it is retired.

The software engineer plays the role of the architect of a complex system. He or she takes into account the user requirements and needs, feasibility, cost, quality, reliability, safety, and time constraints. To do this, the software engineer has to be able to understand the application area that is the target of the desired software system, develop the software and ensure that it is reliable, and also manage the project so that it is produced in an economical, timely manner.

Goals of the Clarkson Software Engineering Program
Software engineering graduates should be well prepared for a lifetime of professional activity, and the objective of our program is to build a foundation on which graduates can build successful careers. This means that, within a few years after completing the program, we expect that our graduates will be contributing professionals, effective and responsible collaborators.  They should also have continued to grow intellectually and as well rounded citizens.  This means graduates are expected to have

  • become contributing professionals who apply fundamental engineering knowledge and analytical problem solving skills in a wide variety of practical applications
  • become well-rounded citizens who rely on their engineering education to serve society in an ethical and professional manner
  • become effective and responsible collaborators who function well in diverse team environments, with some graduates having emerged as leaders in their field
  • have exhibited intellectual growth and pursued continual innovation in their field, while those graduates who are especially talented and motivated to pursue a graduate degree should be or have been successful at entering and completing graduate studies

To attain these objectives, the curriculum is structured so that when a student graduates from the Software Engineering program, he or she will have gained the knowledge, skills, and attributes that provide a foundation on which a successful career in the Software Engineering profession rests.  Our graduates will

  • have a fundamental understanding of computer systems
  • be able to apply engineering principles to software design and construction, having developed the ability 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 experience with issues encountered at every stage in the software life-cycle
  • be able to work on an interdisciplinary team of software components of a system
  • have good interpersonal and communication skills
  • be able to readily assimilate new technologies
  • understand the impact their discipline has on society 

Curriculum
To accomplish these goals, the curriculum is structured around a group of required courses in science, mathematics, and computer science and engineering. A variety of courses in the engineering sciences are included in the curriculum in order to provide exposure to application areas. Although there is ample opportunity for students to participate in team-based activities throughout the curriculum, each student’s program of study includes a major design experience in the senior year in which the student is required to bring together knowledge gained in a wide variety of courses to solve realistic problems, building significant applications in a team-based environment.

An Interdisciplinary Approach
Software Engineering is distinctive at Clarkson because it is interdisciplinary: we combine the expertise, knowledge, and experience of faculty from both the Electrical and Computer Engineering and the Mathematics and Computer Science Departments. That benefits the students because they master the application of theory as well as knowledge and understanding of processes software process as they gain the ability to develop effective and cost-efficient software systems. Clarkson’s program is also designed to help students build interpersonal and communication skills that can launch a successful career in today’s world.

 Software Engineering Curriculum
line
FIRST YEAR
First Semester   Second Semester
Course Title Cr. Hrs.   Course Title Cr. Hrs.
CM131  Chemistry I     4   CM132 Chemistry II     4
PH131 Physics     4   PH132 Physics II     4
MA131 Calculus I     3    MA132 Calculus II     3 
UNIV190 Clarkson Seminar     3     KA/UC Elective     3
FY100 First-Year Seminar     1   ES100 Intro. to Engineering  
          Use of the Computer      2
    line       line
      15          16 
line
SOPHOMORE YEAR
First Semester   Second Semester
Course Title Cr. Hrs.   Course Title Cr. Hrs.
MA232 Differential Equations      3    MA231  Calculus III      3 
MA211  Foundations      3    EE264  Intro. to Digital Design      3 
ES250  Electrical Science      3    EE361 

Fundamentals of 

 
EE261 Intro. to Programming and       Software Engineering     3 
 

Software Design or 

    3    EE221  Linear Circuits or      3 
CS141 Computer Science I      ES  Elective   
  KA/UC Elective     3     KA/UC Elective     3
    line       line
      15          15 
line
JUNIOR YEAR
First Semester   Second Semester
Course Title Cr. Hrs.   Course Title Cr. Hrs.
MA383  Applied Statistics or      3    CS344  Algorithms and Data  
MA381  Probability        Structures     3 
EE407 Computer Networks       3    EE360 Microprocessors      3 
EE363  Generic Programming &     EE368  Software Engineering      3 
  Software Components      3    EE462  Software System Architecture      3 
EE408  Software Design for Visual Env.       3    EE468  Database Systems      3 
  KA/UC Elective*     3        
             
    line       line
      15          15 
line
SENIOR YEAR
First Semester   Second Semester
Course Title Cr. Hrs.   Course Title Cr. Hrs.
EE418 Senior Design      3    CS444  Operating Systems      3 
EE466  Computer Architecture      3    CS458  Formal Methods for  
CS341  Programming Languages     3      Program Verification     3 
  Professional Elective     3      Professional Elective     3 
  KA/UC Elective      3      Undesignated Electives      6
             
    line       line
      15         15
* One of the KA/UC electives must be in economics.

Students in the Class of 2010 and later — see academic requirements for details of the Clarkson Common Experience including the First-Year Seminar, the Clarkson Seminar, Knowledge Area (KA) courses, University Courses (UC), and related requirements.
Knight