Online courses directory (19947)
The free online course Sociology Studies - Social Inequality is the second in a series of online courses that gives the leaner an understanding of inequality in society and how many of these inequalities have come about. The course begins by using the United States as a case study where learners will explore open and closed stratification systems including caste and class systems along with the idea of an ideal system based on merit. You will then look at social stratification globally, looking first at how countries are classified and the cyclical nature of poverty and how this affects the poorest countries. Next, you will explore race, ethnicity and minorities, the prejudices and discrimination that occur and why they persist in a society. You will also learn about gender, gender identity and gender roles and why these are commonly associated with inequality due to historically strong cultural norms. Finally, you will learn about education, how prejudices often persist at an institutional level, and how this impacts on the individual throughout their life. This free course will be of great interest to anyone with an interest in areas as diverse as medicine, politics, law, urban organization, and marketing, and anybody who would like to know more about inequalities within a society.<br />
Sociology Studies - Social Institutions is the third in a series of four free online courses and this course will give you an understanding of social institutions and how they establish patterns of rule-governed behaviours. You will learn how sociology defines family, the variation in family structures and what the social impact of changing family structures is along with the challenges faced by families through divorce and abuse. Next you will look at religion from a sociological perspective and get an understanding of the different types of religion, and how religion has brought about social change. You will also study power and authority and its use in government and politics. The course describes different types of authority and the various forms of government from dictatorships and oligarchy to democracy. You will also learn what affect race, gender and class have on voter participation and electoral outcomes. The world of work and the economy are explored next with a focus on capitalism and socialism, both in theory and practice. You will also review the pros and cons globalisation in modern society. Finally, the course covers healthcare from the social construction of health and medical sociology to global health and social epidemiology. You will also explore the differences between low and high income nations. Using the United States as an example you will explore healthcare issues such as access for different socio-economic groups, mental health and disability issues and the correlation between medicalisation and stigmatisation. This free online course will be of great interest to professionals working in areas as diverse as medicine, politics, law, urban organization and marketing. It will also be of great interest to all learners who would like to know more about how cultures and societies evolve and change.<br />
Learn the key skills to creating powerful presentations that get results.
Want to brush up on your soft skills? This suite of courses teaches everything from working with tough personalities to making better business decisions.
This course covers the theory and practice of software analysis, which lies at the heart of many software development processes such as diagnosing bugs, testing, debugging, and more. It presents diverse techniques, each with their own strengths and limitations, for automating tasks such as testing, debugging, and finding bugs in complex real-world programs. These techniques include dataflow analysis, constraint-based analysis, type systems, model checking, symbolic execution, and more. The course teaches the principles underlying these techniques as well as imparts hands-on experience with using and implementing tools based on these techniques.
Software Architecture and Design teaches the principles and concepts involved in the analysis and design of large software systems. This course is split into four sections: (1) Introduction, (2) UML and Analysis, (3) Software Architecture, and (4) Software Design.
This course provides you with all the fundamentals you need to understand the business of software. It contains many les
6.005 Software Construction introduces fundamental principles and techniques of software development, i.e., how to write software that is safe from bugs, easy to understand, and ready for change. The course includes problem sets and a final project. Important topics include specifications and invariants; testing; abstract data types; design patterns for object-oriented programming; concurrent programming and concurrency; and functional programming.
The 6.005 website homepage from Spring 2016, along with all course materials, is available to OpenCourseWare users.
This computer science course is the first of a two-course sequence about writing good software using modern software engineering techniques.
In this course, you will learn what software engineers mean by "good" code -- safe from bugs, easy to understand, and ready for change. You will also learn ways to make your code better, including testing, specifications, code review, exceptions, immutability, abstract data types, and interfaces.
This is a challenging and rigorous course that will help you take the next step on your way to becoming a skilled software engineer.
Photo by Wizou on Flickr. (CC BY) 2.0
This is the third course in the Software Development MicroMasters program. You will learn how to build larger and more complex software systems using the Java programming language.
The course begins with the topic of data abstraction - from specification to implementation. Particular attention is given to how to write robust tests using JUnit. Then the course expands on these ideas to explore how type hierarchies and polymorphism can be used to decrease redundancy in your code. The course wraps up with a discussion of how to design robust classes.
By the end of the course, you will have a solid foundation in designing software in Java, and be ready to move onto Software Construction: Object-Oriented Design, where you will learn more complex design patterns and principles designing object-oriented programs.
Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.
This course, part of the Software Development MicroMasters program, will dig deep into the principles of object oriented design, and introduce new abstraction techniques and design patterns. You will use these techniques to build an application that makes use of popular online services and APIs – the most complex software design project so far.
By the end of the course, you will have a solid foundation in Java and Object-Oriented Design, as well as many software development concepts that can be applied to any language.
Learners who enroll in the Verified track will receive staff grading for the course project and increased interaction with the instructors and staff.
In this class you will learn how to debug programs systematically, how to automate the debugging process and build several automated debugging tools in Python.
In this course, you will learn about software defined networking and how it is changing the way communications networks are managed, maintained, and secured.
In this course, you will learn about software defined networking and how it is changing the way communications networks are managed, maintained, and secured.
Software Defined Networking/OpenFlow is emerging as one of the most promising and disruptive networking technologies of recent years. It has the potential to enable network innovation and create choice...
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
Trusted paper writing service WriteMyPaper.Today will write the papers of any difficulty.