Coursera
Explorar
  • Navegar
  • Pesquisar
  • For Enterprise
  • Entrar
  • Criar conta

Java Programming: Principles of Software Design

Visão geralProgramaPerguntas frequentesDesenvolvedoresCustoClassificações e avaliações

Página inicialCiência da ComputaçãoDesenvolvimento de Software

Java Programming: Principles of Software Design

Universidade Duke

Informações sobre o curso: Solve real world problems with Java using multiple classes. Learn how to create programming solutions that scale using Java interfaces. Recognize that software engineering is more than writing code - it also involves logical thinking and design. By the end of this course you will have written a program that analyzes and sorts earthquake data, and developed a predictive text generator. After completing this course, you will be able to: 1. Use sorting appropriately in solving problems; 2. Develop classes that implement the Comparable interface; 3. Use timing data to analyze empirical performance; 4. Break problems into multiple classes, each with their own methods; 5. Determine if a class from the Java API can be used in solving a particular problem; 6. Implement programming solutions using multiple approaches and recognize tradeoffs; 7. Use object-oriented concepts including interfaces and abstract classes when developing programs; 8. Appropriately hide implementation decisions so they are not visible in public methods; and 9. Recognize the limitations of algorithms and Java programs in solving problems. 10. Recognize standard Java classes and idioms including exception-handling, static methods, java.net, and java.io packages.

Para quem é direcionado este curso: This course is for anyone who has taken the first three courses in the Java Programming and Software Engineering Fundamentals Specialization, “Programming Foundations with JavaScript, HTML and CSS,” “Java Programming: Solving Problems with Software,” and “Java Programming: Arrays, Lists, and Structured Data.” To succeed in this course, before starting you should have a good understanding of the following: variables, conditionals, loops, methods, Strings, arrays, lists, maps, Java classes, and the edu.duke custom libraries.


Desenvolvido por:  Universidade Duke
Universidade Duke

  • Robert Duvall

    Ministrado por:  Robert Duvall, Lecturer

    Computer Science

  • Owen Astrachan

    Ministrado por:  Owen Astrachan, Professor of the Practice

    Computer Science

  • Andrew D. Hilton

    Ministrado por:  Andrew D. Hilton, Assistant Professor of the Practice

    Electrical and Computer Engineering

  • Susan H. Rodger

    Ministrado por:  Susan H. Rodger, Professor of the Practice

    Computer Science
Informações básicas
Curso 4 de 5 no Programação Java: Introdução ao Software Specialization
NívelBeginner
Compromisso4 weeks of study, 4-8 hours/week
Idioma
English, Legendas: Korean
Como ser aprovadoSeja aprovado em todas as tarefas para concluir o curso.
Classificação do usuário
4.6 estrelas
Classificação média do usuário 4.6Veja o que os aprendizes disseram
Programa
SEMANA 1
Welcome to the Course
Welcome to “Java Programming: Principles of Software Design”! We are excited that you are starting our course to learn how to write programs in Java, one of the most popular programming languages in the world. In this introductory module, you will hear an overview of this course and be introduced to the supporting resources available.
1 vídeo, 1 leitura
  1. Vídeo: Welcome!
  2. Reading: Programming Resources
Earthquakes: Programming and Interfaces
In this module, we will introduce a data set containing details about earthquakes around the world. You will learn how to pull this data into a program, search through the data, and filter the data based on desired criteria. By the end of this module, you will be able to (1) write programs that include multiple classes and ArrayLists of class types, (2) find the maximum value in an ArrayList, (3) use a Filter interface to search through data, (4) implement interfaces with method signatures, and (5) combine several filters together.
11 vídeos, 5 leituras, 2 questionários de prática
  1. Reading: Module Learning Outcomes / Resources
  2. Vídeo: Introduction
  3. Vídeo: Relationships Between Classes
  4. Vídeo: Licensing and APIs
  5. Reading: Location class documentation and license resources
  6. Vídeo: Coding a Magnitude Filter
  7. Vídeo: Coding the Closest Quakes
  8. Vídeo: Summary
  9. Reading: Programming Exercise: Searching Earthquake Data
  10. Practice Quiz: Searching Earthquake Data
  11. Vídeo: Introduction
  12. Vídeo: Interfaces to Avoid Duplication
  13. Vídeo: Interfaces in More Depth
  14. Vídeo: MatchAll
  15. Vídeo: Summary
  16. Reading: Programming Exercise: Filtering Data
  17. Practice Quiz: Filtering Data
  18. Reading: End of Module Survey
