EdX

Introduction to Java Programming: Writing Good Code (edX)

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Class Deals by MOOC List - Click here and see EdX's Active Discounts, Deals, and Promo Codes.

Emphasis is put on immediate feedback and on having a fun experience. Programming knowledge is not only useful to be able to program today’s devices such as computers and smartphones. It also opens the door to computational thinking, i.e. the application of computing techniques to every-day processes.

This course is designed taking into account the subset and recommendations of the College Board in order to prepare learners for the Advanced Placement (AP) Computer Science A exam.
This course is part of the Introduction to Java Programming Professional Certificate.

What you'll learn:

  • Detect and correct common programming errors at compile time.
  • Detect and correct common programming errors at run time using debugging tools.
  • Check that the program does what it is supposed to using unit-testing processes.
  • Compare the efficiency of two programs in terms of the resources used.
  • Model simple programs using basic software engineering techniques.
  • Determine if a program has been developed respecting ethical considerations.

Syllabus

1. Debugging
The first week starts from basic errors that occur at compile time and at run time when developing programs, and introduces debugging as a powerful and flexible strategy to detect and correct errors. The Eclipse IDE Debugger will be used to illustrate the debugging process with practical examples.

2. Reasoning & Testing
The second week addresses formal mechanisms to test that programs do what is expected of them, introducing unit testing processes, particularized in the JUnit framework for testing programs written in the Java language.

3. Complexity
The third week analyzes programs from the point of view of efficiency in the use of resources, such as computation time and storage, and presents simple mechanisms to improve the efficiency of Java programs.

4. Software Engineering
The fourth week introduces basic principles of software engineering with the aim to improve robustness, modularity, reusability and maintainability of programs.

5. Ethics
The last week studies ethical issues related to software development, including privacy, legal issues, intellectual property rights, and social ramifications.

Prerequisites
It is recommended to be familiar with the topics covered in Introduction to Introduction to programming with Java, Part 1: Starting to Code with Java.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Laudato si': On Care for Our Common Home (edX) EdX
SDGAcademyX,SDG Academy

Laudato si': On Care for Our Common Home (edX)

A mini-course on the urgent call to action: protect the earth and its inhabitants from ruin. What is “Laudato Si”? First presented by Pope Francis – spiritual leader to the world’s 1.2 billion Catholics – to his faith-based cohort, it is a call to action addressed not only to Catholics, but to all people of the world. Laudato Si’: On Care for Our Common Home raises the profile of the grave ecological crisis that humanity has created and issues a moral clarion call for urgent action to protect the earth and its inhabitants from ruin.

Self Paced
Self-Paced
Unix Tools: Data, Software and Production Engineering (edX) EdX
Delft University of Technology,DelftX

Unix Tools: Data, Software and Production Engineering (edX)

Grow from being a Unix novice to Unix wizard status! Process big data, analyze software code, run DevOps tasks and excel in your everyday job through the amazing power of the Unix shell and command-line tools. Processing information is the hallmark of all modern organizations, which are increasingly digital: absorbing, processing and generating information is a key element of their business.

Self Paced
Self-Paced
Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
HTML5 Coding Essentials and Best Practices (edX) EdX
World Wide Web Consortium - W3C,W3Cx

HTML5 Coding Essentials and Best Practices (edX)

Learn how to write Web pages and Web sites by mastering HTML5 coding techniques and best practices. HTML5 is the standard language of the Web, developed by W3C. For application developers and industry, HTML5 represents a set of features that people will be able to rely on for years to come. HTML5 is supported on a wide variety of devices, lowering the cost of creating rich applications to reach users everywhere.

Self Paced
Self-Paced
Justice Today: Money, Markets, and Morals (edX) EdX
HarvardX,Harvard University

Justice Today: Money, Markets, and Morals (edX)

Explore the ethical controversies of financial markets. Should you be able to buy a vote, citizenship, or college admission? Would you bet on someone else’s life—or, more accurately their death date? What about paying to see the exploitation of a person? Competition, status, and greed often cause one’s moral compass to move in the wrong direction, but if there is a market to support these macabre sales, then the question to consider is this: Are there certain moral and civic goods, that markets do not honor, and money cannot buy?

Self Paced
Self-Paced
Ethics in Action (edX) EdX
SDGAcademyX,SDG Academy

Ethics in Action (edX)

What do the world’s great religious and secular philosophies have to say about ethical conduct? Which virtues are common across faiths? And what role do religious communities have to play in building a more just and sustainable world? The challenges of sustainable development are more than technical or political—they are also moral, calling on us to examine who we are as human beings, and who we want to be going forward.

Self Paced
Self-Paced
Introducción a la Ingeniería del Software (edX) EdX
Universidad Autonoma de Madrid,UAMx

Introducción a la Ingeniería del Software (edX)

Conoce las distintas fases de desarrollo por las que pasa un proyecto informático, así como las actividades de gestión necesarias para lograr finalizar el proyecto con éxito. ¿Alguna vez te has preguntado qué es y para qué sirve la Ingeniería de Software? ¿Quieres saber por qué es tan necesaria esta disciplina y por qué se utiliza tanto en entornos tecnológicos? ¿O cuál es el motivo de que muchos proyectos informáticos no finalizan en tiempo y coste o con la calidad deseada?

Self Paced
Self-Paced
Introduction to Human Resources (HR) leadership and HR management strategies (edX) EdX
Stellenbosch University,StellenboschX

Introduction to Human Resources (HR) leadership and HR management strategies (edX)

This introductory course will introduce the learner to ‘strategic HR’ as a key, value-adding function in the organization – helping it to achieve its business objectives. It will unpack key concepts from a strategic HR point of view, such as ‘ethics and governance’, ‘HR risk management’ and a ‘digital HR strategy’. Finally, it will consider the future of work and what a global HR strategy entails.

Self Paced
Self-Paced
Computing in Python I: Fundamentals and Procedural Programming (edX) EdX
Georgia Institute of Technology,GTx

Computing in Python I: Fundamentals and Procedural Programming (edX)

Learn the fundamentals of computing in Python, including variables, operators, and writing and debugging your own programs. This course starts from the beginning, covering the basics of how a computer interprets lines of code; how to write programs, evaluate their output, and revise the code itself; how to work with variables and their changing values; and how to use mathematical, boolean, and relational operators.

Self Paced
Self-Paced
Introducción a la programación en Java: estructuras de datos y algoritmos (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introducción a la programación en Java: estructuras de datos y algoritmos (edX)

¡Aprende a mejorar tu código en Java utilizando estructuras de datos fundamentales y potentes algoritmos de programación! En este curso introductorio de java aprenderás programación en Java de forma fácil e interactiva. Trabajarás con estructuras de datos fundamentales, tales como listas, pilas, colas y árboles, sobre las cuales se presentarán algoritmos para insertar, eliminar, buscar y ordenar información de una manera eficiente.

Self Paced
Self-Paced
CS50's Introduction to Computer Science (edX) EdX
HarvardX,Harvard University

CS50's Introduction to Computer Science (edX)

An introduction to the intellectual enterprises of computer science and the art of programming. This is CS50, Harvard University's introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50 teaches students how to think algorithmically and solve problems efficiently.

Self Paced
Self-Paced