COMP101 - Introduction to Programming in JAVA
Year: 2011-12
Originating department: Computer Science
Faculty: Faculty of Science
Semester: First Semester
Credit level: Level One
Credit value: 15
External examiner: Prof David Robertson
Member of staff with responsibility for the module: Dr C Dixon
Board of studies: Board of Studies in Computer Science
Mode of delivery: Lectures/Practical
Contact hours: 33 lectures (3 per week for 1 semester), 10 tutorials, 10 practicals
Pre-requisites: none
Co-requisites: none
Module description
Aims
- To introduce concepts and principles of problem solving by computer, and the construction of appropriate algorithms for the solution of problems.
- To demonstrate the principles underlying the design of high level programming languages.
- To give students experience and confidence in the use of a high level programming language to implement algorithms.
Learning outcomes
General learning outcomes:
- An understanding of the principles and practice of object oriented analysis and design in the construction of robust, maintainable programs which satisfy their requirements;
- A competence to design, write, compile, test and execute straightforward programs using a high level language;
- An appreciation of the principles of object oriented programming;
- An awareness of the need for a professional approach to design and the importance of good documentation to the finished programs.
- Be able to implement, compile, test and run Java programmes, comprising more than one class, to address a particular software problem.
- Understand how to include arithmetic operators and constants in a Java program.
- Be able to make use of members of classes found in the Java API (such as the Math class).
- Demonstrate the ability to employ various types of selection constructs in a Java program.
- Be able to employ a hierarchy of Java classes to provide a solution to a given set of requirements.
- Demonstrate the ability to employ repetition constructs in a Java program.
- Demonstrate the ability to use simple data structures like arrays in a Java program.
Teaching and learning strategies
Three lectures are given each week for the duration of the course (11 weeks). In addition,
starting from week 2, for one hour each week, students will work in a tutorial setting
under staff guidance, and there will be one hour supervised lab sessions. Assignments
are carried out individually and comprise the resolution, using sound software engineering
techniques, of given problems expressed in terms of a requirements statement. A grade will
be returned for each assignment. The course is continuously assessed, the credit being
based on all the assignments; it has no examination. Each assessment task is linked to
one of the seven specific learning outcomes listed (although in many cases there is
overlap with associated learning outcomes). Therefore to meet all the learning outcomes
students must pass all the assessments.
The object oriented approach to software engineering is followed throughout.
Syllabus
Note: Throughout this syllabus, the conceptual aspects of problem solving, algorithm design and
the nature of data are incorporated with the more specific and implementation-directed aspects
of programming. The importance of developing reliable, robust and maintainable solutions is
emphasised throughout.
Topics:
Week 1: Introduction to computer systems. Data types. Basic program ingredients.
Week 2: Programs as systems of interacting objects. I/O classes. The Java programming
language environment.
Tutorial 1:(non-assessed) The Windows operating system, WWW and text editing.
Week 3: Object-oriented software engineering. A simple development process.
Tutorial 2: (non-assessed) The Unix Operating System, e-mail, compiling a Java program.
Week 4: Arithmetic and the Math class (plus note on method calls).
Practical 1:(assessed) first Java program.
Week 5: Writing with care. Testing and Debugging.
Practical 2: (assessed) Java arithmetic and constants.
Week 6: Selection (if-else and switch) and menu interfaces using switch statements.
Practical 3: (assessed) "Math" API class.
Week 7: Complex class interactions: aggregations and generalizations.
Practical 4: (assessed) basic selection.
Week 8: For loop, more on for loop and while loops and the break statement.
Practical 5: (assessed) class hierarchies.
Week 9: Additional remarks about loops. Introduction to iterative data structures: arrays.
Practical 6: (assessed) repetition constructs.
Week 10: Array processing. Arrays of instances and parameter passing mechanisms.
Practical 7: (assessed) data structures and arrays
Week 11: Further example programming problems. Recursion. Revision
Recommended texts
There is NO single recommended text. However parts of the course are based or otherwise inspired by the following textbooks:
- Barnes, David and Kolling, Michael (2009). Objects First with Java (4th edition). Pearson ISBN 0137005628 [Especially Part I]
- Weber Becker, Byron (2007). JAVA: Learning to Program with Robots. Thomson ISBN 0619217243
- Morelli, Ralph (2003). Java, Java, Java (3rd edition). Prentice-Hall ISBN 0131474340
- Stevens, Perdita and Pooley, Rob (2006). Using UML. Addison-Wesley [Especially Chapters I, II, and V]
Assessment weightings
100% continuous assessment