Programming 2

Course Description

In this course, you'll build off of what you learned in Programming 1.

  • You will use the tools you've learned to build more advanced programs: programs that read from the internet, display information visually, and interact with databases.
  • You'll deepen our knowledge of software fundamentals - learning about object-oriented software, how to recover from errors, and how data is structured.
  • Finally, you will begin to explore the philosophy of writing software. This means going beyond "does my program compute the right thing", but to ask if a program is well organized, if it will be readable by other programmers, and if it will it be re-usable in other projects.

By the end of the course, you will understand what objects and classes are (in other words, writing object-oriented programs), you will be able to write more advanced programs: interacting with data sources, using a language called SQL, and creating graphics to visualize data. You will also be structuring your code in more-professional ways. Along the way you'll pick up tips on how to investigate programs that aren't working correctly, and gain experience reading and understanding code that other people have written.

Everything in the course will be valuable for doing real-world work in the field.

You aren't on this journey alone. We will collaborate, and we'll communicate in discord and office hours to help answer questions.

Instructor

Please contact on Discord first with questions about the course.

This course also has a Teaching Assistant, who will have their own office hours and who you can reach out to for additional assistance.

The Teaching Assistant and their contact information is:

Live Class Time

Note: all times are shown in GMT.

  • Wednesdays at 4:30 PM - 6:00 PM GMT

Office Hours

  • Instructor: Fridays at 4:30 PM - 5:30 PM GMT
  • Teaching Assistant: Saturdays at 3:00 PM - 4:00 PM GMT

How the Course Works

There are multiple ways you'll learn in this course:

  • Read and engage with the materials on this site
  • Attend live class and complete the activities in class
  • Complete practice exercises to learn and internalize the concepts
  • Complete assignments and projects to demonstrate what you have learned

Active engagement is necessary for success in the course! You should try to write lots of programs, so that you can explore the concepts in a variety of ways.

You are encouraged to seek out additional practice problems outside of the practice problems included in the course.