Skip to content

Latest commit

 

History

History
27 lines (19 loc) · 2.57 KB

17480.md

File metadata and controls

27 lines (19 loc) · 2.57 KB

17-480: API Design and Implementation

Category Difficulty
HW 5
Exams 6
Project 6

This is a class that teaches important concepts and design principles related to API design. You will learn about how naming, documentation, and the overall shape of your API affects the quality of the client code that ends up using it.

What to expect

  • HW: All the homeworks are team-based, and you can choose your team each homework (although you can't repeat teammates) and you can choose any object-oriented programming language to do them. Most people usually use Python or Java, simply because they have pretty good support for types and documentation. Most of the homeworks focus on API design rather than implementation, although some of the homeworks will require you to actually implement the APIs you create.
  • Exams: Midterms aren't too hard, but they can be a bit long. Typically, the exam averages will be low but the professor curves the class at the end.
  • Project There is a team-based project that you will be working on from the middle to the end of the semester. Instead of a final, you will be presenting this project. For the project, you need to either fix substantial flaws in a public API, translate a public API into another platform, or design and implement a new API.

How to do well

  • Communicate with your teammates. All of the homeworks are team-based, which gives you the ability to bounce ideas off of each other. However, if you don't communicate well, you can easily find yourself either short on time or churning out a low-quality assignment.
  • Take advantage of the team setting by exploring different design choices and discussing the pros and cons of each design.
  • Find teammates that you enjoyed working with during the homeworks and try to work with them for the project. If you've already established a good workflow with them for an assignment, chances are you'll have an easier time doing this for the project.

What to watch out for

  • Read the instructions for assignments thoroughly and make sure you cover all the points. The write-ups are intentionally vague to give you a lot of flexibility. However, when they do specify requirements, make sure to meet all of them.
  • HW2 can be very tedious if you find the wrong API. Don't choose too technical of an API so that you don't have to learn the niche topics for it.
  • If you can, try to get feedback from friends outside the class regarding certain API design choices. This can help if your team is stuck between two design choices.