Save for later

Data Structures and Software Design

Heads up! This course may be archived and/or unavailable.

Computer Science Essentials for Software Development,

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

Get Details and Enroll Now

OpenCourser is an affiliate partner of edX and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating Not enough ratings
Length 4 weeks
Effort 8 - 10 hours per week
Starts On Demand (Start anytime)
Cost $149
From University of Pennsylvania, PennX via edX
Instructor Chris Murphy
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Engineering

Get a Reminder

Send to:

Similar Courses

Careers

An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Data 2 $50k

Capital Structure Analyst $65k

Bank Structure Analyst, Statistics and Reserve Accounts $66k

Aircraft Structure Technician $76k

Structure Engineer $82k

Structure and Function Scientist $86k

Product Structure Engineer $88k

Data Scientist - Data Curation $92k

Senior Package Designer graphics and structure $108k

Team Product Structure Manager Lead $125k

Product Manager / Developer for Structure Penetration Management $141k

Senior Product Manager / Developer for Structure Penetration Management $208k

Write a review

Your opinion matters. Tell us what you think.

Rating Not enough ratings
Length 4 weeks
Effort 8 - 10 hours per week
Starts On Demand (Start anytime)
Cost $149
From University of Pennsylvania, PennX via edX
Instructor Chris Murphy
Download Videos On all desktop and mobile devices
Language English
Subjects Programming
Tags Computer Science Engineering

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now