MET CS 232

Introduction to Computer Science with Java

Dr. V.Shtern (Summer 2009)

Course Syllabus


1. Course Objectives

Welcome to MET CS232 Introduction to Computer Science with Java. This course is the result of significant design efforts. Hopefully, you will enjoy this course and will find it intellectually challenging and rewarding.

The goals of this course are:

The object-oriented approach to computer programming and software design is now mainstream both in academia and in industry, and Java is emerging as one of the languages of choice. Java combines the disciplined approach to organizing interactions between parts of the program (this is inherited from C++) with a powerful library which provides the programmer with a huge number of reusable program components.

The course leads the student through a thorough study of computer science concepts related to the use of Java data types, expressions, flow control constructs, arrays, memory management, methods, classes, constructors, function overloading, class composition, class inheritance, interfaces, polymorphism, exceptions, input and output file streams, graphical user interfaces. This is a challenging agenda. You are going to learn a lot.

Upon completion of the course, the student will be:


2. Course Instructor

Your primary contact for the course during this semester will be the course instructor, Prof. Victor Shtern. Prof. Shtern came to the USA from Russia. He has years of experience developing process control systems, database systems, operating systems, and systems for computer-aided instruction. Currently, he is Associate Professor at the MET Computer Science department of Boston University, where he designs and teaches courses on object-oriented technology. He designed and taught computer-aided and distance education courses for Digital Equipment Corporation and other high technology companies, for Boston University, and for National Technological University.

