What's New

12/10/11 Note that the SBT built file is already set up to use the scalaj-time library, a Scala wrapper for Java's Joda Time library. See here for a few usage examples.
12/07/12 Additional information about the final exam has been added to the Exams section.
12/04/12 As mentioned in class today, there was some confusion on whether the sequence diagrams in the Part A deliverables of the project were supposed to be
  1. system sequence diagrams (as described in Chap. 11 of the textbook) or
  2. use case realizations (as described in Chap. 18).
If you submitted (1) (resp. (2)), you can additionally submit (2) (resp. (1)) for Part B, for extra credit.
11/16/12 The zip file Project.zip in ICON's DropBox contains an SBT project containing a sample implementation of some components of the class project.
You are encouraged use this code and adapt it as needed for your implementation. More details on it will be available in the Project section later today.
11/16/12 The grades and a sample solution for Homework 4 have been posted.
11/14/12 As pointed out yesterday in class, the project handout had incorrect due dates. A new version of the handout has been reposted on ICON with revised, and extended, due dates. Here is a recap.
  • Part A deliverables: due by 7pm on Wed, Nov 28
  • Part B deliverables: due by 7pm on Thu, Dec 13
11/10/12 The teams for the course project have been formed and posted in the Project section.
Please check who your teammates are and contact them immediately to get started on the project asap.
11/10/12 The course project handout has been posted on ICON. The first set of project deliverables is due by 7pm on Monday, Nov 26.
11/06/12 The grades for Quiz 5 have been posted.
11/05/12 As announced last week in class, the course project will be done in teams of 3 people. (Teams of 2 people will be permitted only in exceptional cases.)

If you have have not done so already, please find partners for your team and let Rahil, our TA, know by this Thursday, Nov 8.

If you do not do that, you will be grouped with others by us, the instructors.
Your are welcome to use the general forum in the Discussions section of ICON to advertise or look for team partners.
11/04/12 In Problem 3 of Homework 4, the sentence "Do not use any set specific methods." is incomplete. It should read: "Do not use any set specific methods for Properties (a) and (b)."
11/02/12 A copy of the scalacheck library is included in the SBT project in hw4.zip for Homework 4. If you use ScalaEdit's SBT terminal to develop your solution for the homework, you have nothing to install.
See the Internal Resources section for instruction on how to use SBT in ScalaEdit.
11/01/12 Homework 4 is out. It is to be done individually and is due by 7pm on Thu, Nov 8.
10/17/12 The grades for the midterm and Quiz 4 have been posted.
10/12/12 The grades for Homework 3 have been posted on ICON.
10/03/12 A sample solution for Homework 3 has been posted on ICON.
09/30/12 The grades for Homework 2 and Quiz 3 have been posted on ICON.
09/27/12 Additional information about the midterm has been added to the Exams section.
09/25/12 Homework 3 is out. It is to be done individually and is due by 7pm on Tue, Oct 2.
09/23/12 A sample solution for Homework 2 has been posted in the Dropbox section of ICON.
09/18/12 To make it a little easier on those who want to do the extra credit question in Homework 2, we have decided to allow you to relax the privacy requirement for the main constructor of Matrix. For that question you can define the main constructor to be protected instead of private. That is, you can replace
class Matrix private (a:Array[Vec]) { ... }
with
class Matrix protected (a:Array[Vec]) { ... } .
09/17/12 The dates for the midterm and the final exam have been finalized. Please check the Exams section for more details.
09/17/12 There is a typo in file hw2b.scala of Homework 2. In the specification of method apply, the precondition j in [1 .. w-1] should instead read j in [0 .. w-1].
09/14/12 Grades and solutions for Quiz 2 have been posted on ICON.
09/12/12 There is a mistake in file hw2a.scala of Homework 2. In the definition of class Dictionary, the declaration def remove(key:String):Unit should be instead def remove(key:String):Option[Any]. Please update the file accordingly.
09/11/12 Homework 2 is out. It is to be done individually and is due by 7pm on Wed, Sep 19.
09/11/12 The grades for Homework 1 have been posted on ICON.
09/10/12 A sample solution for Homework 1 has been posted in the Dropbox section of ICON.
09/04/12 The grades for Quiz 1 have been posted on ICON. A sample solution for the quiz is available in the Content section of the ICON page.
09/03/12 It looks like the following clarification about Homework 1 is needed:

You are not allowed to use any Scala library method that essentially trivializes the problem by providing the same or almost the same functionality as the method you are asked to implement. Examples of that would be using the library method drop to implement remove or contains to implement isIn.

All of the list problems can be solved using none of the predefined library functions for lists. Pattern matching and recursion are enough.

08/31/12 Today's lab exercises are available in the Content section of the ICON site. Later exercises will be posted there each time after the labs.
08/28/12 The following prescription in Homework 1:

"Your file must compile in Scala with no errors."

is too strong and was not intended. Please replace it with the following:

"For each problem below your solution should be free of static errors."

This means in practice that for each problem your code should not generate any syntax or typing errors when entered in the Scala intepreter.
08/28/12 Homework 1 is out. It is to be done individually and is due by 7pm on Tue, Sep 4.
You can download it from the Dropbox section of the ICON site.
08/28/12 Several useful resources on Scala, including a cheat sheet, can be found in the External Resources section.
More readings on Scala, including a great syntax primer, can be found in the Readings section.
08/24/12 The syllabus has been updated with the TAs' office hours. Ryan's office hours will start on Wed, Oct 29.
08/24/12 If you do not have already a computer account in the CS department please contact Ryan to get your login, password and getting-started instructions.
08/23/12 Are you making career plans? Do not forget the upcoming Job Fair and check further career opportunities at the Pomerantz Career Center.
08/23/12 In class we will use the simple ScalaEdit IDE to work with Scala programs. We recommend for use at home and in the lab as well. See the
  • Internal Resources section for instructions on how to use it on the CS lab machines.
  • External Resources section for more information on the tool and how to install it on your computer.
08/21/12 First assignment of the semester: read the syllabus!
08/21/12 Welcome to the 22c:022 web site.
Please check this section on a regular basis for announcements, or for updates to the other sections of the site.




Course Info

  Announcements

  Lectures

  Syllabus

Course Work

  Project

  Exams

Resources

  External

  Internal

  Readings

  ICON