Nota atribuída: Earthquakes: Programming and Interfaces
SEMANA 2
Earthquakes: Sorting Algorithms
In this module, you will continue using real earthquake data to explore several sorting algorithms. You will learn how to implement a selection sort and a bubble sort, then be introduced to a Java method Collections.sort, which sorts with much greater efficiency. By the end of this module, you will be able to (1) implement several sorting algorithms from scratch, (2) use efficient pre-existing sorting classes, (3) modify a class’s compareTo method to choose the criteria by which objects of that type are ordered, and (4) write classes that implement the Comparator interface to create interchangeable sorting criteria.
12 vídeos, 4 leituras, 2 questionários de prática
  1. Reading: Module Learning Outcomes / Resources
  2. Vídeo: Introduction
  3. Vídeo: Developing an Algorithm
  4. Vídeo: Translating to Code
  5. Vídeo: In Place
  6. Vídeo: Efficiency
  7. Vídeo: Summary
  8. Reading: Programming Exercise: Implementing Selection Sort
  9. Practice Quiz: Implementing Selection Sort
  10. Vídeo: Introduction
  11. Vídeo: Comparable
  12. Vídeo: Ordering Quakes by Magnitude
  13. Vídeo: Comparator
  14. Vídeo: Comparator for Distance from a Location
  15. Vídeo: Summary
  16. Reading: Programming Exercise: Sorting at Scale
  17. Practice Quiz: Sorting at Scale
  18. Reading: End of Module Survey
Nota atribuída: Earthquakes: Sorting Algorithms
SEMANA 3
N-Grams: Predictive Text
In this module, you will explore some of the underlying concepts of predictive text. The first lesson will introduce random character generation and then how to train the character selection based on an input text. The second lesson will extend this concept to complete words. By the end of this module, you will be able to: (1) base random text generation on the frequency of characters in a training text, (2) collect a set of characters that occur in a text after randomly chosen initial character(s) to create a semi-random text, (3) extend the predictive text generation to use whole words, and (4) implement your own .equals method to compare complex data types.
15 vídeos, 6 leituras, 4 questionários de prática
  1. Reading: Module Learning Outcomes / Resources
  2. Vídeo: Introduction
  3. Vídeo: Order-Zero, Order-One
  4. Vídeo: Finding Follow Set
  5. Vídeo: Implementing Order-Two
  6. Vídeo: Testing and Debugging
  7. Reading: Programming Exercise: Generating Random Text
  8. Practice Quiz: Generating Random Text
  9. Vídeo: Interfaces and Abstract Classes
  10. Vídeo: Summary
  11. Reading: Programming Exercise: Interface and Abstract Class
  12. Practice Quiz: Interface and Abstract Class
  13. Vídeo: Introduction
  14. Vídeo: Order-One Concepts
  15. Vídeo: Order-One Helper Functions
  16. Reading: Programming Exercise: Word N-Grams
  17. Practice Quiz: Word N-Grams
  18. Vídeo: WordGram Class
  19. Vídeo: WordGram Class Implementation
  20. Vídeo: Equals and HashCode Methods
  21. Vídeo: Equals Method Implementation
  22. Vídeo: Summary
  23. Reading: Programming Exercise: WordGram Class
  24. Practice Quiz: WordGram Class
  25. Reading: End of Module Survey
