We may earn an affiliate commission when you visit our partners.
Course image
Kal Bugrara
Enroll now

What's inside

Syllabus

Module 1: Fundamentals of Programming — Part 1
This introductory module establishes the foundational knowledge necessary for effective software development by combining core programming concepts with practical design methodologies. You will explore fundamental design principles and object-oriented programming paradigms that form the backbone of modern software architecture, gaining insight into how these concepts create maintainable and scalable code. Through previewing real-world application case studies, you will see how theoretical principles translate into practical solutions across various domains and industries. The module concludes with a comprehensive review of Java programming fundamentals, ensuring all students have the essential syntax, data structures, and programming constructs needed to succeed in subsequent coursework and apply object-oriented design principles effectively in your development projects.
Read more

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Career center

Learners who complete Application Engineering and Development Part 1 will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected 50 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 Application Engineering and Development Part 1.
Must-read for any serious Java developer. It provides a wealth of practical advice and best practices for writing robust, efficient, and maintainable Java code. It's particularly valuable for those looking to deepen their understanding beyond the basics and is considered a classic in the field. It serves as an excellent reference for experienced programmers.
While not solely about OOP, this book is fundamental for any programmer, including those using OOP. It emphasizes writing readable, maintainable, and well-structured code, which is essential for effective object-oriented design. It teaches the difference between good and bad code and how to refactor, providing practical examples and insights into SOLID design principles based on OOP concepts. This crucial reference for writing high-quality code in any object-oriented language.
Often referred to as the 'Gang of Four' book, this seminal work on software design patterns in OOP. It presents a catalog of 23 classic design patterns that provide solutions to recurring design problems. Understanding these patterns is vital for designing flexible, maintainable, and reusable object-oriented systems. is more suitable for those with a foundational understanding of OOP and valuable reference for designing complex software.
Comprehensive guide to interaction design. Cooper and his co-authors provide a clear and concise overview of the key principles of interaction design, and they offer practical advice on how to apply these principles to your own work.
Often referred to as "CLRS," this book comprehensive and widely-used textbook for undergraduate and graduate-level algorithms courses. It provides in-depth knowledge of data structures and algorithms, including their analysis and implementation. While it assumes some mathematical familiarity, it's an encyclopedic reference valuable for both learning and as a long-term resource.
Classic in the field of design and must-read for anyone who wants to learn more about the principles of good design. Norman provides a clear and concise overview of the key principles of design, and he offers practical advice on how to apply these principles to your own work.
Is excellent for beginners to grasp the fundamental concepts of OOP and how to apply them. It covers basics like classes, objects, encapsulation, polymorphism, abstraction, and inheritance, as well as more advanced concepts such as composition, delegation, association, and aggregation. It helps readers think in terms of objects to solve problems and is particularly useful for those transitioning from procedural programming. This book great introductory text and can serve as a foundational resource before diving into more complex topics.
Is the definitive guide to writing correct and efficient multithreaded Java applications. It's essential for developers working on concurrent systems and provides in-depth knowledge of Java's concurrency utilities. This more advanced topic, suitable for those looking to deepen their understanding of a critical area of Java.
Offers a wide range of practical advice on software development, focusing on creating better software and continuously improving as a developer. It covers topics such as personal responsibility, career development, and architectural techniques. It's a valuable resource for gaining a broader understanding of the craft of application development and is considered a classic.
Delves into contemporary topics like building cloud-native applications with Java, leveraging frameworks like Spring Boot and Spring Cloud, and technologies like Docker. It's highly relevant for developers working on modern, distributed systems. It addresses topics like microservices mentioned in the course list.
Focuses on teaching you how to think in terms of objects, which is crucial for effective OOP. It's an excellent resource for beginners, especially those with a background in procedural languages, to understand how to build complex systems using basic OOP concepts. It's considered a must-read for anyone starting their OOP journey and complements practical coding exercises well.
Foundational text on the principles and practices of Continuous Delivery, a crucial aspect of modern application development. It explains how to automate the build, test, and deployment process to enable rapid and reliable software releases. It's highly relevant for understanding contemporary development workflows and DevOps practices.
With the rise of microservices in modern software development, this book provides a comprehensive guide to designing and building microservice-based systems. It covers various aspects, including design principles, communication, and deployment. It's highly relevant for Java developers working in distributed environments.
Provides a comprehensive overview of the model-based design process for embedded systems. It covers topics such as modeling, simulation, and code generation. This book is an excellent resource for anyone who wants to learn more about the model-based design process for embedded systems.
An advanced text that looks into representation in computation, and its implications for abstraction, programming, and computing with types. It is of particular interest to those interested in the foundations of programming and the mathematics of computation.
Offers a comprehensive treatment of data structures and algorithms, suitable for academic settings. It covers various data types and algorithms for sorting, searching, and processing. The book is known for its detailed explanations and includes an online portal with source code, making it a strong resource for solidifying understanding.
Provides a comprehensive overview of the key concepts of real-time systems. It covers topics such as scheduling, concurrency, and communication. This book is an excellent resource for anyone who wants to learn more about the fundamental concepts of real-time systems.
Spring prevalent framework in the Java ecosystem, and this book widely recommended guide to building applications with Spring. It covers core Spring concepts and newer features, essential for professional Java development in many domains. It's valuable for those looking to work with enterprise Java applications.
Practical guide to web usability. Krug provides a wealth of common-sense advice on how to make your website easier to use. This book must-read for anyone who wants to improve the usability of their website.
Provides a comprehensive overview of user interface design principles and best practices, covering topics such as information architecture, interaction design, and visual design. It is an excellent resource for anyone who wants to learn more about GUI design.
Comprehensive guide to the challenges of building data-intensive applications. It explores various data storage and processing technologies and the trade-offs involved in designing systems that are reliable, scalable, and maintainable. It's a crucial resource for developers and architects working with large-scale data systems.
Provides a comprehensive overview of the design and implementation of embedded systems. It covers topics such as hardware, software, and system integration. This book is an excellent resource for anyone who wants to learn more about the design and implementation of embedded systems.
This handbook provides a comprehensive guide to understanding and implementing DevOps practices. It covers the cultural, automation, lean, measurement, and recovery aspects of DevOps. It's essential reading for anyone involved in the software delivery pipeline and looking to improve collaboration and efficiency.
Demonstrates how to develop object-oriented software using a test-driven development (TDD) approach. It shows how writing tests first can guide the design of well-structured and maintainable object-oriented code. This book is highly practical and provides valuable insights into the synergy between TDD and object-oriented design. It's particularly useful for developers interested in agile methodologies and building robust software.
Is essential for understanding how to improve the design of existing codebases, a common task in software development. It provides a catalog of refactorings and explains how to apply them to make code more understandable, maintainable, and less prone to bugs. While not exclusively about OOP, many refactoring techniques are applied to object-oriented code to improve its structure and design. This book is highly practical and valuable for anyone working on real-world software projects.
Introduces functional programming concepts in Java, focusing on features like lambda expressions and streams. It helps developers write more concise and expressive code and is relevant for leveraging modern Java features. The second edition covers more recent updates.
This textbook is suitable for advanced data structures or introductory graduate-level algorithm analysis courses. It bridges the gap between foundational data structures and more advanced analysis techniques. The book provides a rigorous and in-depth analysis of algorithms and their implementation in C++.
Understanding data structures and algorithms is fundamental to programming, and this book provides a solid introduction using Java. It's essential for students and developers to build a strong foundation in these core computer science topics. It's often used as a textbook in academic settings.
Offers a more accessible introduction to OOP using C++ compared to Stroustrup's book. It systematically introduces OOP principles alongside the C++ language features. It is often used as a textbook and is known for its clear explanations and numerous examples, making it suitable for beginners learning OOP with C++.
Based on extensive research, this book provides data-driven insights into the practices that drive high performance in software development organizations. It connects lean principles, DevOps, and cloud computing to organizational performance. It's valuable for understanding the impact of technical practices on business outcomes and key resource for contemporary discussions in the field.
Presents an approach to software development that focuses on modeling the business domain. It provides strategies for managing complexity in large and complex applications by aligning the software design with the business needs. It is particularly valuable for experienced developers and architects working on complex enterprise systems.
Focuses on practical object-oriented design principles using the Ruby programming language. It emphasizes creating flexible, maintainable, and well-designed code through clear explanations and realistic examples. While the examples are in Ruby, the design principles are broadly applicable to other object-oriented languages. This book is great for developers looking for a practical guide to writing better object-oriented code.
Explores common architectural patterns for building enterprise applications. It provides a catalog of patterns and explains their underlying principles and trade-offs. It's a valuable resource for architects and senior developers designing large-scale applications.
Focuses on a responsibility-driven approach to object-oriented design, emphasizing the roles, responsibilities, and collaborations of objects. It provides a practical methodology for designing object-oriented software by thinking about how objects interact. This book valuable resource for improving your object design skills and creating more flexible and understandable systems.
Similar to his C++ book, Lafore's book on OOP in Java provides a clear and step-by-step introduction to object-oriented concepts using the Java language. It's a good resource for beginners who want to learn OOP through practical Java examples. can serve as a solid starting point for understanding OOP fundamentals in a widely used language.
Offers a unique, highly visual, and engaging approach to learning Java. It's excellent for beginners and those who prefer a more interactive learning style to gain a broad understanding of core Java concepts and object-oriented programming. It lays a solid foundation for further learning.
Focuses specifically on applying object-oriented principles in Python 3. It covers core OOP concepts like classes, inheritance, and polymorphism within the context of Python's syntax and idioms. It's a practical guide for Python developers who want to write more structured and maintainable code using OOP. This book is suitable for those already familiar with Python basics and looking to incorporate OOP into their projects.
Specifically focuses on program design in Java with a strong emphasis on polymorphism and design patterns. It aims to help practicing programmers improve their design skills by understanding how to effectively use polymorphism and apply classic design patterns in Java. It includes practical examples and demonstrates the evolution of a program design.
Using a visually rich and engaging format, this book introduces design patterns and the object-oriented principles behind them, including polymorphism. It provides a more accessible approach to the concepts presented in the 'Gang of Four' book, making it suitable for those new to design patterns. It helps solidify understanding through examples and exercises.
Explores the nature of abstraction in the fields of logic, mathematics, and computer science, examining historical and philosophical perspectives as well as modern developments.
Collection of 125 principles of design that can be applied to any type of design, including GUI design. Lidwell and Holden provide clear and concise explanations of each principle, and they offer practical advice on how to apply these principles to your own work.
Explores the role of emotion in design. Norman argues that good design is not just about making things that are functional and efficient, but also about making things that are emotionally appealing. This book must-read for anyone who wants to learn more about the emotional side of design.
This foundational book on Test-Driven Development (TDD) is highly relevant for Java developers looking to improve their code quality and development process. It emphasizes writing tests before code, leading to more robust and maintainable software. It's a valuable practice for all levels of Java development.
Provides a comprehensive introduction to object-oriented analysis and design using UML and design patterns within an iterative development process. It bridges the gap between theoretical concepts and practical application, guiding the reader through the process of building software systems. This book is often used as a textbook and good resource for students and practitioners learning how to apply OOP principles in a structured manner.

