CS 3212: Algorithms

Course homepage


Java API

  • (12/10) (1) First, do the survey. After that, do the multiple-choice questions. Then, start a remote-Unix session to do the coding problems.
  • (12/7) If you'd like to try the Unix system, follow these instructions (written for another course). You'll need to work with the Terminal and pico/nano/vim and create zip (but not upload to Blackboard). The actual version you will see is similar.
  • (12/4) The coding interview will take place in Tompkins-405 and Tompkins-411. You will be logged into a Linux system that features a Unix terminal with pico/nano as the default editor.
  • (12/3) How do you prep for the 12/10 coding interview? First, don't forget that there are multiple-choice questions about core algorithm topics. So, review the course material accordingly. Second, for the coding part, the more practice the better, as the point system in Exercise 6 was designed to incentivize.
  • (11/22) Solutions to Ex6 problems are now posted - see the link to each solution on Problem Page.
  • (11/18) If you see a problem in a tester, please fix the problem yourself and report this when you review solutions.
  • (11/12) Class canceled today - see my email.
  • (11/12) Return to old classroom: SEH 1300/1400 from Thursday 11/14 onwards.
  • (11/6) Spring 2020 Data-science/ML Course: A computational introduction to linear algebra
  • (11/1) Clarification added to Exercise 6: you need to submit working solutions (code) for the two problems you submit. Thus your initial submission will have these files as well. Please see the updated description.
  • (10/31) Please bring module 10 exercises 10.1 to 10.12 solved to class on Tuesday 11/5.
  • (10/30) Based on comments from you, we've made a few changes to Exercise-6 and the Coding Interview. In sum: we've added a part that involves standard algorithmic questions (Big-Oh etc). Let's talk about this on 10/31.
  • (10/28) I've reset team numbers to account for the team that dropped out. Please use the new team numbers (the teams stay the same).
  • (10/28) It looks like we'll be in SEH B1270 for the next few weeks.
  • (10/24) Related to interview prep, ACM is inviting professionals in the area to help us conduct technical interviews and resume review. Part I will occur on Monday, 10/28, in rooms 407/413/414. To attend, please sign up here. Dinner is included (rhymes with chacos)
  • (10/22) Possible room change. Because of a water-leak we are likely to be moved to SEH B-1270 for at least 10/24.
  • (10/22) Please review the rules for Exercise 6 and see if you have any questions.
  • (10/2) Opportunities for bonus points. I want to bring to your attention two opportunities for bonus points. One will be an additional programming problem of the kind that you've already seen (algorithmic problem), but the second only involves participation (it does involve writing some 1112-level code but the points are for participation). If you are interested in the latter you can sign up here. (Note: the google form is written for 2113 students, but you can sign up.) We can talk more about this on Thursday, 10/3.
  • (10/1) You voted yes. See the edited extension policy that now allows one free extension.
  • (9/23) You asked good questions last week. Here are some answers that we can elaborate in class.
  • (9/19) We've had some personnel changes, which has meant changing a few teams. Please look at the new teams and the new seating arrangement
  • (9/19) Some of you asked about polymorphism and what that looks like in memory. Take a look at the code in "TestPoly" in the section called "Inheritance in Dynamic Objects" in Module 5 of 2113. It's worth drawing a memory diagram here to see what's going on. We can take a closer look on Tuesday.
  • (9/17) Take a (quick) look at the material before Ex 6.1 and try 6.1 in Module 6 of 2113. Let's talk about this on Thursday.
  • (9/9) Please use the updated version of QuickSortTest.java in Exercise 2.1 of Module 2. The instance should have been named QuickSortTest.
  • (9/9) Clarification about TA office hours: Fridays 2-3pm in SEH-4605 and Mondays 11-12 in the 4th floor lobby.
  • (9/4) An announcement from SEAS: Want to learn how to use Raspberry Pi and Arduino Systems? Join SEAS CF at our fall workshops in SEH 1300/1400/1450 - no experience required. Sign up at this webpage.
  • (8/29) We now have a room for TA office hours: SEH 4605.
  • (8/29) Please sit according to the new seating arrangement in teamwork page.
  • (8/28) You may share the code written in-class with the team, as specified in the updated teamwork page.
  • (8.28) For the moment, TA office hours (2-3 Fridays, 11-12 Mondays) will be in the 4th floor lobby until we get a room.
  • (8/28) To learn more about Java's objects, interfaces, inheritance etc, start with this quick overview. Then, if you really want to understand all the details (which you should), read through the Java modules 1-7 in my CS-2113 notes.
  • (8/28) Please review recursion (which you've seen before in a prior course) before Tuesday's class. Here's some material on recursion (go to Module 4).
  • (August) There is a subdirectory called useful in which I will occasionally place classes like UniformRandom.java that I think will be useful to the class. These classes will themselves be periodically modified - I will try to remember to post a notice here when I've made such a modification.
  • (August) You need to be familiar with command-line compilation and execution of Java programs. If you've never done this before, here are some instructions on getting started. (Scroll down to the table just above "Exercise 2". The instructions, for both Windows/Mac, are a bit dated but the outline should be enough for to replicate on your laptop.