MSI 692: Special Topics in Information Technology

Fall 2004 Syllabus

Instructor Information

Name: Sanjay Goel / Eliot Rich
Email: [email protected] / [email protected]
Phone: 442-4925 / 442-4944
Office Location: BA 310b / BA 310C
Office Hours: M 12:30pm - 2:00pm

Class Information

Time: Thursday 8:00-11:00
Location: BA 219
Dates: September 2, 2004 - December 2
Credit(s): 3
Call #: 8220
Available Lab(s): BA222

Course Overview

This course provides an overview of some emerging techniques in Information Technology and teaches concepts of advanced programming languages. The content of the course will change from year to year as new technologies emerge. The class this year will cover three separate topics, that is, Java programming, guest lectures on separate topics, and systems dynamics. The initial two-thirds of the class will be taught by Professor Goel and the last one-third of the class will be taught by Professor Rich. This is a syllabus for the initial two-third of the class. The class focuses on development of simple business logic in a structured form. The focus is on development of logic rather than the specifics of a programming language. The class covers the basic elements of a programming language, such as data types, loops, arrays, functions etc. The class also covers the basic concepts of object oriented programming, such as, abstraction, polymorphism and inheritance. By the end of the class, the students should be able to write simple programs in Java language and be able to abstract a problem into a class structure.

Learning Objectives (Programming Concepts)

Students will learn:

  1. The evolution object oriented programming languages
  2. Application of object oriented programming to solve business and enterprise problems
  3. The basic syntax of Java language
  4. The concepts of object oriented programming

Students should be able to:

  1. Install the programming environment for programming in Java
  2. Write programs encapsulating simple logic
  3. Compile, debug, and run Java programs
  4. Able to create simple classes

Class Structure

The first half of each class will be conducted in the classroom and the second half of the class will take place in the computer lab. The students will learn basic concepts in the first half of the class and go through a programming example. In the second half of the class, students will develop software based on the concepts they have learned in the first half. Please come prepared with the readings since the class will move at a brisk pace.

Text & Reference Books

Four books are listed in the syllabus, however only the textbook is required. The other book is listed for students who would like additional material to increase their understanding. There is also a lot of material available on the web. Please check the SUN Microsystems website at: http://java.sun.com web sites for supplementary information.

Text: Kathy Sierra & Bert Bates, Head First Java, ISBN: 0596004656

Reference: Ira Pohl & Charlie McDowell, Java by Dissection, The essentials of Java Programming, Updated Edition. ISBN: 0201612488

Reference: Peter Van Der Linden, Just Java, 2nd Edition

Grading

Homework: 20%

Project: 30%

Exam: 50%

Course Schedule

No. Date Topics Readings Practice Problems
1 September 2Java Development Environment, Programming Fundamentals,
Data Types, Operators, Expressions, Simple IO
Intro Chapter (pg. xx-xxvii), Chapter 1: Breaking the Surface (pg. 2-18), Chapter 2: A Trip to Objectville (pg. 25-40), and Chapter 3: Know Your Variables (pg. 47-61) Exercises and Puzzles at the end of Chapter 1, 2, & 3.
2 September 9 Control Flow and Statements,
Functional Abstraction (methods), Arrays
Chapter 4: How Objects Behave (pg. 71-86), and Chapter 5: Extra-Strength Methods (pg. 94-115) Exercises and Puzzles at the end of Chapter 4 & 5
3 September 23 Data Abstraction:
(Constructors, Scope of Variables & methods, O-O Design)
Chapter 5: Extra-Strength Methods (continued reading), Chapter 6: Using the Java Library (pg. 122-157), and Chapter 9: Life and Death of an Object (pg. 232-262) Exercises and Puzzles at the end of Chapter 5, 6 & 9
4 September 30 Inheritance, Polymorphism Chapter 7: Better Living in Objectville (pg. 164-188), and Chapter 8: Serious Polymorphism (pg. 196-225) Excercises and Puzzles at the end of Chapter 7 & 8
5 October 7 Grid/Distributed Computing -- Guest Lecturer: Bill Steinberg
6 October 14 Review/Exam
7 October 21 Privacy and Ethics-- Guest Lecturer: Saul Seinberg, Albany Law School
8 October 28 Bioinformatics
9 November 4 Systems Dynamics
10 November 11 Systems Dynamics
11 November 18 Systems Dynamics
12 December 2 Systems Dynamics

Download syllabus: msi692syllabus.pdf