Open Source Programming - Master's (Coursera)

Offered by Illinois Tech,
Open Source Programming - Master's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

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

As a great learning experience, Python is a versatile and widely used programming language that can be used for a wide range of applications, including data science, machine learning, web development, and more. 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!

Syllabus

Module 1: Input, Processing, and Output
Welcome to Open Source Programming! In Module 1, students will be equipped with the ability to execute mathematical calculations using operators. Learners will master the art of annotating code through comments, declaring variables, and employing data conversion functions for robust program functionality. The module culminates in students applying their skills to design programs that solicit user input, process information, and clearly display results using the 'print' function, laying a strong foundation for proficient coding practices.

Module 2: Decision Structures and Boolean Logic
This module takes students into the depths of decision-making within software development, emphasizing the construction of nested decisions and the application of Boolean logic through logical operators. Participants will learn to adeptly use decision structures to evaluate and manipulate strings, honing their ability to write conditions that guide program flow. The coursework focuses on developing the skill to implement both primary and alternate decision paths, ensuring students can craft complex, logical, and responsive code structures.

Module 3: Repetition Structures
This module introduces students to the intricacies of validating user input across various data types, ensuring robust data handling in programming. Learners will explore the power of nested loops to perform complex iterations and develop the skill to manage running totals within loops for effective data processing. The course also covers the strategic use of sentinel values for loop control, giving users the ability to determine the sequence flow. Emphasis is placed on mastering repetition through popular looping constructs like 'while' and 'for' loops, equipping students with the tools to write efficient and controlled looping mechanisms.

Module 4: Functions
This module introduces the essential skills for enhancing program modularity and efficiency through the use of system and custom modules. Students will learn to import pre-existing system modules, create their own, and understand the mechanics of importing them into new programs. The course places a strong emphasis on defining user functions, passing arguments effectively, and returning values, reinforcing the concept of code reusability and the development of well-structured, modular code.

Module 5: File and List Processing
This module delves into the manipulation of complex data structures, teaching students how to efficiently process lists within lists and utilize tuples as immutable sequences for data integrity. Learners will master slicing techniques for swift retrieval of data from lists, and understand how to aggregate multiple data items within single list variables for organized storage and access. Additionally, the module covers the creation and processing of file-based data storage, along with robust exception handling practices to ensure error-free file operations, empowering students with the tools for sophisticated data handling and resilience in programming.

Module 6: More on Strings, Dictionaries and Sets
This module guides students through the learning process of serializing various objects, such as lists and dictionaries, allowing for persistent storage to files. Students will learn how sets are created and manipulated to handle unique elements efficiently, enhancing their data structuring skills. The course also dives into the creation and utilization of dictionaries, emphasizing key-based retrieval to traverse and manipulate key-value pairs, equipping students with advanced techniques for data organization and retrieval in Python programming.

Module 7: Classes and Objects & Inheritance
In this module, students will explore the dynamic capabilities of object-oriented programming (OOP) by creating versatile classes that demonstrate polymorphism through multiple forms of inheritance. They will learn how to extend the functionality of existing classes, allowing for the refined expansion of an application's capabilities. The course provides a practical approach to OOP principles, guiding students through the construction and instantiation of classes and objects, laying the foundation for robust and scalable software design.

Module 8: Graphical User Interfaces and Intro to Database Programming with SQLite3
This module offers a practical approach to database programming using SQLite3, a user-friendly database system renowned for its lightweight nature. Students will understand how to craft database tables, execute record operations such as inserts, updates, and deletes using SQLite3's diverse methods. Additionally, the course will cover establishing database connections to manage structured data sources effectively. As a step further into application development, learners will also acquire the skills to create sophisticated Graphical User Interfaces (GUIs) complete with an array of interactive widgets. Covered also will be insights on how to merge backend logic with frontend aesthetics. Also included in this module are supplemental topics covering Test Driven Development or 'Unit Testing' and Web scraping techniques.

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

Interfacing with the Arduino (Coursera) Coursera
University of California, Irvine

Interfacing with the Arduino (Coursera)

Arduino senses the environment by receiving inputs from add-on devices such as sensors, and can control the world around it by adjusting lights, motors, and other actuators. In this class you will learn how and when to use the different types of sensors and how to connect them to the Arduino. Since the external world uses continuous or analog signals and the hardware is digital you will learn how these signals are converted back-and-forth and how this must be considered as you program your device. You'll also learn about the use of Arduino-specific shields and the shields software libraries to interface with the real world.

Jun 22nd 2026
4 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Jun 22nd 2026
5-12 Weeks
Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (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/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 22nd 2026
5-12 Weeks
Interfacing with the Raspberry Pi (Coursera) Coursera
University of California, Irvine

Interfacing with the Raspberry Pi (Coursera)

The Raspberry Pi uses a variety of input/output devices based on protocols such as HDMI, USB, and Ethernet to communicate with the outside world. In this class you will learn how to use these protocols with other external devices (sensors, motors, GPS, orientation, LCD screens etc.) to get your IoT device to interact with the real world.

Jun 22nd 2026
4 Weeks
Functional Program Design in Scala (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger 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.

Jun 22nd 2026
5-12 Weeks
Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Jun 22nd 2026
4 Weeks
Fundamentos de Android (Coursera) Coursera
Universidad Nacional Autónoma de México

Fundamentos de Android (Coursera)

Por medio de ejercicios prácticos, serás capaz de manipular las herramientas que Android te ofrece para desarrollar aplicaciones móviles. En este curso, instalarás el entorno de desarrollo Android Studio y manipularás sus más sofisticadas particularidades. Por ejemplo, la composición de archivos de un proyecto Android y los patrones más comunes para el desarrollo de tus aplicaciones.

Jun 22nd 2026
5-12 Weeks
The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera) Coursera
University of California, Irvine

The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera)

The Raspberry Pi is a small, affordable single-board computer that you will use to design and develop fun and practical IoT devices while learning programming and computer hardware. In addition, you will learn how to set up up the Raspberry Pi environment, get a Linux operating system running, and write and execute some basic Python code on the Raspberry Pi. You will also learn how to use Python-based IDE (integrated development environments) for the Raspberry Pi and how to trace and debug Python code on the device.

Jun 22nd 2026
4 Weeks
Python for Data Science, AI & Development (Coursera) Coursera
IBM

Python for Data Science, AI & Development (Coursera)

Kickstart your learning of Python for data science, as well as programming in general, with this beginner-friendly introduction to Python. Python is one of the world’s most popular programming languages, and there has never been greater demand for professionals with the ability to apply Python fundamentals to drive business solutions across industries.

Jun 23rd 2026
5-12 Weeks
TDD - Desenvolvimento de Software Guiado por Testes (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

TDD - Desenvolvimento de Software Guiado por Testes (Coursera)

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, com método e organização graças às boas práticas e princípios exercitados no curso anterior; mas você talvez não se sinta ainda confortável em projetar programas usando técnicas ágeis, como o desenvolvimento guiado por testes (TDD).

Jun 22nd 2026
4 Weeks