Data Structures and Software Design

Chris Murphy, PennX

Learn how to select, apply, and analyze the most appropriate data representations in your code and design high quality software that is easy to understand and modify.

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 will you 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

Dates:
  • 16 August 2019
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

More on this topic:
8e285de1-0242-4e94-8041-84231363caf4-d03410f48d5f.small Algorithm Design and Analysis
Learn about the core principles of computer science: algorithmic thinking and...
Slide1 Programming Mobile Applications for Android Handheld Systems
Introduction to the design and implementation of applications for handheld systems...
Yskftic---imgur Introduction to Computational Arts
This multidisciplinary production class serves as an introduction to, and exploration...
Small-icon.hover Introduction to Data Science
Join the data revolution. Companies are searching for data scientists. This...
Small-icon.hover The Hardware/Software Interface
Examines key computational abstraction levels below modern high-level languages...
More from 'Computer Science':
C9d14131-a515-462b-82e2-6eaec5bc1c17-f7c5de2ca2ae.small Using Python for Research
Take your introductory knowledge of Python programming to the next level and...
A3e17192-cf3f-4782-9aab-2206b0dc2c90-7202ea5d5042.small Business Considerations for 5G, IoT and AI
Learn how networks are being redefined to support a 5G world and what is required...
15a61909-e84e-4acb-992c-6712dccfc9ae-b70f48a3498f.small Open Source and the 5G Transition
Open source software and standards are driving the transition to 5G, AI and...
4d3258fc-bcee-4c37-bf7a-9f22524bf4a7-ee314bada985.small Human-Computer Interaction I: Fundamentals & Design Principles
Learn the principles of Human-Computer Interaction to create intuitive, usable...
7138aabb-44bc-41c1-97ec-bca2ea95f5dc-c33778a8a76f.small Human-Computer Interaction II: Cognition, Context & Culture
Get into the user’s mind and understand the role of mental models and...
More from 'edX':
C9d14131-a515-462b-82e2-6eaec5bc1c17-f7c5de2ca2ae.small Using Python for Research
Take your introductory knowledge of Python programming to the next level and...
3b15de0f-832c-4474-b9c8-1fd1b398d372-d0b00b9d9f77.small Customer-Centric Innovation
Learn to take on competition by creating successful and innovative ideas for...
80c64585-3fd5-4e91-adbb-8803004c0ef9-978583c079bc.small Drawing Nature, Science and Culture: Natural History Illustration 101
Learn how to see and draw nature like an illustrator. Build observational and...
A3e17192-cf3f-4782-9aab-2206b0dc2c90-7202ea5d5042.small Business Considerations for 5G, IoT and AI
Learn how networks are being redefined to support a 5G world and what is required...
15a61909-e84e-4acb-992c-6712dccfc9ae-b70f48a3498f.small Open Source and the 5G Transition
Open source software and standards are driving the transition to 5G, AI and...

© 2013-2019