Specific information about this course and its requirements can be found below. For more general information about taking Saylor Academy courses, including information about Community and Academic Codes of Conduct, please read the Saylor Student Handbook.
This course is a detailed introduction to the application of engineering approach to computer software design and development. Topics include: life cycle models, software requirements, specification, conceptual model design, detailed design, validation and verification, design quality assurance, software design/development environments and project management.
Software engineering is a discipline that allows us to apply engineering and computer science concepts in the development and maintenance of reliable, usable, and dependable software. The concept of software engineering was first discussed at the 1968 NATO Science Committee in Germany. Today, many practitioners still debate over the term software engineering, often arguing that this discipline does not meet the criteria of engineering; rather, it should be called software development. There are several areas to focus on within software engineering, such as design, development, testing, maintenance, and management. Software development outside of the classroom is a very complex process, mostly because real-world software is much larger and more complex.
The purpose of this course is to present software engineering as a body of knowledge. The course is designed to present software engineering concepts and principles in parallel with the software development life cycle. The course will begin with an introduction to software engineering, giving you a definition of this body of knowledge, as well as a discussion of the main methodologies of software engineering. You will then learn about the Software Development Life Cycle (SDLC) followed by software modeling using Unified Modeling Language (UML), a standardized general-purpose modeling language used to create visual models of object-oriented software. You will go on to learn about five major phases of the SDLC: requirements gathering, requirements analysis, design, coding/implementation, and testing. You will also learn about project management for the purpose of delivering high-quality software that satisfies customer needs and is within budget.
By the time the course is complete, you will master software engineering concepts, principles, and essential processes of the SDLC; you will demonstrate this knowledge by creating UML artifacts for requirements gathering, analysis as well as design phases using an object-oriented methodology.
This course is comprised of the following units:
Upon successful completion of this course, you will be able to:
Throughout this course, you'll also see related learning outcomes identified in each unit. You can use the learning outcomes to help organize your learning and gauge your progress.
The primary learning materials for this course are readings, lectures, video tutorials, and other resources.
All course materials are free to access, and can be found through the links provided in each unit and subunit of the course. Pay close attention to the notes that accompany these course materials, as they will instruct you as to what specifically to read or watch at a given point in the course, and help you to understand how these individual materials fit into the course as a whole. You can also access a list all of the materials used in this course by clicking on Resources in the course's "Activities" menu.
Only the final exam is considered when awarding you a grade for this course. In order to pass this course, you will need to earn a 70% or higher on the final exam. Your score on the exam will be tabulated as soon as you complete it. If you do not pass the exam on your first attempt, you may take it again as many times as needed, following a 7-day waiting period between each attempt. Once you have successfully passed the final exam you will be awarded a free Saylor Certificate of Completion.
There are also 10 unit assessments and other types of quizzes in this course. These are intended to help you to gauge how well you are learning and do not factor into your final course grade. You may retake all of these as many times as needed to feel that you have an understanding of the concepts and material covered. You can locate a full list of these sorts of assessments by clicking on Quizzes in the course's "Activities" menu.
This course is eligible for college credit via Saylor Academy's Direct Credit Program. If you are seeking to earn college credit, you must opt to take and pass the Saylor Direct Credit final exam. That exam will be password protected and require the presence of a proctor. Upon passing that final exam you will receive a Proctor Verified Course Certificate, and will be eligible to earn an Official Transcript. For more information about applying for college credit review the Guide to College Credit Opportunities. Be sure to check the section on proctoring for details (fees, technical requirements, etc.)
Note: There is a 14-day waiting period between attempts of the Direct Credit final exam. There is no imposed wait period between attempting the non-credit certificate-bearing exam and the credit exam. Some credit exams have a maximum number of attempts allowed, which will be detailed on the exam's instructions page.
CS302: Software Engineering is a self-paced course in which you the learner determines when you will start and when you will complete the course. There is no instructor or predetermined schedule to follow. While learning styles can vary considerably and any particular student will take more or less time to learn or read, we estimate that the "average" student will take 45 hours to complete this course. We recommend that you work through the course at a pace that is comfortable for you and allows you to make regular (daily, or at least weekly) progress. It's a good idea to also schedule your study time in advance and try as best as you can to stick to that schedule.
Learning new material can be challenging, so below we've compiled a few suggested study strategies to help you succeed:
In order to take this course, you should:
This course is delivered fully online. You will be required to have access to a computer or web-capable mobile device and have consistent access to the internet to either view or download the necessary course resources and to attempt any auto-graded course assessments and the final exam.
There is no cost to access and enroll in this course. All required course resources linked throughout the course, including textbooks, videos, webpages, activities, etc are accessible for no charge. This course also contains a free final exam and course completion certificate.
This course does contain an optional final exam that will provide students an opportunity to earn college credit. Access to the exam itself is free, though it does require the use of a proctoring service for identity verification purposes. The cost for proctoring is $25 per session.