Online courses directory (10358)
In this project course, the final course in the Software Development MicroMasters program, you will learn how to input, manipulate, and return data with a modern web development stack. Using TypeScript and Node, you will manipulate large amounts of information using a domain-specific querying language. Backend, REST, and front-end technologies will be required to successfully complete the project.
In teams, students will work through the project in several sprints. In each sprint, students will produce a deliverable that is evaluated using an automated test suite. The feedback you will receive from this suite will be limited. To succeed at the project you will need to create your own private test suite to further validate each deliverable.
By working through such a large-scale development project, you will learn technical development skills, and gain experience with how teams develop software in the industry.
This is the largest project in the Software Development MicroMasters program. Verified learners will have access to greatly increased staff coaching to help complete the project.
Software developers are in high demand in the current job market, and computer programming is a prerequisite skill for success in this field.
Start your journey toward becoming a professional software developer by learning Java, one of the industry’s most commonly used programming languages.
This course, part of the CS Essentials for Software Development Professional Certificate program, will quickly cover Java syntax and keywords and then explore features of object-oriented programming including encapsulation, inheritance, and polymorphism. You will learn how to apply these concepts to programmatic problem solving by investigating class modeling techniques and relationships such as aggregation, realization, and generalization.
In addition to programming, you will learn about software testing techniques that help us find problems in our code, and you will use modern development environments and tools for tasks like debugging and unit testing. We will introduce Eclipse, the eclipse debugger and Junit (a unit testing framework).
After completing this course, you will be able to design, develop, and test large applications in Java and understand and apply core principles of professional software development.
This class is offered as CS6300 at Georgia Tech where it is a part of the [Online Masters Degree (OMS)](http://www.omscs.gatech.edu/). Taking this course here will not earn credit towards the OMS degree. In SDP, you will learn how to select and implement the ideal software process for your development project. Through Professor Orso's engaging examples and interviews with industry insiders, you will learn both conceptual and practical aspects of software engineering. The course covers requirements engineering, architecture and design, testing and maintenance, and software quality in general. The goal of this class is to equip you with the skills necessary to define requirements, set up an integrated development environment (IDE), learn Git (and Github!) and use Unified Modeling Language (UML) to design and build an Android application. We will also examine several testing practices and refactoring techniques that are helpful before the launch of your software project. While everyone working with software should have these skills, they are particularly important for Software Engineers and Engineering Managers.
This is a reading and discussion subject on issues in the engineering of software systems and software development project design. It includes the present state of software engineering, what has been tried in the past, what worked, what did not, and why. Topics may differ in each offering, but will be chosen from: the software process and lifecycle; requirements and specifications; design principles; testing, formal analysis, and reviews; quality management and assessment; product and process metrics; COTS and reuse; evolution and maintenance; team organization and people management; and software engineering aspects of programming languages.
The world of software engineering requires high flexibility, an influx of new ideas, and the courage to challenge traditional approaches. As a software engineer, you need to know the methods, workflows and tools to handle continuously growing complexity and shortened development cycles. You must be able to work in teams to build high-quality software.
In this course, we will introduce the basic concepts of object-oriented software engineering. You will learn and apply UML modeling, patterns and project management techniques that are used when developing complex software systems.
This course is interactive. You will watch videos in which we explain critical theory. You will participate in online exercises to practice your knowledge including quizzes, UML modeling with peer reviews, and programming exercises with immediate feedback
6.171 is a course for students who already have some programming and software engineering experience. The goal is to give students some experience in dealing with those challenges that are unique to Internet applications, such as:
- concurrency;
- unpredictable load;
- security risks;
- opportunity for wide-area distributed computing;
- creating a reliable and stateful user experience on top of unreliable connections and stateless protocols;
- extreme requirements and absurd development schedules;
- requirements that change mid-way through a project, sometimes because of experience gained from testing with users;
- user demands for a multi-modal interface.
