Computer Science: Programming with a Purpose

  • 4.7
Approx. 88 hours to complete

Course Summary

This course teaches programming concepts using the Java programming language. It covers fundamental programming concepts, object-oriented programming (OOP) principles, and intermediate and advanced Java programming.

Key Learning Points

  • Learn Java programming from scratch
  • Understand object-oriented programming concepts
  • Build intermediate and advanced Java programs

Related Topics for further study


Learning Outcomes

  • Understand programming concepts and principles
  • Develop intermediate and advanced Java programs
  • Apply object-oriented programming principles in software development

Prerequisites or good to have knowledge before taking this course

  • Basic computer skills
  • Familiarity with programming concepts is helpful

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Java Programming and Software Engineering Fundamentals
  • Java for Android
  • Object Oriented Programming in Java

Notable People in This Field

  • Computer Scientist
  • Computer Scientist

Related Books

Description

The basis for education in the last millennium was “reading, writing, and arithmetic;” now it is reading, writing, and computing. Learning to program is an essential part of the education of every student, not just in the sciences and engineering, but in the arts, social sciences, and humanities, as well. Beyond direct applications, it is the first step in understanding the nature of computer science’s undeniable impact on the modern world. This course covers the first half of our book Computer Science: An Interdisciplinary Approach (the second half is covered in our Coursera course Computer Science: Algorithms, Theory, and Machines). Our intent is to teach programming to those who need or want to learn it, in a scientific context.

Outline

  • BASIC PROGRAMMING CONCEPTS
  • Why programming?
  • Program development
  • Built-in data types
  • Type conversion
  • Supplements for Lecture 1
  • Optional Enrichment on Basic Programming Concepts
  • CONDITIONALS AND LOOPS
  • Conditionals: the if statement
  • Loops: the while statement
  • An alternative: the for loop
  • Nesting
  • Debugging
  • Supplements for Lecture 2
  • Optional Enrichment on Conditionals and Loops
  • ARRAYS
  • Basic concepts
  • Typical array-processing code
  • Two-dimensional arrays
  • Supplements for Lecture 3
  • Optional Enrichment on Arrays
  • INPUT AND OUTPUT
  • Standard input and output
  • Standard drawing
  • Fractal drawings
  • Animation
  • Supplements for Lecture 4
  • Optional Enrichment on Input and Output
  • FUNCTIONS AND LIBRARIES
  • Basic concepts
  • Case study: Digital audio
  • Application: Gaussian distribution
  • Modular programming and libraries
  • Supplements for Lecture 5
  • Optional Enrichment on Functions and Libraries
  • RECURSION
  • Foundations
  • A classic example
  • Recursive graphics
  • Avoiding exponential waste
  • Dynamic programming
  • Supplements for Lecture 6
  • Optional Enrichment on Recursion
  • PERFORMANCE
  • The challenge
  • Empirical analysis
  • Mathematical models
  • Doubling method
  • Familiar examples
  • Supplements for Lecture 7
  • Optional Enrichment on Performance
  • ABSTRACT DATA TYPES
  • Overview
  • Color
  • Image processing
  • String processing
  • Supplements for Lecture 8
  • Optional Enrichment on Abstract Data Types
  • CREATING DATA TYPES
  • Overview
  • Point charges
  • Turtle graphics
  • Complex numbers
  • Supplements for Lecture 9
  • Optional Enrichment on Creating Data Types
  • PROGRAMMING LANGUAGES
  • Popular languages
  • Java in context
  • Object-oriented programming
  • Type checking
  • Functional programming
  • Supplements for Lecture 10

Summary of User Reviews

Key Aspect Users Liked About This Course

The course covers a wide range of Java programming concepts and provides ample practice exercises to reinforce learning.

Pros from User Reviews

  • Clear and concise explanations of programming concepts.
  • Hands-on practice exercises that help reinforce learning.
  • Instructors are knowledgeable and responsive to student questions.
  • Course content is well-organized and easy to follow.

Cons from User Reviews

  • Some students found the pace of the course to be too fast.
  • The course may be too basic for those with prior programming experience.
  • The grading system for assignments and quizzes can be confusing.
  • Some students found the course to be too theoretical with not enough practical applications.
English
Available now
Approx. 88 hours to complete
Robert Sedgewick, Kevin Wayne
Princeton University
Coursera

Instructor

Robert Sedgewick

  • 4.7 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses