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

Programming Languages, Part A (Coursera) Coursera
University of Washington

Programming Languages, Part A (Coursera)

This course is an introduction to the basic concepts of programming languages, with a strong emphasis on functional programming. The course uses the languages ML, Racket, and Ruby as vehicles for teaching the concepts, but the real intent is to teach enough about how any language “fits together” to make you more effective programming in any language -- and in learning new ones.

Aug 10th 2026
5-12 Weeks
Global Warming II: Create Your Own Models in Python (Coursera) Coursera
University of Chicago

Global Warming II: Create Your Own Models in Python (Coursera)

This class provides a series of Python programming exercises intended to explore the use of numerical modeling in the Earth system and climate sciences. The scientific background for these models is presented in a companion class, Global Warming I: The Science and Modeling of Climate Change. This class assumes that you are new to Python programming (and this is indeed a great way to learn Python!), but that you will be able to pick up an elementary knowledge of Python syntax from another class or from on-line tutorials.

Aug 10th 2026
5-12 Weeks
C# for .NET Developers (Coursera) Coursera
Board Infinity

C# for .NET Developers (Coursera)

In this course you will be introduced to everything from the basics of programming concepts like variables, data types, and control structures, to more advanced topics like object-oriented programming, etc. By the end of the course, you'll have a solid understanding of C# programming, the .NET framework, and how to use them to build a variety of applications. You'll have the skills and knowledge you need to start your career as a C# developer or take your current skills to the next level.

Aug 10th 2026
3 Weeks
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Aug 10th 2026
4 Weeks
Functional Program Design in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Scala 2 version) (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types.

Aug 10th 2026
5-12 Weeks
Introducción a Java (Coursera) Coursera
Universidad Nacional Autónoma de México

Introducción a Java (Coursera)

Me llamo Elisa Viso y una de mis pasiones es la de programar y enseñar a programar. El lenguaje Java es uno de los que más me ha gustado en mis 45 años que llevo programando. Si bien te podrá parecer un poco complicado empezar a programar en Java, una vez que cubras los conceptos básicos verás qué rápido se avanza. Java, como todos los lenguajes de programación bien hechos, te dejan hacer cualquier cosa (algunas de ellas con más trabajo que en otros lenguajes y otras casi directamente de cómo piensas la solución al problema).

Aug 10th 2026
5-12 Weeks
Estruturas de dados Python (Coursera) Coursera
University of Michigan

Estruturas de dados Python (Coursera)

Este curso apresentará as estruturas de dados centrais da linguagem de programação Python. Vamos superar os fundamentos da programação de procedimentos e explorar como podemos usar as estruturas de dados integradas do Python, como listas, dicionários e tuplas, para realizar análises de dados cada vez mais complexas. Este curso cobrirá os capítulos 6 a 10 do livro “Python para Todos”. Este curso aborda o Python 3.

Aug 10th 2026
5-12 Weeks
Computer Science: Algorithms, Theory, and Machines (Coursera) Coursera
Princeton University

Computer Science: Algorithms, Theory, and Machines (Coursera)

This course introduces the broader discipline of computer science to people having basic familiarity with Java programming. It covers the second half of our book Computer Science: An Interdisciplinary Approach (the first half is covered in our Coursera course Computer Science: Programming with a Purpose, to be released in the fall of 2018). Our intent is to demystify computation and to build awareness about the substantial intellectual underpinnings and rich history of the field of computer science.

Aug 10th 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Aug 10th 2026
4 Weeks