Introduction to Open Source Application Development (Coursera)

Offered by Illinois Tech,
Introduction to Open Source Application Development (Coursera)

This course introduces basic concepts of systems programming using a modern open source language. You will learn to apply basic programming concepts toward solving problems, writing pseudocode, working with and effectively using basic data types, abstract data types, control structures, code modularization and arrays. You will learn to detect errors, work with variables and loops, and discover how functions, methods, and operators work with different data types. You will also be introduced to the object paradigm including classes, inheritance, and polymorphism.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Learning Python has become increasingly popular in recent years, and for a good reason. Python is a versatile programming language that can be used for a wide range of applications, including data science, machine learning, web development, and more. In an introductory Python course such as this, you can expect to learn the basics of Python syntax, data types, control structures, and functions. Learning Python can lead to many career benefits, including increased job opportunities, higher salaries, and the ability to work on exciting and innovative projects. Additionally, adding online courses and certifications to a resume can demonstrate a commitment to professional development and a willingness to learn new skills.
Upon successful completion of this course, you will be able to:

  • Recall and describe software application and development theory and concepts
  • Write, compile, execute, troubleshoot, analyze, evaluate, and resolve simple problems through program coding using Python computer language.
  • Develop, synthesize, and identify important language standard libraries and utilities.
  • Apply data transfer techniques between modules using parameters and return values.
  • Construct applications to use simple files for input and output.
  • Implement arrays as structures to contain data.
  • Use a higher-level programming language to code, test, and debug software designs.
  • Implement concepts of Object Oriented Programming (OOP), inheritance and polymorphism.
  • Describe integration of Graphical User Interfaces (GUIs) and event driven programming.
  • Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions (ABET Computing Criterion 3.1)
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline (ABET Computing Criterion 3.2)
  • Identify and analyze user needs and take them into account in the selection, creation, evaluation, and administration of computer-based systems (ABET IT Criterion 3.6)

Syllabus

Module 1: Introduction to Python and Programming
Welcome to Introduction to Open Source Application Development! In this module, you will learn to install and configure Python and Visual Studio Code (VSC). You will gain proficiency in programming fundamentals, including declaring variables, describing data types, and implementing programming logic using flowcharts and pseudocode. Additionally, you will acquire the skills to perform arithmetic operations and effectively work with code in Visual Studio Code, culminating in the ability to upload your coding results to the appropriate platform.

Module 2: Sequential Control Structures, Basic Input/Output, Type Conversions
Module 2 focuses on essential programming concepts and skills. You will learn to format output effectively, leveraging various techniques to present data clearly. Additionally, you will explore the importance of type conversion functions and how to use them proficiently. Finally, you will gain an understanding of the sequential flow of a program, mastering the art of designing programs that interact with users through input and output statements.

Module 3: Decision Control Structure (Logical Statements)
In this module, you will learn how to utilize decision alternatives and construct decision structures using conditional statements like 'if' conditions. This essential skill will enable you to create dynamic and responsive programs that adapt their behavior based on specific conditions and criteria.

Module 4: Repetition Control Structure, Logical Statements cont.
In this module, you will learn how to construct nested loops to handle complex repetitive tasks efficiently. Additionally, you'll gain proficiency in constructing both 'For' and 'While' loops, empowering you to create versatile and optimized code for various scenarios, from iterative calculations to data processing.

Module 5: Functions and Program Modularity, Common Library Packages, Debugging
This module is designed to enhance your programming skills by focusing on key areas. You'll learn the art of debugging source code, equipping you with the ability to identify and resolve errors effectively. You will explore how to work with imported modules, expanding your code's functionality. And lastly, you'll delve into defining and implementing user-defined functions, enabling you to organize and streamline your code while building reusable blocks of logic for various applications.

Module 6: List Processing, File IO Processing
In this module, you will explore essential data manipulation skills. You will learn how to efficiently read and write data to and from files, a critical aspect of real-world data processing. Additionally, you'll master list manipulation techniques, including list slicing, and expand your capabilities by creating lists, including multidimensional ones, enabling you to handle and analyze structured data effectively.

Module 7: Object Oriented Programming (OOP) including Inheritance, UML
In this module, you will dive into object-oriented programming (OOP) principles and practices. You will demonstrate your understanding of unified modeling through UML class diagramming, a crucial skill for designing and visualizing software systems. You will also learn how to harness the power of inheritance to build upon existing classes, and you will create your own classes and class objects, paving the way for modular, efficient, and scalable software development.

Module 8: Crafting Graphical User Interfaces (GUI)
In this module, you will learn how to leverage the Tkinter module to create your own customized GUIs, giving you the ability to design user-friendly software interfaces. Furthermore, you will gain an understanding of the fundamental building blocks of GUIs as you describe and work with basic controls that constitute an interactive and visually engaging user interface.

Summative Course Assessment
This module contains the summative course assessment that has been designed to evaluate your understanding of the course material and assess your ability to apply the knowledge you have acquired throughout the course. Be sure to review the course material thoroughly before taking the assessment.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Programando con Java para aplicaciones Android (Coursera) Coursera
Universidad Nacional Autónoma de México

Programando con Java para aplicaciones Android (Coursera)

