We may earn an affiliate commission when you visit our partners.
Course image
Jean-Cédric Chappelier and Jamila Sam

Ce « cours » n'est pas un cours au sens strict du terme mais un projet.

La pratique étant essentielle dans l'apprentissage de programmation,

nous avons conçu de cours-projet pour vous permettre de consolider vos

Read more

Ce « cours » n'est pas un cours au sens strict du terme mais un projet.

La pratique étant essentielle dans l'apprentissage de programmation,

nous avons conçu de cours-projet pour vous permettre de consolider vos

acquis en programmation Java. Il est décomposé en 14 étapes (sur 7

semaines) dont le but est de vous permettre de mettre en pratique, à

grande échelle, les concepts et techniques appris dans nos deux

précédents MOOCs (https://www.coursera.org/learn/initiation-programmation-java/ et https://www.coursera.org/learn/programmation-orientee-objet-java/)

Les principaux objectifs visés :

+ d'exposer d'avantage certaines problématiques typiques de conception OO,

difficiles à illustrer sur des exercices simples ;

+ d'introduire par la pratique certaines méthodologies de

conception (ce que l'on appelle des patrons de conception) ;

+ de vous apprendre à mettre en oeuvre une approche incrémentale

et des tests progressifs lors de l'élaboration de programmes de

plus grande envergure.

Ce que vous aurez à faire c'est, étape par étape, de

+ lire et comprendre la donnée,

+ comprendre les problématiques de conception sous-jacentes et

comment nous vous proposons de les résoudre,

+ coder votre solution,

+ et enfin, bien sûr, la soumettre au correcteur automatique.

Ainsi progressivement vous développerez tout un projet, en l’occurrence

la simulation d'une colonie de fourmis, tout en approfondissant vos

connaissances OO.

Enroll now

Two deals to help you save

What's inside

Syllabus

Mise en place et premières classes
Prise de connaissance et mise en place du projet ; implémentation des deux premières classes outils.
Environnement et nourriture
Read more
(1) mise en place du « lieu de vie » des futurs animaux et leur fournir de la nourriture ; (2) comprendre la mise en pratique de l'encapsulation (orientée-objet) au travers de « vues » ; (3) utiliser l'interface graphique fournie.
Déplacement des animaux
Continuer à modéliser les animaux et leur permettre de se déplacer de façon simple, puis ajouter de l'aléatoire dans leur déplacement.
Fourmis (1/3)
(1) modéliser les fourmis et les fourmilières ; (2) comprendre le concept du « double dispatch ».
FOURMIS (2/3)
(1) implémenter un comportement propre aux fourmis ouvrières ; (2) modéliser les phéromones puis commencer à les intégrer au projet.
Fourmis (3/3)
(1) mettre en place les stratégies spécifiques de déplacement pour les animaux ; (2) finaliser l'intégration des phéromones ; (3) puis mettre en œuvre le déplacement sensoriel.
Termites et combats
(1) compléter la modélisation des termites ; (2) permettre aux animaux de reconnaître leurs ennemis ; (3) simuler les mécanismes de prédation et de combat.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Object-Oriented Programming, a core skill in Computer Science
Covers a range of OO principles and concepts through a practical project
Suitable for learners with prior knowledge in Java programming, as the course builds upon these concepts
Methodology used focuses on incremental and iterative development, preparing learners for real-world scenarios
Interactive hands-on approach through the coding exercises

Save this course

Save Projet de programmation (en Java) to your list so you can find it easily later:
Save

Reviews summary

Projet de programmation java: course project practice

This course is a project-based course that provides practice in Java programming. It is a good course for students who want to improve their Java programming skills and learn more about object-oriented programming.
Students will get very good practice in Java.
"Good JAVA Programming practise."
"perfect project, I recommend it strongly to anyone who wants to get out of trivial programming projects for a while!"
The instructions for the course are sometimes unclear.
"Les énoncés ne sont pas toujours claires"
"il faut revoir les enoncers car des fois le but n'est pas claire surtout les premières semaines"
The course covers challenging concepts.
"Ces nouveaux concepts sont d'ailleurs parfois très ardus; il m'a souvent fallu googler, et même demander de l'aide pour comprendre des points comme le "double dispatch" !"

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Projet de programmation (en Java) with these activities:
Refresher on OOP concepts
Reviewing the basics of OOP will enhance your understanding of the concepts introduced in this course.
Show steps
  • Read chapters 1-4 of the book.
  • Summarize the key concepts of OOP.
  • Complete the practice exercises at the end of each chapter.
Follow a tutorial on Java concurrency
Following a tutorial on Java concurrency will give you a better understanding of how to write concurrent and multithreaded code.
Browse courses on Java Programming
Show steps
  • Find a tutorial on Java concurrency.
  • Follow the tutorial and complete the exercises.
  • Apply what you learned to your own projects.
Solve LeetCode problems on Java data structures and algorithms
Solving LeetCode problems will help you improve your problem-solving skills and understanding of data structures and algorithms.
Browse courses on Java Programming
Show steps
  • Choose a LeetCode problem to solve.
  • Analyze the problem and come up with a solution.
  • Implement your solution in Java.
  • Submit your solution and review the feedback.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a Java workshop
Attending a Java workshop will expose you to new ideas and trends in Java development.
Browse courses on Java Programming
Show steps
  • Find a Java workshop that interests you.
  • Register for the workshop.
  • Attend the workshop and participate in the activities.
  • Follow up with the organizers or speakers after the workshop.
Develop a simple Java game
Putting your knowledge into practice by creating a simple game will solidify your understanding of Java programming.
Browse courses on Java Programming
Show steps
  • Plan and design your game.
  • Implement the core gameplay mechanics.
  • Add graphics and sound effects.
  • Test and debug your game.
  • Deploy and share your game.
Contribute to an open-source Java project
Contributing to an open-source Java project will give you hands-on experience with real-world software development.
Browse courses on Java Programming
Show steps
  • Find an open-source Java project that you are interested in.
  • Read the project documentation and familiarize yourself with the codebase.
  • Identify an area where you can contribute and create a pull request.
  • Get your pull request reviewed and merged.
Write a blog post on a Java design pattern
Explaining a Java design pattern in writing will deepen your understanding and improve your communication skills.
Browse courses on Java Programming
Show steps
  • Choose a Java design pattern to write about.
  • Research and gather information about the pattern.
  • Write a clear and concise explanation of the pattern.
  • Provide examples of how the pattern can be used.
  • Publish your blog post.
Create a Java library for a specific task
Developing a reusable Java library will challenge you to think in a modular and extensible way.
Browse courses on Java Programming
Show steps
  • Identify a problem or task that can be solved using a library.
  • Design and implement the core functionality of the library.
  • Write unit tests to verify the correctness of the library.
  • Document the library and its usage.
  • Release the library as open source.

Career center

Learners who complete Projet de programmation (en Java) will develop knowledge and skills that may be useful to these careers:
Java Developer
A Java Developer is someone who specializes in writing and maintaining applications for desktop or mobile devices using the Java platform. This course can be an excellent foundation to start building the necessary skills. It can also help those with some experience in Java to enhance their abilities and knowledge of Java-based solutions, debugging, testing, maintenance, and deployment.
Software Engineer
Software Engineers develop and maintain software applications. Those aiming to become Software Engineers can benefit from taking this course. It can help them build a solid foundation in programming. They will also gain valuable experience in the Java programming language, which is widely used in the software industry.
Computer Programmer
Computer Programmers develop, maintain, and improve computer programs and applications. Taking this course can be helpful for someone looking to start or advance their career as a Computer Programmer. It provides a strong foundation in programming concepts and Java, a popular programming language used in many industries.
Web Developer
Web Developers design and develop websites. This course can be an excellent starting point for aspiring Web Developers who are interested in working with the Java programming language. The course covers essential concepts and techniques used in web development, providing a solid foundation for building dynamic and interactive web applications.
Mobile Application Developer
Mobile Application Developers create applications for mobile devices. Those interested in becoming Mobile Application Developers may find this course useful. It can help them learn the fundamentals of programming, object-oriented design, and Java, which is widely used for Android and other mobile app development.
Game Developer
Game Developers design, develop, and test video games. This course can be an excellent starting point for those interested in pursuing a career in Game Development. It provides a strong foundation in programming, object-oriented design, and Java, a popular language used in game development.
Data Scientist
Data Scientists use scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. The course can be particularly relevant for those interested in exploring the intersection of data science and computer science. It can help them develop programming skills necessary for data analysis, data visualization, and machine learning.
Database Administrator
Database Administrators maintain and optimize database management systems. This course can be helpful for those who want to become Database Administrators. It can provide them with a strong foundation in programming, data structures, and Java, which is sometimes used for database development and administration.
Systems Analyst
Systems Analysts analyze, design, and implement computer systems. This course can be beneficial for individuals aiming to become Systems Analysts. It can help them develop programming and problem-solving skills, as well as a solid understanding of object-oriented programming and Java, which is used in many enterprise systems.
Quality Assurance Analyst
Quality Assurance Analysts test and evaluate software applications to ensure they meet quality standards. This course can be helpful for those interested in becoming Quality Assurance Analysts. It can provide them with a foundation in programming, testing techniques, and Java, which is used in many software development projects.
Technical Writer
Technical Writers create documentation for technical products and services. This course may be useful for aspiring Technical Writers who want to specialize in software documentation. It can help them develop programming knowledge and Java proficiency, which can be advantageous when explaining technical concepts to non-technical audiences.
User Experience Designer
User Experience Designers improve the user experience of products and services. Individuals interested in becoming User Experience Designers may find this course helpful. It can introduce them to programming concepts and Java, which can be beneficial when designing and evaluating user interfaces for software applications.
Information Technology Support Specialist
Information Technology Support Specialists provide technical support to users of computer systems and software. Taking this course may be beneficial for those who want to become Information Technology Support Specialists. It can provide them with a foundation in programming, troubleshooting, and customer service, which are essential for supporting users effectively.
Network Administrator
Network Administrators manage and maintain computer networks. This course may be helpful for those who want to become Network Administrators. It can provide them with basic programming knowledge and an understanding of Java, which can be useful when managing and troubleshooting network systems.
Cybersecurity Analyst
Cybersecurity Analysts protect computer systems and networks from cyber threats. This course may be useful for those interested in becoming Cybersecurity Analysts. It can help them develop programming skills and an understanding of Java, which can be beneficial when analyzing and defending against cyber threats.

Reading list

We've selected 14 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Projet de programmation (en Java).
The Art of Object-Oriented Programming classic book that describes the principles of object-oriented programming and the design patterns that are commonly used in object-oriented programming. comprehensive guide to object-oriented programming for both beginners and experienced developers.
Introduction to Algorithms textbook that describes the fundamental algorithms used in computer science. comprehensive guide to algorithms for both beginners and experienced developers.
Effective Java, Third Edition classic work that distills the best practices of Java programming into 78 highly practical and pragmatic guidelines. is an excellent resource for any Java programmer, from beginner to experienced.
Agile Software Development book that describes the principles, patterns, and practices of agile software development. comprehensive guide to agile software development for both beginners and experienced developers.
Java Concurrency in Practice, Second Edition practical guide to writing concurrent applications in Java. teaches you the fundamentals of Java concurrency, and how to use the Java concurrency utilities to write efficient, scalable, and reliable concurrent applications.
Data Structures and Algorithms in Java textbook that describes the fundamental data structures and algorithms used in Java. comprehensive guide to data structures and algorithms for both beginners and experienced developers.
The Mythical Man-Month classic book that describes the challenges of software development. must-read for any software developer who wants to understand the challenges of building complex software systems.
Head First Java teaches you to think like a Java programmer, not just to write code by rote. With this book, you gain insight into why Java works the way it does and how to use it most effectively.
Test-Driven Development book that describes how to use test-driven development to write better code. teaches you how to write tests that drive your design, and how to use tests to continuously improve your code.
The Phoenix Project novel that tells the story of a team of IT professionals who are struggling to deliver software projects on time and within budget. must-read for any IT professional who wants to understand the challenges of software development and delivery.
Clean Code book that describes how to write clean code. teaches you how to write code that is easy to read, understand, and maintain.
Object-Oriented Design and Patterns textbook that describes the principles of object-oriented design and the design patterns that are commonly used in object-oriented programming. comprehensive guide to object-oriented design for both beginners and experienced developers.
The Pragmatic Programmer book that provides advice on how to become a more effective software developer. covers a wide range of topics, including programming techniques, communication skills, and career development.
Design Patterns classic book that describes a set of design patterns that are commonly used in object-oriented programming. These patterns can be used to improve the design, flexibility, and reusability of your code.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Projet de programmation (en Java).
Création de designs et de prototypes haute fidélité dans...
Most relevant
Automatiser les tâches de cybersécurité avec Python
Most relevant
Concevoir une expérience utilisateur pour le bien commun...
Most relevant
Créer des interfaces utilisateur dynamiques pour des...
Most relevant
Programmation et Politiques Financières, Première Partie:...
Most relevant
Apprendre comment apprendre (ACA) : Des outils mentaux...
Most relevant
Introduction à la programmation
Most relevant
Les bases de la négociation avec Goldman Sachs 10,000...
Most relevant
Créer Une App. À L’aide Des fonctionnalités OOP en Java
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser