Boston University
MET CS 232
Introduction to Computer Science with Java
Prof. V. Shtern

Course Announcements (Summer 2009)


Index of Announcements:

May 05, 2009: First week announcement
May 07, 2009: Install Java from the Sun Microsystems site
May 08, 2009: Course textbook
May 18, 2009: Course schedule
May 26, 2009: On posting next week materials
June 02, 2009: On homework for "advanced students"
June 06, 2009: A typo in Homework 3
June 09, 2009: Course information on Blackboard
June 17, 2009: Midterm exam is approaching
June 22, 2009: Discussion forum is made available in Blackboard
June 30, 2009: Changes to the course schedule
July 10, 2009: Changes to Homework Assignment 7
July 29, 2009: Final exam is approaching

May 05, 2009

Welcome to MET CS232 Introduction to Computer Science with Java at Boston University. This is an accelerated course, and this is why you should do a lot of reading, especially at the beginning of the course.

Ideally (if you are reading this announcement before the start of the semester) by the first class you should have read the first two chapters of the textbook. Some of this material, of course, might be already familiar to you, and you could get away with reviewing rather than studying these chapters.

By the start of the second class, you should have read Chapters 3 and 4.

If you have hard time understanding some of this material, prepare your questions and ask them in class. Do not sit back: if you do not clarify these questions, this might impede your further progress later in the course.

Make sure you start your homework right away. Do not postpone it until the last day before it is due. Do not email your homework to the professor, turn it in as a hardcopy at the start of each lecture.

May 07, 2009

In this course, we are going to use Java 6. For free download, go to the sun Microsystems web site

http://java.sun.com/javase/downloads/index.jsp  

and select the latest update for Java SE Development Kit (JDK) . Most likely, it will be JDK 6 Update 13. As long as it is JDK 6, the update number does not matter. Make sure that you do not download packages with additional components – you will not need them for the course.

Download Java SE 6 documentation from the same page.  

As your development environment for the course, use an evaluation copy of TextPad. It is much simpler than other development environments (Eclipse, BlueJ and others) and it is sufficient for writing programs for this course. Make sure that you install TextPad only AFTER you install Java. Download TextPad from:

  http://www.textpad.com/download/index.html

To compile Java code, pressCTRL-1. To run the program, pressCTRL-2. this is all you should know about TexPad user interface.

May 08, 2009

Due to a breakdown in departmental communications, the initial version of the syllabus specified the course textbook which was different from the one ordered by the BU bookstore. The textbook ordered by the BU bookstore is:

Liang, Introduction to Java Programming: Comprehensive Version, 7th edition, Prentice Hall, 2009, 1328 pp.

This is the textbook which we will use in this course. The syllabus and the schedule have been modified accordingly.

May 18, 2009

The course schedule has been modified slightly to distribute reading assignments more evenly throughout the course. The material covered in the course remains the same.

May 26, 2009

I posted the PowerPoint slides for the next lecture and updated the homework assignment file. Please print them and bring to class on Thursday.

Keep in mind that the next homework assignment is posted by appending the text of the new assignment to the previous text rather than by replacing it. This is why when you open the homework assignment file, you see Homework Assignment 1. Do not be misled - the next assignment is at the end of the file.

If you have any questions or problems, please do not hesitate to contact me.

June 02, 2009

Starting today, I am experimenting with posting homework assignments in two versions, one is the required minimum, and another is optional "for advanced students" only. The second version is for making your homework more interesting and challenging, not for getting additional credit. If you struggle with the required minimum, do not do the optional part, but concentrate on doing the mandatory part.

If you have questions or problems, please contact me.

June 06, 2009

There is a typo in the description of method start() in exercise (b). It says that

"If the sum is 7, method start() displays "You win" and returns 0 to signal the end of the game to its caller main()."

In fact, it has to say:

"If the sum is 7 or 11, method start() displays "You win" and returns 0 to signal the end of the game to its caller main()."

I posted a corrected file instead of the original one. Thank you for those students who paid attention.

June 09, 2009

This course information is now available at the Boston University Blackboard System at http://blackboard.bu.edu. To login, use your BU user name and Kerberos password. To see the latest versions of the course documents, go to Course Documents in the course menu (other folders are currently empty).

If you prefer to see my comments on your homework typed rather than handwritten, you can upload your submission using either Upload Assignment page or Digital Dropbox page. Make sure that you paste everything in the same file. Before submitting, print and inspect your submission and make the changes to improve its readability.

If you think that learning Blackboard is a hardship and prefer to submit hardcopy, feel free to do so.

June 17, 2009

The midterm exam is approaching. The exam covers the first seven chapters of the textbook (with the exception of formatted output, multidimensional arrays, StringBuffer and StringTokenizer classes and the material labeled as optional).

To prepare you to the kind of questions you are going to answer during the exam, I am posting a set of practice questions. The actual exam will be almost three times as long, but it will contain the same kinds of questions - reading code, answering questions about code and writing code. When answering questions about code, make sure that you identify the issues behind the questions and not simply "play the computer."

Unlike previous homework assignments, the assignment that I am posting today is due in two weeks rather than the next week. Of course, completing the assignment before the midterm exam will help you do well on the exam. However, I am not making it mandatory - if you choose to postpone turning this homework in until the week after the exam, there will be no penalty.

Before the start of the exam I will spend 20-30 minutes answering your questions (if you have any), and the rest of the class time will be allocated for the exam. The exam is open book/notes - this means that you can use them for quick reference and not for studying during the exam.

June 22, 2009

Some students inquired whether a discussion board could be made availble in Blackboard. I am a novice user of Blackboard myself, so I am not 100 percent sure how to manage it, but it seems that I did create a new discussion board. Feel free to use it for class communications.

Again, it is an experimental feature and as such it is not mandatory. There is no required minimum of messages to post. Still those who want to use this feature should feel free to do so.

June 30, 2009

The midterm exam results are mostly good, and some are even very good. However, they are not perfect. To improve the coverage of Java concepts for the remainder of the course, I am changing the course schedule somewhat. We will discuss inheritance and interfaces during two lectures instead of just one. The number of lectures devoted to the use of Java library classes for building graphical user interfaces changes from two to one. Do not worry, you will still see a lot of GUI library classes.

This change will allow us to pay more attention to fundamental programming concepts.

The new schedule is posted on the course web page and on Blackboard.

July 10, 2009

In Homework Assignment 7, you are asked to create an array of Student and Faculty objects and pass this array to methods that (a) print array components, (b) find and print the maximum component in the array, and (c) sort the components of the array. This requires the capability to compare a Student object to a Faculty object. This, in turn, would make the compareTo() method too complex.

To avoid this complexity, implement the compareTo() method in classes Student and Faculty so that it is capable of comparing the target object ('this' object) with an object of the same type only. Student objects should be compared on the 'major' field alphabetically, Faculty objects should be compared on the 'rank' field alphabetically. If an attempt is made to use compareTo() to compare objects of different types, the program should terminate at run time.

In the client class (e.g., Homework) implement methods printList() and sort() to print and to sort a parameter array of either Faculty or Student objects, and method max() that prints the first maximum object in its parameter array (of either Faculty or Student objects).

When sorting, if two objects have the same value of the sorting field ('major' for Student objects, 'rank' for Faculty objects), do not change the order of these objects in the array and do not compare them on the 'name' field (this is left for advanced students to struggle with).

In client's main(), create two arrays (not ArrayList objects), one should contain Student objects and another should contain Faculty objects. Make sure that the 'major' field of Student objects has meaningful values. Pass these two arrays as arguments to method printList(), max(), sort() and again printList(). Define these arrays so as to prevent compareTo() in Student and Faculty from blowing up even if you try to insert objects of different types in these arrays.

Demonstrate the versatility of methods printList(), max() and sort() by passing an array of String objects to these methods and also by passing an array of Integer objects.

I have updated the homework file on the people.bu.edu course page and on Blackboard. If you have any questions, please do not hesitate to contact me.

July 29, 2009

The course is approaching its last week. We covered most of the topics that had to be discussed in the course, and the final exam is going to reflect this. The exam will include questions on the material from chapters 8-22 of the textbook with the exception of chapters 14 and 20.

Similar to the midterm exam, I will post a set of practice questions. Hopefully, they will help you to prepare for the kind of questions you are going to answer during the exam. The final exam will contain fewer questions than the midterm, but the questions will be more substantive, will require more explanations and will involve writing complete programs. Similar to the midterm exam, make sure that you identify the issues behind the questions and not simply "play the computer."

The exam is cumulative - there will be no explicit questions related to the material covered in chapters 1-7. However, knowledge of this material will help you to deal with the material of the second part of the course. Tak this into account when planning your preparation for the exam.

The homework assignment that I am posting today is due in one week, on the day of the final exam. This means that if you submit it as hardcopy, I will not return the graded assignment to you. However, if you upload it to Blackboard on Tuesday or Wednesday, I will try to upload the graded homework on Thursday before the exam.

Similar to the midterm, I am planning to spend the first 20-30 minutes of the exam answering your questions if you have any. If you do not have questions, this time will be added to the exam time. The exam is open book/notes - this means that you can use them for quick reference and not for studying during the exam.

It was nice to teach you during this summer, and I wish all of you all the best in your further academic and professional persuits.

 
 


If you have any questions, please call Professor Shtern at (617)358-0003 or e-mail to shtern@bu.edu or stop by during office hours (Th, 5-5:50) at the Computer Science Department office at 808 Commonwealth Avenue, Room 250, Boston, MA 02215, or make an appointment to see Prof. Shtern outside of office hours.

Back to the MET CS232 Home Page
Back to the Shtern's Home Page


Dr. Victor Shtern (shtern@bu.edu)