CS371p: Object-Oriented Programming

Spring 2019: 51040

What is this class about?

  • This is a course on object-oriented programming.
  • The class is very much about the syntax and semantics of C++.
  • C++ has many object-oriented features and they will be compared and contrasted to Java's.
  • The early projects will be about mastering C++. The later projects will involve some object-oriented design.
  • It is also strongly focused on using tools to improve the quality of software development.

What are estimates of the required effort to do well?

  • 1-2 hours per week of reading/studying
  • 5-10 hours per week of programming
  • 1,000-3,500 lines of code

Where can I find the class materials?

  • All of the examples and notes will be on GitLab.
  • It's very useful to clone that repo. I'll be adding content as we progress through the class.
  • All of the quizzes will be on Canvas.
  • All of the exercises and tests will be on HackerRank.

What will the quizzes be like?

  • We'll start each day with a 5 min, multiple-choice quiz on Canvas.

What will the lectures be like?

  • I'll use the Socratic Method to have a discussion with you about some part of the material, often involving a piece of code.
  • I will always be courteous and respectful regardless of your level of experience, and you will find that those interactions will really get to the issues that you're having trouble with and you will learn a lot more.
  • That then makes the class highly interactive, so I respectfully request that you refrain from using your phones, tablets, or laptops during class unless we're doing an exercise.
  • We'll also do some exercises on HackerRank.

What will the exercises be like?

What will the projects be like?

  • All of the projects will be in C++ on HackerRank.

What will the tests be like?

Can I ask questions outside of class?

  • Piazza will allow you to ask questions outside of class that everyone will get to see and that when I or the graders answer, everyone will be able to benefit from.
  • Please don't be shy about asking questions on the forum. No technical question is too basic to ask when learning new concepts and everyone will benefit from seeing the questions and the answers.
  • It's also possible for you to answer questions on that forum and that's also very valuable.
  • If you have a question that is personal in nature, e-mail me via Canvas.

What is expected of me?

  • I would like this class to feel like a community. To that end, I request that you follow these guidelines.
  • Communicate with me about any problems you're having or about any special help that you might need, and please make it a point to communicate with each other, as well.
  • Interact heavily during the class. Whatever questions you have don't hesitate to bring them up. I am very confident that others in the class will have the same questions. No question about the subject is inappropriate, regardless of what background you may be missing. Getting answers to your questions is the only way to really get value out of the class.
  • Be on time at the start of class.
  • I very much welcome any suggestions you may have for improving the class.
  • You will get out of this class what you put into it. Please be positive, proactive, and respectful in making this class what you want it to be.
  • Come to office hours!!!

Copyright © Glenn P. Downing, 1995-2019