Share

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

Similar courses

Here are nine courses similar to Application Engineering and Development Part 1.
Java for Beginners: Hands-On Course with Capstone Project
Most relevant
Object Oriented Programming in Java
Most relevant
Writing Java Application Code
Most relevant
Java Programming: Principles of Software Design
Most relevant
The Complete Java Developer Course: From Beginner to...
Most relevant
Data-Oriented C++ in Scientific Programming
Most relevant
Introduction to Domain Models
Most relevant
Object-Oriented C++: Inheritance and Encapsulation
Most relevant
Mastering SOLID Principles: Your Path to Code Mastery
Most relevant

Coursera Buyer Protection & Guarantee

Verified partner policies & purchase protections

Accredited University Partner
Free Trial & Audit

7-Day Free Trial & Free Audit

7-day free trial on monthly Coursera Plus subscriptions; free audit option available on most individual courses to explore video lectures and readings at no charge.

Return & Refund Policy

14-Day Refund Guarantee

14-day refund window on annual Coursera Plus subscriptions and single-course purchases prior to certificate issuance. Monthly subscriptions do not offer refunds once billed.

Buyer Protections

Verified Academic & Industry Partner

Accredited university and industry certifications (e.g. Stanford, Google, IBM, Yale), secure SSL payment processing, and verifiable digital certificate links.

Key Purchase Protections
14-day refund window on annual Coursera Plus and single courses
7-day free trial on monthly Coursera Plus subscriptions
Free course audit option for lectures and readings
Verified certificates from top universities & companies
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
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 - 2025 OpenCourser