We may earn an affiliate commission when you visit our partners.
Chris Murphy

Knowing how to code is only part of the skills needed to become a professional software developer.

This course, part of the CS Essentials for Software Development Professional Certificate program, will take your skills to the next level by teaching you how to write “good” software that appropriately represents and organizes data, is easy to maintain, and is of high quality.

Read more

Knowing how to code is only part of the skills needed to become a professional software developer.

This course, part of the CS Essentials for Software Development Professional Certificate program, will take your skills to the next level by teaching you how to write “good” software that appropriately represents and organizes data, is easy to maintain, and is of high quality.

As the purpose of most computer programs is to manipulate data, sometimes large quantities of it, the manner in which programs represent and organize data can have an enormous effect on the simplicity and efficiency of the code. In this course, you will learn about important core data structures such as arrays, lists, stacks, queues, sets, maps, trees, and graphs, and learn how to evaluate them and reason about their behavior and efficiency.

Most importantly, you will learn how to determine which data structure is the most appropriate for solving the problem at hand, and see how to use the implementations that are part of the Java library.

However, choosing the right data structure is only part of the challenge of developing high quality software: you must also consider the design of the classes that use those data structures. You will learn about software design principles such as modularity, functional independence, and abstraction, and apply those concepts toward writing programs that are easy to understand, easy to modify, and easy to test.

Although it is important to know how to write high quality code, professional software developers often spend a majority of their time maintaining existing code. You will also learn about software refactoring techniques for improving the design of existing code, and see how to improve code efficiency.

This course will use Java but the concepts you learn can be applied to almost all modern programming languages.

What you'll learn

  • Efficient means of storing and retrieving data in a Java program
  • How to identify the data structure that best represents the problem at hand
  • Use of the inbuilt Java data structures
  • Assess and improve the quality of software design with respect to object-oriented principles
  • Convert a set of requirements into a high-quality software design
  • How to write efficient code that is easy to read, understand, and modify
This course is no longer available. Find a similar course by searching these:
software design software development data structures in java data structures java data structures

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Teaches principles and practices for designing and developing high-quality software
Develops skills in data manipulation and management
Taught by Chris Murphy, who is recognized for their expertise in software development
Provides hands-on experience in applying software design principles
Emphasizes coding efficiency and maintainability
Builds a foundation in software refactoring techniques

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Activities

Coming soon We're preparing activities for Data Structures and Software Design. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Data Structures and Software Design will develop knowledge and skills that may be useful to these careers:
Applications Architect
Data Structures and Software Design helps build a foundation for getting into the Applications Architect role. The course will provide you with essential knowledge in data structures, software design principles, and refactoring techniques, important skills for success in this field. Understanding how to write high quality code, and use Java data structures efficiently will help you excel in this role.
Software Designer
Data Structures and Software Design can help you advance your career as a Software Designer. The course will provide you with essential knowledge in data structures, assessing and improving software design, and writing efficient code. Experience with high quality code and Java data structures is highly beneficial in the field of Software Design.
Software Engineer
Data Structures and Software Design may be useful for getting into a career as a Software Engineer. The course will provide you with essential knowledge about data structures, software design principles, and refactoring techniques, important skills for success in this field, particularly when working with the Java programming language.
Java Developer
Data Structures and Software Design helps build a foundation for getting into the Java Developer role. The course will provide you with essential knowledge in core Java data structures, assessing and improving software design, and coding principles. Familiarity with Java data structures is essential for this role.
Computer Programmer
Data Structures and Software Design may be useful for getting into a career as a Computer Programmer. The course will provide you with essential knowledge about data structures and software design principles, important skills for success in this field.
Software Architect
Data Structures and Software Design helps build a foundation for getting into the Software Architect role. The course will provide you with essential knowledge in software design principles, refactoring techniques, and writing efficient code. Additionally, working with Java data structures is highly beneficial in this role.
Data Analyst
Data Structures and Software Design may be useful for getting into a career as a Data Analyst. The course will provide you with essential knowledge about data structures, important skills for success in this field.
Web Developer
Data Structures and Software Design may be useful for getting into a career as a Web Developer. The course will provide you with essential knowledge about data structures and software design principles, important skills for success in this field.
Database Administrator
Data Structures and Software Design may be useful for getting into a career as a Database Administrator. The course will provide you with essential knowledge about data structures, important skills for success in this field.
Systems Analyst
Data Structures and Software Design may be useful for getting into a career as a Systems Analyst. The course will provide you with essential knowledge about software design, important skills for success in this field.
Information Technology Project Manager
Data Structures and Software Design may be useful for getting into a career as an Information Technology Project Manager. The course will provide you with essential knowledge about data structures and software design, important skills for success in this field.
Computer Systems Analyst
Data Structures and Software Design may be useful for getting into a career as a Computer Systems Analyst. The course will provide you with essential knowledge about data structures, important skills for success in this field.
User Experience Designer
Data Structures and Software Design may be useful for getting into a career as a User Experience Designer. The course will provide you with essential knowledge about software design, important skills for success in this field.
Business Analyst
Data Structures and Software Design may be useful for getting into a career as a Business Analyst. The course will provide you with essential knowledge about software design, important skills for success in this field.
Technical Writer
Data Structures and Software Design may be useful for getting into a career as a Technical Writer. The course will provide you with essential knowledge about software design, important skills for success in this field.

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser