We may earn an affiliate commission when you visit our partners.
Course image
David Joyner

Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

Read more

Complete your introductory knowledge of computer science with this final course on objects and algorithms. Now that you've learned about complex control structures and data structures, learn to develop programs that more intuitively leverage your natural understanding of problems through object-oriented programming. Then, learn to analyze the complexity and efficiency of these programs through algorithms. In addition, certify your broader knowledge of Introduction to Computing with a comprehensive exam.

By the end of this course, you'll be able to write programs in Python that leverage your more natural understanding of data structures by creating objects to represent the structures you work with most often. For example, if you were creating a class roster application, you'll learn how to create an object representing a student's name, ID number, and attendance record. Then, you'll be able to create applications that leverage sorting and searching algorithms to sort that roster alphabetically, search for a particular student, and evaluate the efficiency of both those operations.

Structurally, the course is comprised of several parts. Instruction is delivered via a series of short (2-3 minute) videos. In between those videos, you'll complete both multiple choice questions and coding problems to demonstrate your knowledge of the material that was just covered. These exercises count for 20% of your grade. Then, after each major chapter, you'll complete a problem set of collected, more challenging problems. These count for 40% of your grade. Finally, you'll complete a final course exam, which counts for the remaining 40% of your grade.

What's inside

Learning objectives

  • Working with instances of objects in python.
  • Creating new data structures using object-oriented programming.
  • Using objects with earlier control and data structures.
  • Writing common search algorithms, like linear and binary search.
  • Writing common sorting algorithms, like bubble sort, insertion sort, and merge sort.
  • Evaluating the computational complexity of algorithms using big o notation.

Syllabus

Chapter 1. Objects. Working with instances of complex data types or defining your own, like creating a class to represent a video game character, a class syllabus, or an item for sale.
Chapter 2. Algorithms. Creating complex code for searching in large lists or sorting lists of data, and analyzing code for its complexity.
Chapter 3. Course Recap. A comprehensive review of the Xseries as a whole, leading into the final exam.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Assessments include a mix of multiple-choice questions and coding problems, which is a useful variety of assessments for evaluating learner understanding
Provides a capstone exam for the Introduction to Computing series of courses
Students who complete this course will be able to create complex Python programs and analyze their complexity. This is valuable for anyone who wants to work as a software engineer
This course is part of a comprehensive series on Introduction to Computing. Completing the full series offers a structured learning experience
Learners will be able to write different types of search and sorting algorithms, like linear search, binary search, bubble sort, and merge sort
Learners will be able to develop custom data structures using object-oriented programming techniques

Save this course

Save Computing in Python IV: Objects & Algorithms to your list so you can find it easily later:
Save

Reviews summary

Python for all: objects and algorithms

learners say this course in Python programming is excellent. Students develop strong foundations in basic concepts for Python programming and gain theoretical knowledge. The course is well-paced, engaging, and effective, with helpful assignments and clear explanations from the instructor.
This course features lots of practice problems. Some are quite challenging, but they help instill comprehension.
"This course was worth every penny."
"Programming is one of those areas where you can learn by repetitive practice and this course does not only explain the basic concepts briefly and effectively but also provides 100s of coding exercises for you to master what you have learned."
This course provides learners with a firm grasp of Python and other computing basics.
"After completing this course, I feel I have a firm grasp on python and other computing basics."
"The amount of practice required to work through the material forces strong familiarity with the concepts introduced."
The instructor in this course, Professor David Joyner, presents the material in a solicitous manner. Concepts are explained analytically and thoroughly.
"Professor David Joyner teaches in such a solicitous manner that I haven't found a single word to be redundant or boring in his lectures."
"The base that I needed to develop for Python programming has been made possible through completing this 4x Course series per se."

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 Computing in Python IV: Objects & Algorithms with these activities:
Review binary search algorithms
Start your course on the right foot by refreshing your knowledge of essential search algorithms.
Browse courses on Binary Search
Show steps
  • Go through binary search tutorials and examples
  • Practice writing binary search code in the language of your choice
Review 'Head First Java'
Expand your understanding of object-oriented programming concepts with a comprehensive review of 'Head First Java'.
Show steps
  • Read through the book, taking notes and highlighting key concepts
  • Complete the exercises and examples provided in the book
