SlideShare a Scribd company logo
Java Programming: Solving
Problems with Software
About the Course
• Building upon Duke’s “Programming and the Web for Beginners” course, you will grow in your
ability to be a problem-solver and programmer by writing Java programs. We are excited that
you've chosen to learn Java with us! You will soon be able to solve problems that you find
interesting and useful by practicing a design process you will learn in this course.
• Java concepts presented in this course include basic control flow; object-oriented concepts
including classes and methods; custom, open-source classes; and a design-implement-debug
process that you can continue to leverage as you build your experience and knowledge of
programming principles.
• The custom, open-source classes will provide a consistent application programming interface
(API) so that you can write programs that access and transform images, websites, comma
separated value (CSV) files and other data files using simple and accessible coding idioms built on
the Java Iterable interface. You will learn to design, test, and debug programs and to find and read
Java documentation that can serve as the basis for continued study of Java and programming.
• After completing this course you will be able to:
• 1. Edit, compile, and run a Java program;
• 2. Use conditionals and for loops appropriately in a Java program;
• 3. Use Java API documentation in writing programs.
• 4. Debug a Java program using the scientific method;
• 5. Develop a Java method to solve a specific problem;
• 6. Develop a set of test cases as part of developing a program;
• 7. Create a class with multiple methods that work together to solve a
problem; and
• 8. Use divide-and-conquer design techniques for a program that uses more
than one method.
Welcome to the Course
• Welcome to “Java Programming: Solving Problems with Software”!
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 get to meet the
instructor team from Duke University, have an overview of the course,
and hear from Google engineers about why they find programming
exciting and why Java is important. Have fun!
Iterables in Java
• In this module, you will learn to design and run your first Java programs,
including one program that prints “Hello!” in various countries’ languages
and another where you will copy and edit many files by converting color
images to grayscale. To accomplish these tasks, you will learn about classes
constructed for this course: Iterables libraries that allow you to perform the
same task over multiple lines in a document or webpage or multiple files
within a directory. By the end of this module, you will be able to: (1)
Download and run BlueJ, the Java programming environment for this
course; (2) Access the documentation for the Java libraries specially
designed for this course; (3) Edit, compile, and run a Java program; (4)
Construct for loops in Java; and (5) Use Iterables to run a program that
iterates over multiples lines in a document or webpage or multiple files in a
directory.
Strings in Java
• This module begins with a short presentation from Raluca Gordân, an assistant
professor in Duke University’s Center for Genomic and Computational Biology,
about an important problem genomics scientists encounter regularly: how to
identify genes in a strand of DNA. To tackle this problem, you will need to
understand strings: series of characters such as letters, digits, punctuation, etc.
After learning about Java methods that work with strings, you will be able to find
genes within a DNA string as well as tackle other string related problems, such as
finding all of the links in a web page. By the end of this module, you will be able
to: (1) Use important methods for the Java String class; (2) Use conditionals, for
loops, and while loops appropriately in a Java program; (3) Find patterns in the
data represented by strings to help develop the algorithm for your program; (4)
Understand the importance of designing programs that keep different data
processing steps separate; (5) Use the StorageResource iterable for this course to
store some data for further processing; and (6) Rely on Java documentation to
better understand how to use different Java packages and classes.
CSV Files and Basic Statistics in Java
• A common format for storing tabular data (any data organized into
columns and rows) is in comma separated values (CSV) files. In this module,
you will learn how to analyze and manipulate data from multiple CSV data
files using a powerful open-source software package: Apache Commons
CSV. Using this library will empower you to solve problems that could prove
too complex to solve with a spreadsheet. By the end of this module, you
will be able to: (1) Use the open-source Apache Commons CSV package in
your own Java programs; (2) Access data from one or many CSV files using
Java; (3) Convert strings into numbers; (4) Understand how to use “null” in
Java programs (when you want to represent “nothing”); (5) Devise an
algorithm (and implement in Java) to answer questions about CSV data;
and (6) Analyze CSV data across multiple CSV files (for example, find
maximums, minimums, averages, and other simple statistical results).
MiniProject: Baby Names
• This module wraps up the course with a mini project that ties
together the different practices, skills, and libraries you have gained
across the course! Using data on the popularity of different baby
names in the United States from the past several decades, you will be
able to compare different names’ popularity over time. While the
data we have collected for this course is from the United States, we
welcome you to share data from other countries in the course
discussion forums. Good luck with the mini project!

More Related Content

PPTX
Index registers in Central Processing Unit
AhsanRazaKolachi
 
