Warning: A non-numeric value encountered in /home/597640.cloudwaysapps.com/dvkqnhvsgq/public_html/global/global_course.php on line 55
Warning: A non-numeric value encountered in /home/597640.cloudwaysapps.com/dvkqnhvsgq/public_html/global/global_course.php on line 80
Warning: A non-numeric value encountered in /home/597640.cloudwaysapps.com/dvkqnhvsgq/public_html/global/global_course.php on line 105
Warning: A non-numeric value encountered in /home/597640.cloudwaysapps.com/dvkqnhvsgq/public_html/global/global_course.php on line 155
Data Structures and Software Design
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.
Created by: Chris Murphy
Quality Score
Overall Score : 0 / 100
Live Chat with CourseDuck's Co-Founder for Help
Course Description
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.
Week 1: Core Data Structures
Week 2: Advanced Data Structures
Week 3: Software Design
Week 4: Implementing and Improving Software
Instructor Details
- 0.0 Rating
- 0 Reviews
Chris Murphy
Chris is an Associate Professor of Practice at the School of Engineering and Applied Science at the University of Pennsylvania. He received his B.S. in Computer Engineering from Boston University in 1995, and his M.S. and Ph.D. in Computer Science in 2006 and 2010, respectively, from Columbia University. His research interests include computer science education, software testing, and open source software development. Prior to his graduate studies, Chris was a professional software developer for companies in the United States and United Kingdom.