¡Aprende lo mejor de Java para el desarrollo en Android! Descubre lo necesario para construir tus aplicaciones móviles de una forma sencilla, objetiva y práctica. A lo largo del curso, verás diversos ejemplos para crear tu primer Hola Mundo y practicarás la programación orientada a objetos.

Jun 1st 2026
3 Weeks
Videojuegos: ¿de qué hablamos? (Coursera) Coursera
Universitat Autònoma de Barcelona

Videojuegos: ¿de qué hablamos? (Coursera)

Probablemente, todos hemos jugado a algún videojuego, pero ¿qué hay detrás de él? Podemos decir que - con independencia del videojuego - hay un árduo trabajo multidisciplinar que incluye desde aspectos de diseño hasta la programación como tal del videojuego. Este curso pretende ser un curso introductorio que muestre qué aspectos hay que considerar en el videojuego, y que permita con posterioridad abordar individualmente los temas que se consideran nucleares: diseño, arte, motor del videojuego y 'game play'.

Jun 1st 2026
5-12 Weeks
Development of Real-Time Systems (Coursera) Coursera
EIT Digital

Development of Real-Time Systems (Coursera)

This course is intended for the Master's student and computer engineer who likes practical programming and problem solving! After completing this course, you will have the knowledge to plan and set-up a real-time system both on paper and in practice. The course centers around the problem of achieving timing correctness in embedded systems, which means to guarantee that the system reacts within the real-time requirements.

Jun 1st 2026
5-12 Weeks
Java Programming: Arrays, Lists, and Structured Data (Coursera) Coursera
Duke University

Java Programming: Arrays, Lists, and Structured Data (Coursera)

Build on the software engineering skills you learned in “Java Programming: Solving Problems with Software” by learning new data structures. Use these data structures to build more complex programs that use Java’s object-oriented features. At the end of the course you will write an encryption program and a program to break your encryption algorithm.

Jun 1st 2026
4 Weeks
Advanced Data Structures in Java (Coursera) Coursera
University of California, San Diego

Advanced Data Structures in Java (Coursera)

How does Google Maps plan the best route for getting around town given current traffic conditions? How does an internet router forward packets of network traffic to minimize delay? How does an aid group allocate resources to its affiliated local partners? To solve such problems, we first represent the key pieces of data in a complex data structure. In this course, you’ll learn about data structures, like graphs, that are fundamental for working with structured real world data.

Jun 1st 2026
5-12 Weeks
Java Programming: Solving Problems with Software (Coursera) Coursera
Duke University

Java Programming: Solving Problems with Software (Coursera)

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

Jun 1st 2026
4 Weeks
Cloud Computing Concepts: Part 2 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts: Part 2 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: Clouds, MapReduce, key-value stores, Classical precursors, Widely-used algorithms, Classical algorithms, Scalability, Trending areas, And more!

Jun 1st 2026
5-12 Weeks
Social Media Data Analytics (Coursera) Coursera
University of Washington

Social Media Data Analytics (Coursera)

Learner Outcomes: After taking this course, you will be able to: utilize various Application Programming Interface (API) services to collect data from different social media sources such as YouTube, Twitter, and Flickr; process the collected data - primarily structured - using methods involving correlation, regression, and classification to derive insights about the sources and people who generated that data; analyze unstructured data - primarily textual comments - for sentiments expressed in them; use different tools for collecting, analyzing, and exploring social media data for research and development purposes.

Jun 1st 2026
4 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Jun 1st 2026
5-12 Weeks
Machine Learning for Data Analysis (Coursera) Coursera
Wesleyan University

Machine Learning for Data Analysis (Coursera)

Are you interested in predicting future outcomes using your data? This course helps you do just that! Machine learning is the process of developing, testing, and applying predictive algorithms to achieve this goal. Make sure to familiarize yourself with course 3 of this specialization before diving into these machine learning concepts. Building on Course 3, which introduces students to integral supervised machine learning concepts, this course will provide an overview of many additional concepts, techniques, and algorithms in machine learning, from basic classification to decision trees and clustering.

Jun 1st 2026
4 Weeks
Desenvolvimento Ágil com Java Avançado (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

Desenvolvimento Ágil com Java Avançado (Coursera)

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, graças às boas práticas e princípios orientados a objetos e TDD exercitados nos cursos anteriores; mas você talvez não se sinta ainda confortável em projetar programas para Web e com dados armazenados em banco de dados, bem como em aplicar conceitos mais avançados de Java. O objetivo deste curso é enriquecer sua experiência com conceitos avançados de Java, programação de aplicações Web e acesso a banco de dados no contexto de modelagem ágil.

Jun 1st 2026
4 Weeks
Hadoop Platform and Application Framework (Coursera) Coursera
University of California, San Diego

Hadoop Platform and Application Framework (Coursera)

This course is for novice programmers or business people who'd like to understand the core tools used to wrangle and analyze big data. With no prior experience, you'll have the opportunity to walk through hands-on examples with Hadoop and Spark frameworks, two of the most common in the industry. You will be comfortable explaining the specific components and basic processes of the Hadoop architecture, software stack, and execution environment.

Jun 1st 2026
5-12 Weeks