PDF
Is unit 2_conventional encryption techniques
Sarthak Patel
 
PPT
Debuter en Python.ppt
SofienBoutaib
 
PDF
Cours d'algorithmique
ABDESSELAM ARROU
 
PPT
Array in Java
Shehrevar Davierwala
 
PPT
5.3 dynamic programming
Krish_ver2
 
PDF
4th Semester Computer Science and Engineering (ACU-2022) Question Paper
BGS Institute of Technology, Adichunchanagiri University (ACU)
 
PPTX
priority interrupt computer organization
chnrketan
 
Index registers in Central Processing Unit
AhsanRazaKolachi
 
Is unit 2_conventional encryption techniques
Sarthak Patel
 
Debuter en Python.ppt
SofienBoutaib
 
Cours d'algorithmique
ABDESSELAM ARROU
 
Array in Java
Shehrevar Davierwala
 
5.3 dynamic programming
Krish_ver2
 
4th Semester Computer Science and Engineering (ACU-2022) Question Paper
BGS Institute of Technology, Adichunchanagiri University (ACU)
 
priority interrupt computer organization
chnrketan
 

What's hot (8)

PPTX
Euler graph
AAQIB PARREY
 
PPTX
Pipelining and vector processing
Kamal Acharya
 
PPTX
Memory organization in computer architecture
Faisal Hussain
 
PPT
Assembly language programming(unit 4)
Ashim Saha
 
PPTX
Control unit
Piyush Rochwani
 
PDF
Uml 2 pratique de la modélisation
Nassim Amine
 
PPTX
Cache memory and virtual memory
PrakharBansal29
 
PPTX
Von-Neumann machine and IAS architecture
Shishir Aryal
 
Euler graph
AAQIB PARREY
 
Pipelining and vector processing
Kamal Acharya
 
Memory organization in computer architecture
Faisal Hussain
 
Assembly language programming(unit 4)
Ashim Saha
 
Control unit
Piyush Rochwani
 
Uml 2 pratique de la modélisation
Nassim Amine
 
Cache memory and virtual memory
PrakharBansal29
 
Von-Neumann machine and IAS architecture
Shishir Aryal
 
Ad

Similar to Java programming - solving problems with software (20)

PPT
Java for C++ programers
Salahaddin University-Erbil
 
PPTX
Demo Lecture 01 Notes.pptx by Sabki Kaksha
GandhiSarthak
 
PPTX
Demo Lecture 01 Notes paid , course notes
GandhiSarthak
 
PDF
Core Java Vol 1 2 For The Impatient And Effective Pack 12th Ed Cay S Horstmann
makozoleva
 
PPTX
Carrier Advice for a JAVA Developer How to Become a Java Programmer
jeetendra mandal
 
PPT
Introduction to oops
Umamaheshwariv1
 
PDF
Get Programming with Scala MEAP V05 Daniela Sfregola
biruktresehb
 
PPTX
Java Tutorial Lab 1
Berk Soysal
 
PDF
Introduction to Java Programming.pdf
AdiseshaK
 
PDF
Learn Advanced Java Programming With Beginners Md Pulok
lwafaziurka
 
PPT
Java_notes.ppt
tuyambazejeanclaude
 
PPTX
object oriented programming systems OOPS
GUNASEKARAN331094
 
PDF
Java Programming
Prof. Dr. K. Adisesha
 
PDF
Functional programming in scala coursera
Ketan Raval
 
PPT
01.intro
Philip Johnson
 
PDF
Learn java in one day and learn it well 2016 jamie chan
anand_study
 
PPTX
core java basic learning presentation part 1
AaruPathan
 
DOCX
java full stack content 2 (2023).docx
MUDDUKRISHNA14
 
DOCX
java full stack content
MUDDUKRISHNA14
 
DOCX
java full stack
MUDDUKRISHNA14
 
Java for C++ programers
Salahaddin University-Erbil
 
Demo Lecture 01 Notes.pptx by Sabki Kaksha
GandhiSarthak
 
Demo Lecture 01 Notes paid , course notes
GandhiSarthak
 
Core Java Vol 1 2 For The Impatient And Effective Pack 12th Ed Cay S Horstmann
makozoleva
 
Carrier Advice for a JAVA Developer How to Become a Java Programmer
jeetendra mandal
 
Introduction to oops
Umamaheshwariv1
 
Get Programming with Scala MEAP V05 Daniela Sfregola
biruktresehb
 
Java Tutorial Lab 1
Berk Soysal
 