Join a study group focused on Python object-oriented programming
Engage in collaborative learning and knowledge sharing by joining a study group dedicated to Python's object-oriented programming concepts.
Show steps
  • Find or create a study group with peers who have similar interests
  • Meet regularly to discuss course materials, work on problems together, and share knowledge
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice object-oriented programming problems
Deepen your understanding of object-oriented programming through deliberate practice with coding problems.
Show steps
  • Find online coding platforms that offer object-oriented programming practice problems
  • Attempt to solve problems of varying difficulty levels
  • Review solutions and explanations to improve your understanding
Explore advanced sorting algorithms tutorials
Enhance your knowledge of sorting algorithms by exploring advanced techniques and tutorials.
Browse courses on Sorting Algorithms
Show steps
  • Identify online tutorials on advanced sorting algorithms
  • Go through the tutorials, taking notes and understanding the concepts
Organize course notes and materials
Stay organized and improve retention by compiling and reviewing your course notes and materials.
Show steps
  • Gather all notes, assignments, quizzes, and exams
  • Organize them in a logical manner
  • Review the materials periodically
Attend a workshop on Python object-oriented programming
Gain hands-on experience and in-depth knowledge by attending a workshop focused on Python's object-oriented programming capabilities.
Show steps
  • Research and identify relevant workshops
  • Register and attend the workshop
  • Actively participate and engage with the instructors and fellow attendees
Volunteer as a mentor for junior students learning Python
Solidify your understanding of Python and object-oriented programming by mentoring junior students.
Show steps
  • Join online forums or platforms where junior students seek help with Python
  • Offer your assistance and provide guidance on Python concepts
  • Review and provide feedback on their code

Career center

Learners who complete Computing in Python IV: Objects & Algorithms will develop knowledge and skills that may be useful to these careers:
Project Manager
Project Managers plan, organize, and execute projects to achieve specific goals and objectives. They work with stakeholders to define project goals, develop project plans, and track progress towards completion. This course helps build a foundation by teaching one how to evaluate the computational complexity of algorithms using Big O notation, which can be useful when managing projects. Thus, this course may be useful for those seeking work as a Project Manager.
Data Scientist
Data Scientists are responsible for analyzing data using scientific methods, applying machine learning algorithms, and developing new analytical models. This course helps build a foundation by giving experience writing common search algorithms, like linear and binary search and writing common sorting algorithms, like bubble sort, insertion sort, and merge sort. Thus, this course may be useful for those seeking work as a Data Scientist.
Business Analyst
Business Analysts help organizations improve their performance by analyzing business processes and systems, and recommending changes to improve efficiency and effectiveness. This course helps build a foundation by teaching one how to evaluate the computational complexity of algorithms using Big O notation, which can be helpful when analyzing business processes. Thus, this course may be useful for those seeking work as a Business Analyst.
Software Engineer
Software Engineers research, design, construct, and test software systems. They apply engineering principles to create applications or computer programs. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale. Thus, this course may be useful for those seeking work as a Software Engineer.
Data Analyst
Data Analysts collect, analyze, and interpret data to provide insights and make informed decisions. This course helps build a foundation by giving experience writing common search algorithms, like linear and binary search and writing common sorting algorithms, like bubble sort, insertion sort, and merge sort, important skills for analyzing data. Thus, this course may be useful for those seeking work as a Data Analyst.
Information Security Analyst
Information Security Analysts protect an organization's computer networks and systems from unauthorized access, use, disclosure, disruption, modification, or destruction. This course helps build a foundation by teaching one how to evaluate the computational complexity of algorithms using Big O notation, which is essential when analyzing the security of computer algorithms. Thus, this course may be useful for those seeking work as an Information Security Analyst.
Computer Scientist
Computer Scientists create computer hardware or software to solve problems, including research in the areas of artificial intelligence, databases, networking, and computer graphics. This course helps build a foundation by giving experience with writing common search algorithms, like linear and binary search and writing common sorting algorithms, like bubble sort, insertion sort, and merge sort, giving experience with core concepts of computer science. Thus, this course may be useful for those seeking work as a Computer Scientist.
Software Developer
Software Developers design, develop, and test software applications or computer programs. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale. Thus, this course may be useful for those seeking work as a Software Developer.
Computer Programmer
Computer Programmers design, develop, and test computer programs and applications using programming languages. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale, which is a foundational skill for this role. Thus, this course may be useful for those seeking work as a Computer Programmer.
Information Architect
Information Architects are responsible for the design, organization, and structuring of information systems and data to support business needs. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale, which is an important skill for this role. Thus, this course may be useful for those seeking work as an Information Architect.
Computer Systems Analyst
Computer Systems Analysts design and implement computer systems to meet an organization's needs. They analyze existing systems, design new systems, and implement changes to existing systems to improve efficiency and effectiveness. This course helps build a foundation by giving experience creating new data structures using object-oriented programming, a necessary skill for this role. Thus, this course may be useful for those seeking work as a Computer Systems Analyst.
Information Systems Manager
Information Systems Managers maintain, design, and implement information systems. They use their knowledge of information technology to run an organization's technology and computer systems. This course helps build a foundation by teaching one how to evaluate the computational complexity of algorithms using Big O notation, which is used in the field to analyze the performance of algorithms. Thus, this course may be useful for those seeking work as an Information Systems Manager.
Analyst Programmer
Analyst Programmers analyze and design computer hardware or software to meet the needs of an organization, using their knowledge of programming languages and software engineering principles. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale, which is a foundational skill for an Analyst Programmer. Thus, this course may be useful for those seeking work as an Analyst Programmer.
Object-Oriented Programmer
Object-oriented programming (OOP) is a programming paradigm that uses "objects" to design applications and computer programs. "Objects" are data structures consisting of data fields and methods together with their interactions. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale. Thus, this course may be useful for those seeking work as an Object-Oriented Programmer.
Software Applications Architect
Software Applications Architects design software applications and programs by planning and guiding the development process. They determine the overall structure and architecture of the software, and develop high-level designs for the software's components and modules. This course helps one work with instances of complex data types or define their own, like creating a class to represent a video game character, a class syllabus, or an item for sale. Thus, this course may be useful for those seeking work as a Software Applications Architect.

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 Computing in Python IV: Objects & Algorithms.
Comprehensive textbook on algorithms. It provides a rigorous treatment of algorithms and their analysis, with a focus on theoretical foundations.
Classic textbook on algorithms. It provides a comprehensive overview of algorithms and their analysis, with a focus on practical applications.
Covers data structures and algorithms in Java, with a focus on object-oriented programming. It good resource for learning about the implementation of algorithms and data structures in Java.
Covers data structures and algorithms in Python, with a focus on object-oriented programming. It good resource for learning about the implementation of algorithms and data structures in Python.
Covers data structures and algorithms in Python, with a focus on object-oriented programming. It good resource for learning about the implementation of algorithms and data structures in Python.
Classic textbook on algorithms and data structures. It provides a clear and concise explanation of the most common algorithms and data structures, with a focus on practical applications.
Classic textbook on object-oriented analysis and design. It provides a comprehensive overview of the object-oriented paradigm, with a focus on software engineering.
Comprehensive textbook on algorithms. It provides a clear and concise explanation of the most common algorithms, with a focus on practical applications.
Provides a comprehensive introduction to object-oriented programming using Python. It good resource for getting started with objects and algorithms in Python.
Provides a comprehensive introduction to algorithms and data structures. It good resource for getting started with algorithms and data structures, with a focus on practical applications.
Provides a comprehensive introduction to object-oriented programming using Java. It good resource for getting started with objects and algorithms and covers many of the same topics as the course, but in a different programming language.
Popular introduction to design patterns. It provides a clear and concise explanation of the most common design patterns, with a focus on practical examples.
Classic textbook on design patterns. It provides a clear and concise explanation of the most common design patterns, with a focus on practical examples.

Share

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

Similar courses

Here are nine courses similar to Computing in Python IV: Objects & Algorithms.
Data Structures & Algorithms I: ArrayLists, LinkedLists,...
Most relevant
Data Structures & Algorithms II: Binary Trees, Heaps,...
Most relevant
Data Structures & Algorithms III: AVL and 2-4 Trees,...
Most relevant
Introduction to Object-Oriented Programming with Java II:...
Most relevant
Computing in Python III: Data Structures
Most relevant
Data Structures & Algorithms Using C++
Data Structures and Algorithms: Deep Dive Using Java
Java Programming Fundamentals
Automate the Boring Stuff with Python Programming
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