Nota atribuída: N-Grams: Predictive Text
SEMANA 4
Java: Tools and Libraries for Everyone
As you reach the end of this series, you may wish to extend your Java experience to tools beyond those provided here. This module will cover some of the Java basic information that is needed to program without BlueJ or the edu.duke library. After completing this module, you will be able to: (1) write a main method to start a Java program in any programming environment, (2) use the “static” keyword to modify fields, (3) find alternative editors to use with Java, (4) use exceptions to debug your program and make it more robust, and (5) reference Java libraries that are necessary to read files without the edu.duke library.
13 vídeos, 3 leituras
  1. Reading: Module Learning Outcomes / Resources
  2. Vídeo: Miscellaneous Java
  3. Vídeo: Main Method
  4. Vídeo: Static
  5. Vídeo: Editors
  6. Vídeo: Summary
  7. Vídeo: Introduction
  8. Vídeo: Understanding Exceptions
  9. Vídeo: Handling Exceptions
  10. Vídeo: Declaring Exceptions
  11. Vídeo: Throwing Exceptions
  12. Vídeo: Reading Files with Java.nio
  13. Vídeo: Hello Around the World with Eclipse
  14. Vídeo: Summary
  15. Reading: Where To Go From Here
  16. Reading: End of Module Survey
Nota atribuída: Java: Tools and Libraries for Everyone

Perguntas frequentes
Como funciona
Coursework
Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates
Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

Desenvolvedores
Universidade Duke
Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.
Custo
Comprar curso
Acesso aos materiais do curso

Disponível

Acesso a materiais valendo nota

Disponível

Receba uma nota final

Disponível

Obtenha um Certificado de Curso compartilhável

Disponível

Classificações e avaliações
Avaliado em 4.6 de 5 decorrente de 559 avaliações
Nicholas Borge

Great course in general, but some of the exercises / quizzes could be a bit more precise in what they are looking for. Lots of time debugging, lots of time in forums trying to figure out what was wrong, only to find that we were using the wrong project / class because it wasn't clear which one they required.

Stanislav Stasyuk

Loved this course, simple, easy and really really short ahah

Rahul Gupta

Very Informative and course is well explained. Assignments are bit challenging but they worth it.

Xiangzhen Sun

very practical software design technique



Talvez você também goste de
Universidade Duke
Java Programming: Arrays, Lists, and Structured Data
1 curso
Universidade Duke
Java Programming: Arrays, Lists, and Structured Data
Visualizar curso
University of California, San Diego
Advanced Data Structures in Java
1 curso
University of California, San Diego
Advanced Data Structures in Java
Visualizar curso
University of California, San Diego
Estruturas dedados: medindo e otimizando o desempenho
1 curso
University of California, San Diego
Estruturas dedados: medindo e otimizando o desempenho
Visualizar curso
University of California, San Diego
Object Oriented Programming in Java
1 curso
University of California, San Diego
Object Oriented Programming in Java
Visualizar curso
Universidade Duke
Java Programming: Solving Problems with Software
1 curso
Universidade Duke
Java Programming: Solving Problems with Software
Visualizar curso
Coursera
O Coursera proporciona acesso universal à melhor educação do mundo fazendo parcerias com as melhores universidades e organizações para oferecer cursos on-line.
© 2018 Coursera Inc. Todos os direitos reservados.
Baixar na App StoreBaixar no Google Play
  • Coursera
  • Sobre
  • Liderança
  • Carreiras
  • Lista de cursos
  • Certificados
  • Notas
  • Para negócios
  • For Government
  • Comunidade
  • parceiros
  • Orientadores
  • Tradutores
  • Desenvolvedores
  • Testadores beta
  • Conectar
  • Blog
  • Facebook
  • LinkedIn
  • Twitter
  • Google+
  • Tech Blog
  • Mais
  • Termos
  • Privacidade
  • Ajuda
  • Acessibilidade
  • Imprensa
  • Contato
  • Diretório
  • Afiliados