Introduction to Java Programming.pdf
AdiseshaK
 
Learn Advanced Java Programming With Beginners Md Pulok
lwafaziurka
 
Java_notes.ppt
tuyambazejeanclaude
 
object oriented programming systems OOPS
GUNASEKARAN331094
 
Java Programming
Prof. Dr. K. Adisesha
 
Functional programming in scala coursera
Ketan Raval
 
01.intro
Philip Johnson
 
Learn java in one day and learn it well 2016 jamie chan
anand_study
 
core java basic learning presentation part 1
AaruPathan
 
java full stack content 2 (2023).docx
MUDDUKRISHNA14
 
java full stack content
MUDDUKRISHNA14
 
java full stack
MUDDUKRISHNA14
 
Ad

More from Son Nguyen (20)

PPTX
Your new maven friend – the mule maven
Son Nguyen
 
PPTX
Soa governance for the modern business
Son Nguyen
 
PPTX
Quality sdk for your apis in minutes!
Son Nguyen
 
PPTX
Maven tools & archetypes
Son Nguyen
 
PPTX
Let api change your relationship with your doctor
Son Nguyen
 
PPTX
Increase revenue and reinvigorate your business with api
Son Nguyen
 
PPTX
How to – wrap soap web service around a database
Son Nguyen
 
PPTX
How to – rest api proxy to soap webservice
Son Nguyen
 
PPTX
Anypoint runtime manager v1
Son Nguyen
 
PPTX
A good api strategy can help turn your
Son Nguyen
 
PPTX
10 steps to design and build the perfect
Son Nguyen
 
PPTX
What is the difference between using private flow
Son Nguyen
 
PPTX
Troubleshooting mule
Son Nguyen
 
PPTX
Running mule as worker role on azure
Son Nguyen
 
PPTX
Real time data processing with anypoint connector for kafka
Son Nguyen
 
PPTX
Performance tuning in mule
Son Nguyen
 
PPTX
Mule intelli j tips
Son Nguyen
 
PPTX
Introducing the anypoint connector for redis
Son Nguyen
 
PPTX
How to – data integrity checks in batch processing
Son Nguyen
 
PPTX
How soa paved the way for cloud
Son Nguyen
 
Your new maven friend – the mule maven
Son Nguyen
 
Soa governance for the modern business
Son Nguyen
 
Quality sdk for your apis in minutes!
Son Nguyen
 
Maven tools & archetypes
Son Nguyen
 
Let api change your relationship with your doctor
Son Nguyen
 
Increase revenue and reinvigorate your business with api
Son Nguyen
 
How to – wrap soap web service around a database
Son Nguyen
 
How to – rest api proxy to soap webservice
Son Nguyen
 
Anypoint runtime manager v1
Son Nguyen
 
A good api strategy can help turn your
Son Nguyen
 
10 steps to design and build the perfect
Son Nguyen
 
What is the difference between using private flow
Son Nguyen
 
Troubleshooting mule
Son Nguyen
 
Running mule as worker role on azure
Son Nguyen
 
Real time data processing with anypoint connector for kafka
Son Nguyen
 
Performance tuning in mule
Son Nguyen
 
Mule intelli j tips
Son Nguyen
 
Introducing the anypoint connector for redis
Son Nguyen
 
How to – data integrity checks in batch processing
Son Nguyen
 
How soa paved the way for cloud
Son Nguyen
 

Recently uploaded (20)

PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
PDF
NewMind AI Monthly Chronicles - July 2025
NewMind AI
 
PPTX
The Power of IoT Sensor Integration in Smart Infrastructure and Automation.pptx
Rejig Digital
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
CIFDAQ
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
Shreyas_Phanse_Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
SHREYAS PHANSE
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
Captain IT
 
PDF
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
PDF
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Make GenAI investments go further with the Dell AI Factory - Infographic
Principled Technologies
 
PDF
DevOps & Developer Experience Summer BBQ
AUGNYC
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
CIFDAQ'S Market Insight: BTC to ETH money in motion
CIFDAQ
 
NewMind AI Monthly Chronicles - July 2025
NewMind AI
 
The Power of IoT Sensor Integration in Smart Infrastructure and Automation.pptx
Rejig Digital
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
CIFDAQ's Token Spotlight: SKY - A Forgotten Giant's Comeback?
CIFDAQ
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
Shreyas_Phanse_Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
SHREYAS PHANSE
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Software Development Methodologies in 2025
KodekX
 
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
Captain IT
 
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
Revolutionize Operations with Intelligent IoT Monitoring and Control
Rejig Digital
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Make GenAI investments go further with the Dell AI Factory - Infographic
Principled Technologies
 
