ITC 146   Programming in Java with Internet Applications 4 cr.

This course presents the principal features of the Java language, including the Java compiler, bytecode, data types, standard control structures, classes, objects and methods. Abstraction mechanisms, threads, I/O streams, exception handling, and the use of run-time libraries are also covered. Effective program and output design are emphasized. Programming assignments include both stand-alone applications and the writing of applets designed for use within web pages.   Credit for this course may not be applied to the major in Computer and Information Studies. No more than one of the courses numbered ITC140 through ITC149 may be counted for degree credit.
  Prerequisites: High school algebra I & II.

Goals:   The overall purpose of the course is to foster an understanding of the nature and operation of software through the use of a specific programming language.   Specifically:
  • to acquaint the student with the nature of programming in general and of the use of an object-oriented language in particular;
  • to present the main principles enabling the student to design, write, test, and debug programs;
  • to present the main features of the Java programming language and its environment.

Objectives:   Upon successful completion of the course, a student will have
  • applied correct program techniques to design and write a Java program
  • developed appropriate debugging techniques and skills
  • acquired an understanding of the programming process from problem formulation through implementation (coding) and testing;
  • developed familiarity with the main features of the Java language and the Java run-time environment;
  • developed the ability to read, interpret, and evaluate existing Java code.
Topics:
  • general overview of the components of a computer and the nature of programming
  • problem solving using top-down, modular, structured design; control structures, procedures(methods) and parameter passing; pseudocode, hierarchy charts
  • the principal ideas of object-oriented design
  • fundamentals of Java: intrinsic and user defined data types, declarations, calculations, precedence rules of operators, classes, objects and methods; standard uses of strings, structures, and dynamic storage allocation; the Java compiler, I/O streams and run-time libraries
  • standard program structures for stand-alone applications, interactive processing, and applets
  • maximizing the performance of a Java program
  • event-driven programs and the Abstract Windowing Toolkit (AWT).

    Previous programming experience is not a formal prerequisite for the course. However, the background and previous experience of the class members will obviously affect the amount of time spent on general introductory topics (the first two items in the above topic list).

   The course emphasis is on application programming, from the formulation of a problem, through program design, to final implementation and testing. Class examples and laboratory assignments are drawn from a variety of application areas. There will be approximately six laboratory assignments, each involving the design, coding, and testing of a program, as well as a number of written assignments. The main focus is on the design and implementation of appropriate algorithms, using specific features of the Java language and the Java run-time environment. Attention is also paid to reading and interpreting existing code (both good and bad).

   All programs must conform to written guidelines supplied in advance by the instructor. Regardless of numeric average or grades on individual assignments or examinations, a student will not qualify for a passing grade in the course unless he or she has submitted a laboratory report for each assignment within the time frame specified by the instructor. A student who is unable to complete an assignment within the specified time should submit an incomplete report for partial credit.

Examinations: There will be a midterm examination (given in class on a date announced at the beginning of the course) and a two-hour comprehensive final examination.

Grading: The course grade will be determined using the following approximate weights: 20% for each examination; laboratory and written assignments, 60%. All lab and written assignments must be completed in order to receive credit for the course.

Bibliography:
  • Sample Text:
    Flynt, John.   Java Programming for the Absolute Beginner.   2nd Edition.   Course Technology, 2006.
  • Other references:
    Arnow, David; Weiss, Gerald. Introduction to Programming Using Java:
         An Object-Oriented Approach.
      Addison-Wesley, 2000.
    Budd, Timothy. Understanding Object-Oriented Programming with Java.
         Updated Edition.   Addison-Wesley, 2000.
    Bishop, Judy.   Java Gently: Programming Principles Explained.   Addison-Wesley, 1998.
    Ince, Darrel; Freeman, Adam. Programming the Internet with Java.
         Revised Edition.     Addison-Wesley, 1998.
    Jendrock, Ball, Carson, Evans, Fordin & Haase.   The Java EE 5 Tutorial.   Third Edition.
        Addison-Wesley, 2006.
    Johnson, Richard.   An Introduction to Java Programming and
        Object-Oriented Application Development
    .   Course Technology, 2007.
    Koffman, Elliot; Wolz, Ursula. Problem Solving with Java.   2nd Edition.
         Addison-Wesley, 2002.
    Skansholm, Jan.   Java From the Beginning.   Addison-Wesley, 2000.
    Zakhour, Hommel, Royal, Rabinovitch, Risser & Hoeber.  The Java Tutorial:
        A Short Course on the Basics
    .   4th Edition.   Addison-Wesley, 2007.
Salem State Home Computer Science Home Faculty Computer Studies Major Flow Sheet
Computer Studies Minor Courses Course Sequence Diagram Computer Laboratories