CS 151: Algorithms and Data Structures II

FAQ



About
Announcements
Lectures
Coursework
FAQ


Java API

  • What is CS-151 all about?
    CS-151 covers core computer science material which, along with the material in CS-150, constitutes the science in computer science. It's hard to imagine an intellectual area that is more central to CS than algorithms. We will study classic algorithms and problems in CS - these algorithms will teach us about key problem-solving techniques such as divide-and-conquer.

  • Who should take this course?
    The course is required for students in the B.S. program, and in the two Bioinformatics options. B.A. students are welcome to take the course, as are EMSE students or others who've had the pre-requisites.

  • I haven't taken CS-143. Can I take this course?
    You will need a working knowledge of objects in Java to handle the programming assignments. And you will need the skill-level that comes with completing CS-143. Thus, if you've done CS-133 but not CS-143 but have had considerable programming experience or other programming courses, you ought to be able to take CS-151. Talk to me about it.

  • I've taken CS-143, but in another language. Can I take this course?
    If you're not comfortable with Java, this course might be exceptionally challenging. We are not going to teach Java in the course.

  • Is this a programming-intensive course?
    Yes. Many universities teach their algorithms course without much programming, focusing instead on the mathematical analysis of their complexity. This course, on the other hand, introduces you to algorithmic concepts with a strong focus on implementation, based on the belief that there's nothing like coding an algorithm to force one to understand the details.

  • Is this a math-intensive course?
    Not really. We will only reason about algorithmic complexity at the high-level. There is some math involved in understanding the basic terminology and definitions. Your CS-123 background is more than adequate for this course.

  • Will I be able to work at home?
    Absolutely. If you have Java working, you can download the test environment (which is itself written in Java) and run that at home.

  • What's covered in the labs? Is attendance mandatory?
    The labs are for extra help. Occasionally we will cover additional, related topics in the lab, especially in the first half of the semester. We will take attendance, but if you're doing well in the course, we won't look at your lab attendance record.

  • What's the difference between an in-class exercise and an exercise with a due date?
    The in-class exercises are embedded in the course material, which we will try to complete in class. Those that we can't should be done the same day preferably, and will be due in the lab immediately following the class. Other exercises, like assignments, are to be submitted formally using our submission procedure.

  • So, in-class exercises are not to be submitted?
    Correct.