Skip to content

s-dousse/Java-Programming-Arrays-Lists-and-Structured-Data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java-Programming-Arrays-Lists-and-Structured-Data

View Coursera Certificate 🧑‍🎓

Some of my projects for the Coursera course Java Programming: Arrays, Lists and Structured Data by Duke University

Module 1 - Basic Cryptography, Breaking the Caesar Cipher and Object-Oriented Caesar Cipher

In this module, I've learned about the basics of cryptography, the science of keeping information private and secure. As a final project, I've created OOCaesarCipher, an algorithm to encrypt and decrypt messages by shifting or unshifting the alphabet. To solve these problems, I've worked more with processing Strings, but I also learned about arrays as way to store an indexable sequence of elements.

Acquired Skills:

  1. Combine Strings using concatenation
  2. Build Strings within a Java program using StringBuilder
  3. Use arrays to store and manipulate collections of data
  4. Refactor your programs for improved organization using object-oriented principles
  5. Practice effective algorithm design

Module 2 - introduction to HashMap

Acquired Skills:

  1. Program a word frequency counter to analyze any input text file
  2. Select and substitute words from a list into a document template using both ArrayList and HashMap
  3. Create new lists to use in templates
  4. Recognize brittle code
  5. Improve code with flexible, object-oriented design.

Module 3 - Web Server Logs

In this module, I've learned about how web server logs store information about visitors to a website and write programs to access information like user IP address, date and time of access, and more.

Acquired Skills:

  1. Read information from a web server log
  2. Count the number of unique visitors to a website
  3. Count the number of times each visitor uses a website

Module 4 - MiniProject: Vigenère Cipher

in progress... 💪

In this module, I've developed a program to break the Vigenère Cipher, a more complex version of the Caesar Cipher. I improved my program in three stages:

  • decrypting messages where you know the language and key length
  • adding the capability to handle messages with unknown key length
  • extending the program to handle messages in a range of possible languages

Acquired Skills:

  1. Effectively use HashSet and HashMap
  2. Expand an algorithm from solving a simpler problem to handling broader, more complex problems
  3. Design and modify program code involving a more complex collection of classes, methods, and data

About

My projects for the Coursera course Java Programming: Arrays, Lists and Structured Data by Duke University

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages