We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Open Source Programming - Bachelor's

James Papademas

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.

Read more

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.

Required Textbook: Starting Out with Python: 5th Edition, Tony Gaddis

Software Requirements: Python, Visual Studio Code

To truly excel in this course and get the most out of it, a solid foundation in several areas is key. Familiarity with computer and peripheral hardware, including their components and functions, will definitely help. Understanding the basics of computer networking, mobile computing, and cloud computing will also provide a strong base. Additionally, a comfortable grasp of Python programming is crucial for success in this course. But don't worry if you're not quite there yet! To help you build the necessary skills, we highly recommend checking out our Performance Based Admission courses, which cover the fundamental topics mentioned above. Additionally, if you need some Python practice, consider taking our Introduction to Open-Source Application Development course. These prior courses will equip you with the essential knowledge and set you up for success in this exciting material.

Enroll now

What's inside

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.
Read more
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 of 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.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers design and development topics in user interface programming
Emphasizes object-oriented, concurrent, and functional programming paradigms
Requires a solid foundation in Python
Assumes familiarity with computer hardware, networking, and cloud computing
Teaches industry-standard practices for programming
Provides numerous exercises to reinforce concepts

Save this course

Save Open Source Programming - Bachelor's to your list so you can find it easily later:
Save

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 Open Source Programming - Bachelor's with these activities:
Compile course notes and materials
Organization of notes and materials will help retain information and improve comprehension.
Show steps
  • Review lecture notes and slides
  • Create summaries and outlines
  • Organize materials by topic
  • Review and recall information regularly
Find a Python mentor
Receiving guidance from an experienced Python developer will accelerate your progress.
Browse courses on Python
Show steps
  • Attend programming meetups or conferences
  • Connect with Python developers on LinkedIn
  • Ask for referrals from friends or colleagues
Review 'Starting Out with Python'
This course heavily utilizes Python. Reviewing the official textbook will improve your understanding of this language.
Show steps
  • Read chapters 1 - 4
  • Take notes on key concepts
  • Complete end-of-chapter exercises
Five other activities
Expand to see all activities and additional details
Show all eight activities
Use Visual Studio Code with Python
Familiarity with this software will improve your programming capabilities within this course.
Browse courses on Visual Studio Code
Show steps
  • Follow the tutorial on the Visual Studio Code website
  • Install Visual Studio Code
  • Create a new Python project
  • Write and run a simple Python program
Practice Python coding exercises
Python coding exercises will reinforce your understanding of Python syntax and concepts.
Browse courses on Python
Show steps
  • Use online coding platforms like HackerRank or LeetCode
  • Solve coding exercises on a regular basis
  • Analyze and understand the solutions to the exercises
Join a Python study group
Engaging with peers in a study group will enhance your learning experience.
Browse courses on Python
Show steps
  • Find a study group or create your own
  • Meet with the group regularly
  • Discuss course materials, share knowledge, and work on projects together
Develop a small Python application
Applying your knowledge to a small project will solidify your understanding of Python.
Browse courses on Python
Show steps
  • Identify a small project idea that interests you
  • Design the application and its features
  • Code and test the application
  • Deploy and share the application
Contribute to open-source Python projects
Contributing to open-source projects will expose you to real-world Python applications.
Browse courses on Python
Show steps
  • Identify open-source Python projects that align with your interests
  • Review the project documentation and contribute to a small feature or fix
  • Interact with the project maintainers and community

Career center

