6.031TS
6.031TS — Software Construction
TypeScript Pilot — Spring 2021

6.031 TypeScript Pilot Course

Registering

What is 6.S911 (6.031 TypeScript)?

Please see the subject description.

What are the prerequisites for 6.S911? Do I need to know JavaScript or TypeScript already?

The prerequisites are 6.009 plus prior Java experience.

Prior Java experience means completing a class that used Java (high school or college or online), or writing a substantial amount of Java in personal programming or other project experience.

Prior Java experience is required for two reasons. First, because this is the first offering of a new course, the transition to TypeScript may be bumpy at first, and students with prior experience in multiple programming languages will be better prepared to get over those bumps. Second, this course aims to cover all the conceptual material taught by the parallel 6.031 offering, and a few of those concepts may need to be taught using Java if they don’t have a straightforward equivalent in TypeScript.

Note that prior TypeScript or JavaScript experience is not required. The course will have a TypeScript Tutor (similar to the Java Tutor used by 6.031) for coming up to speed with TypeScript.

What if I am not sure whether to take 6.031 or 6.S911? What is the deadline for switching between the two courses?

Switching between the courses requires dropping one course and adding the other, so the deadline is Add Date.

Since the two courses are closely aligned in class schedule and assignments, grades from work done in one course can be transferred to the other course in the event that a switch is necessary.

If I’ve already taken 6.031, can I take 6.S911?

No, the courses are too close in content. If you just want to learn TypeScript, there are simpler ways to do that.

How will enrollment be limited in 6.S911?

After preregistration ends, a signup form will be emailed to students who preregistered for 6.S911. The form will also be posted on the course website, and emailed again to all 6.S911-registered students just before the first class.

Enrollment will be limited to those who satisfy the prerequisites, first-come-first-serve based on signup form submissions.

Differences from Java version

6.031 TypeScript (aka 6.S911) will use TypeScript for:

  • course readings
  • TypeScript Tutor (finger exercises for learning the language)
  • nanoquizzes
  • problem sets
  • group project
  • quizzes

But we will use Java during the Mon/Wed/Fri classes, because both versions of the class (TypeScript and Java) will meet together during those periods. So Java will be used for classwork, including:

  • class discussions and clicker questions
  • in-class programming

Java may also be used in the TypeScript version’s readings for certain topics that do not have ready equivalents in TypeScript, such as multithreading and locks.

Will the TypeScript version have its own meetings?

The TypeScript version will meet with the Java version of the class.

But we expect to use the half-hour after 6.031 class time (MWF 12:30pm-12:55pm) as an optional office-hour for TypeScript-specific questions, using the same video room where we just had 6.031 class.

Will the TypeScript version have Piazza, office hours, and lab hours?

Yes, we will use the same Piazza, office hours, and lab hours for both versions of the course. The same LAs, TAs, and instructors are teaching both versions of the course, and they will be happy to give help with either Java or TypeScript questions.

Will the TypeScript version have a group project?

Yes, it will have a group project in TypeScript. Project groups need to consist only of people taking the same version of the course. A group can’t mix members from 6.031 Java and the TypeScript version.

What tools will be used by the TypeScript version?

The TypeScript version will use Visual Studio Code as an integrated development environment, where 6.031 Java currently uses Eclipse.

The TypeScript version will also use 6.031’s custom-built tools for code-reviewing, autograding, and in-class programming.

Other questions

Why TypeScript?

TypeScript is a good choice for 6.031 for similar reasons as Java: type safety, ubiquity, and a rich ecosystem of libraries and tools, thanks to its connection to JavaScript.

Compared to Java, TypeScript has a richer type system, needs less boilerplate code to write a program, and is a better choice for creating modern user interfaces and web apps.

What is the future plan for this course?

6.S911 is a pilot experiment toward moving 6.031 from Java to TypeScript. If the experiment is successful, then 6.031 expects to switch to TypeScript, and no longer use Java, starting in fall 2021 or spring 2022.