Prof. Shtern is very enthusiastic about teaching this course and will make every possible effort to help you to understand and master the course material in the most effective way. All course materials will be posted in the course Web site (http://people.bu.edu/vshtern).

Learning is more enjoyable and productive when it is interactive. This course provides you with many opportunities to interact with the course instructor and your classmates. Feel free to ask questions and make comments and suggestions.

Contact Prof. Shtern either in class, or by e-mail (shtern@bu.edu) or by telephone (617-358-0003, leave a message if necessary) or by regular mail (Boston University, MET Computer Science Department, 808 Commonwealth Avenue, Room 250, Boston, MA 02215).


3. Course Prerequisites

As it is common for any training or college course, you have to make sure that you are sufficiently prepared to learn the course material, handle the course homework and participate in course interactions.

This course is an accelerated course. It assumes proficiency in working with a computer system, its operating system and applications and the Internet, and some prior knowledge of programming. If you have already taken a C++ course (or courses), this is great: part of the course material will be just a refresher for you. If your programming language is C, Perl, JavaScript or Visual Basic, you are also qualified. If you program in a language like Ada, PL/I, COBOL or FORTRAN, this is acceptable as well.

If you do not have these prerequisites, this course might be too difficult for you. Instead of this accelerated course, you should take a sequence of two one-semester courses in C++ (MET CS201 and MET CS331), and learn Java later by taking this course. This will take more time (and money), but it would give you a much better foundation for your further studies in Information Technology.

In the past, some students without proper background felt that taking one course instead of two or three courses was too attractive to resist temptation, especially if they would be able to allocate sufficient time for learning. But the life of an adult student is affected by demands of job deadlines and job-related travel, by family emergencies and responsibilities, by health issues, by all kinds of unexpected events, and these events are often stronger than good intentions you might have now. Please take this warning seriously.


4. Course Policies

This course is a "learn by doing" course. You will have to do programming homework assignments to help you master the course material. You are also expected to read the textbook and lecture handouts in advance to prepare for each lecture. Advance preparation is essential for your understanding of the course concepts. Before each class, the instructor will post class notes and homework assignments on the course Web site (http://people.bu.edu/vshtern). Make sure that you print and read them before the class.

Be active in course interactions, express your opinions, display your knowledge, and ask your questions. If your understanding is incorrect and you speak up, the instructor will provide you with additional explanations and references. If you do not speak up, your understanding will remain incorrect. This will negatively affect both effectiveness of the course for you and your grade.

Class attendance and doing work on time are mandatory. If you have to miss a class or a deadline, do not worry, this course is for adults with many responsibilities, and it is more flexible than a regular day-time college course. Still, it is your job to warn the professor IN ADVANCE that you are going to miss a class or miss a deadline. You should ask for an extension (you will receive it) and set the recovery timetable and priorities mutually agreeable with the professor.

If any work remains incomplete beyond the scheduled dates of the course, the student must apply for the "Contract for an Incomplete Grade" with the professor.


5. Textbook

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

Make sure you get the seventh edition: the sixth edition is somewhat obsolete and does not provide adequate student support.


6. Grading Criteria

Each Thursday, a programming homework assignment is due. There will be two exams (midterm and final) that will include analysis and coding problems, definitions of terms and concepts, and brief discussions of course concepts and their relationships. Exams are closed book, but you can use a cheat sheet. No electronic equipment is allowed

Grades will be based on your participation in class discussions (10%) and your grades for class homework (30%), the midterm exam (30%) and the final examination (30%).

Grading criteria for homework include: (a) your ability to follow the design specification, (b) correctness and clarity of your code, (c) correct use of Java programming idioms, and (d) correctness and clarity of your answers to homework questins. Grading criteria for the exams include your ability to understand course concepts and their relationships and your skills in using Java syntax and semantics correctly.


7. Computing Facilities

As a Boston University student, you have the right to use the bookstore, libraries, sport facilities, and parking. The same is true of Boston University computing facilities. If you wish to use a Boston University Academic Computer Center account, one will be created for you, and you will be able to use its Unix operating system and its Java compiler. The Center office and terminal room are located at 111 Cummington Street (to open an account, you have to show a valid BU ID card and choose your user name and a Kerberous password). Dial-up is available at 617-378-1111. System help and information is available at 617-353-2784.

You can also use the MET College computing labs that include PCs running Windows, Linus, or Unix (808 Commonwealth Avenue, 2nd floor). To enter lab, you should register your BU ID card with an operator. To use a PC, you log in using you user name and you Kerberos password. Details are available at http://csmet.bu.edu/labs/CS_labs_policy.htm. This course, however, is not environment-specific. Those students who have access to other computer systems that support Java should feel free to use them.

If you want to use your own PC or Mac, go to http://java.sun.com/javase/downloads/ and follow the instructins to download the latest update of the Java SE Development Kit (JDK) (middle of the page) and Java SE 6 Documentation (bottom of the page). Do not go after packages with additinal capabilities.

There are many powerful development environments (Eclipse, BlueJ and others) that you could in this course to edit, compile and run your program. Learning these environments, however, might consume significant time. The programming assignments your will be working on are simple and do not demand the use of powerful environments. The recommended environment is TextPad - it is free, its user interface is very simple, and it is sufficient for the course work.

Notice that you do not need to learn how to use a debugger for this course. The programming problems are simple enough and should be debugged and tested using your logic and intelligence, not a complex software tool.


8. Academic Honesty

The course is governed by the Boston University Academic Conduct Committee policies regarding plagiarism (any attempt to represent the work of another person as one's own). This includes copying (even with modifications) of a program or a segment of code. Your participation in interactions with the instructor and your classmates is encouraged, but the work you submit must be your own. Collaboration is not permitted (for more details, see http://www.bu.edu/met/metropolitan_college_people/student/resources/conduct/code.html).


9. Office Hours

Regular office hours will be held on Thursdays from 5 to 5:50 P.M. at 808 Commonwealth Avenue, Room 250, Boston, MA 02215. Other times could be arranged by appointment. To make an appointment, e-mail to shtern@bu.edu or call 617-358-0003 (if there is no answer, leave a message).


10. Establishing Feedback

To be sure that you indeed are able to communicate with the professor, send him an e-mail message to his Boston University e-mail address shtern@bu.edu. Send the message from the e-mail address you are going to check regularly for this course. The message subject should start with the course number and your last name, for example, if your last name is "Jones", the subject line will be "CS232-Jones First Message." Use this "course number-last name" subject prefix (e.g., "CS232-Jones") for all your communications with the professor.

In your first message, specify your name, BU ID, phone numbers and the email address that you will use for the course. Describe your prior experience with computer systems and programming, and your current occupation. Send this message within two days from the start of the course.


Dr. Victor Shtern shtern@bu.edu
Last modified: May 12, 2009