Learners who complete Open Source Programming - Bachelor's will develop knowledge and skills that may be useful to these careers:
Software Developer
A Software Developer translates designs provided by a Software Architect or Software Engineer into programming code that creates and enhances a software product. In this capacity, a Software Developer would use their knowledge of open-source coding, web programming, and user interface design to translate wireframes and mockups into functional code. They would also adhere to best practices for open-source programming, such as version control.
Web Developer
Web Developers specialize in the development and maintenance of websites. They work with user interface design to create the front-end and back-end functionality for websites and digital assets. This course may be useful for a person wanting to become a Web Developer because it teaches the basics of website design and development, including HTML, CSS, and JavaScript.
Computer Programmer
Computer Programmers are responsible for writing, modifying, testing, and debugging code to develop software applications and systems. They use their expertise to turn flowcharts and other diagrams into programming code that executes tasks. This course may be useful for those wanting to become Computer Programmers because it provides a foundation in programming fundamentals and the principles of structured programming languages, such as Python.
Database Administrator
Database Administrators are responsible for the design, implementation, and maintenance of databases. They ensure efficient database performance and data integrity. This course may be useful for those wanting to become Database Administrators as it teaches the fundamentals of database design and management.
Software Engineer
Software Engineers apply engineering principles to the design, development, and maintenance of software systems. They use their expertise in software development and computer science to create and improve software solutions. This course may be helpful for those wanting to become Software Engineers as it provides a foundation in programming fundamentals and the principles of structured programming languages.
Systems Analyst
Systems Analysts are responsible for designing, developing, and implementing information systems. They work with stakeholders to define requirements and specifications for software solutions. This course may be useful for those wanting to become Systems Analysts as it provides a foundation in programming fundamentals, systems analysis, and design techniques.
Network Administrator
Network Administrators are responsible for the design, implementation, and maintenance of computer networks. They ensure that networks are secure, reliable, and efficient. This course may be useful for those wanting to become Network Administrators as it provides a foundation in networking concepts and protocols.
Information Security Analyst
Information Security Analysts are responsible for protecting computer systems and networks from security threats. They develop and implement security policies and procedures to safeguard data and systems. This course may be useful for those wanting to become Information Security Analysts as it provides a foundation in security concepts and practices.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting large amounts of data to extract insights and trends. They use their expertise in statistics and machine learning to develop predictive models and drive business decisions. This course may be useful for those wanting to become Data Scientists as it provides a foundation in programming fundamentals and data analysis techniques.
Business Analyst
Business Analysts are responsible for analyzing the needs of a business and developing solutions to improve efficiency and effectiveness. They use their expertise in business processes and data analysis to identify areas for improvement and develop recommendations for change. This course may be useful for those wanting to become Business Analysts as it provides a foundation in programming fundamentals and business analysis techniques.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. They work with stakeholders to define project scope, timeline, and budget. This course may be useful for those wanting to become Project Managers as it provides a foundation in project management principles and practices.
Product Manager
Product Managers are responsible for the development and launch of products. They work with stakeholders to define product requirements, specifications, and timelines. This course may be useful for those wanting to become Product Managers as it provides a foundation in product development principles and practices.
Quality Assurance Analyst
Quality Assurance Analysts are responsible for testing and evaluating software applications to ensure that they meet requirements and specifications. They work with developers to identify and fix defects. This course may be useful for those wanting to become Quality Assurance Analysts as it provides a foundation in software testing principles and practices.
Technical Writer
Technical Writers are responsible for developing documentation for software and technology products. They work with engineers and developers to create user manuals, training materials, and marketing collateral.
IT Consultant
IT Consultants provide consulting services to businesses to help them improve their IT systems and processes. They work with clients to assess needs, develop recommendations, and implement solutions. This course may be useful for those wanting to become IT Consultants as it provides a foundation in IT principles and practices.

Reading list

We've selected 13 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 Open Source Programming - Bachelor's.
Deep dive into the Python programming language. It covers advanced topics such as object-oriented programming, functional programming, and concurrency. It great choice for experienced Python programmers who want to improve their skills.
Collection of over 300 Python recipes. It covers a wide range of topics, from basic tasks to advanced techniques. It great choice for Python programmers of all levels who want to learn new tricks and techniques.
Fast-paced introduction to Python programming. It is written in a clear and concise style, and it is filled with helpful examples and exercises. It great choice for beginners who want to learn Python quickly and easily.
Practical guide to Python programming. It teaches you how to use Python to automate tasks such as sending emails, downloading files, and scraping websites. It great choice for beginners who want to learn Python for practical purposes.
Comprehensive guide to the Python standard library. It covers all of the major modules in the standard library, and it provides detailed examples of how to use them. It great choice for Python programmers of all levels who want to learn more about the standard library.
Comprehensive introduction to Python programming. It covers all of the major features of Python, from basic syntax to advanced topics such as object-oriented programming and functional programming. It great choice for beginners who want to learn Python for academic purposes.
Free online textbook that teaches Python programming. It is written in a clear and concise style, and it is filled with helpful examples and exercises. It great choice for beginners who want to learn Python for academic purposes.
Is the official Python tutorial. It is written by the creator of Python, and it great resource for learning the basics of the language. It great choice for beginners who want to learn Python for academic purposes.
Comprehensive introduction to Python programming. It covers all of the major features of Python, from basic syntax to advanced topics such as object-oriented programming and functional programming. It great choice for beginners who want to learn Python for academic purposes.
Comprehensive introduction to Python programming. It covers all of the major features of Python, from basic syntax to advanced topics such as object-oriented programming and functional programming. It great choice for beginners who want to learn Python for academic purposes.
Comprehensive introduction to Python programming. It covers all of the major features of Python, from basic syntax to advanced topics such as object-oriented programming and functional programming. It great choice for beginners who want to learn Python for academic purposes.
Comprehensive introduction to Python programming. It covers all of the major features of Python, from basic syntax to advanced topics such as object-oriented programming and functional programming. It great choice for beginners who want to learn Python for academic purposes.

Share

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

Similar courses

Here are nine courses similar to Open Source Programming - Bachelor's.
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