DevOps & Developer Experience Summer BBQ
AUGNYC
 

Java programming - solving problems with software

  • 2. About the Course • Building upon Duke’s “Programming and the Web for Beginners” course, you will grow in your ability to be a problem-solver and programmer by writing Java programs. We are excited that you've chosen to learn Java with us! You will soon be able to solve problems that you find interesting and useful by practicing a design process you will learn in this course. • Java concepts presented in this course include basic control flow; object-oriented concepts including classes and methods; custom, open-source classes; and a design-implement-debug process that you can continue to leverage as you build your experience and knowledge of programming principles. • The custom, open-source classes will provide a consistent application programming interface (API) so that you can write programs that access and transform images, websites, comma separated value (CSV) files and other data files using simple and accessible coding idioms built on the Java Iterable interface. You will learn to design, test, and debug programs and to find and read Java documentation that can serve as the basis for continued study of Java and programming.
  • 3. • After completing this course you will be able to: • 1. Edit, compile, and run a Java program; • 2. Use conditionals and for loops appropriately in a Java program; • 3. Use Java API documentation in writing programs. • 4. Debug a Java program using the scientific method; • 5. Develop a Java method to solve a specific problem; • 6. Develop a set of test cases as part of developing a program; • 7. Create a class with multiple methods that work together to solve a problem; and • 8. Use divide-and-conquer design techniques for a program that uses more than one method.
  • 4. Welcome to the Course • Welcome to “Java Programming: Solving Problems with Software”! 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 get to meet the instructor team from Duke University, have an overview of the course, and hear from Google engineers about why they find programming exciting and why Java is important. Have fun!
  • 5. Iterables in Java • In this module, you will learn to design and run your first Java programs, including one program that prints “Hello!” in various countries’ languages and another where you will copy and edit many files by converting color images to grayscale. To accomplish these tasks, you will learn about classes constructed for this course: Iterables libraries that allow you to perform the same task over multiple lines in a document or webpage or multiple files within a directory. By the end of this module, you will be able to: (1) Download and run BlueJ, the Java programming environment for this course; (2) Access the documentation for the Java libraries specially designed for this course; (3) Edit, compile, and run a Java program; (4) Construct for loops in Java; and (5) Use Iterables to run a program that iterates over multiples lines in a document or webpage or multiple files in a directory.
  • 6. Strings in Java • This module begins with a short presentation from Raluca Gordân, an assistant professor in Duke University’s Center for Genomic and Computational Biology, about an important problem genomics scientists encounter regularly: how to identify genes in a strand of DNA. To tackle this problem, you will need to understand strings: series of characters such as letters, digits, punctuation, etc. After learning about Java methods that work with strings, you will be able to find genes within a DNA string as well as tackle other string related problems, such as finding all of the links in a web page. By the end of this module, you will be able to: (1) Use important methods for the Java String class; (2) Use conditionals, for loops, and while loops appropriately in a Java program; (3) Find patterns in the data represented by strings to help develop the algorithm for your program; (4) Understand the importance of designing programs that keep different data processing steps separate; (5) Use the StorageResource iterable for this course to store some data for further processing; and (6) Rely on Java documentation to better understand how to use different Java packages and classes.
  • 7. CSV Files and Basic Statistics in Java • A common format for storing tabular data (any data organized into columns and rows) is in comma separated values (CSV) files. In this module, you will learn how to analyze and manipulate data from multiple CSV data files using a powerful open-source software package: Apache Commons CSV. Using this library will empower you to solve problems that could prove too complex to solve with a spreadsheet. By the end of this module, you will be able to: (1) Use the open-source Apache Commons CSV package in your own Java programs; (2) Access data from one or many CSV files using Java; (3) Convert strings into numbers; (4) Understand how to use “null” in Java programs (when you want to represent “nothing”); (5) Devise an algorithm (and implement in Java) to answer questions about CSV data; and (6) Analyze CSV data across multiple CSV files (for example, find maximums, minimums, averages, and other simple statistical results).
  • 8. MiniProject: Baby Names • This module wraps up the course with a mini project that ties together the different practices, skills, and libraries you have gained across the course! Using data on the popularity of different baby names in the United States from the past several decades, you will be able to compare different names’ popularity over time. While the data we have collected for this course is from the United States, we welcome you to share data from other countries in the course discussion forums. Good luck with the mini project!