Undergraduate Course: Informatics 1 - Java for Software Engineering (INFR08021)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Course type | Standard |
Availability | Available to all students |
Credit level (Normal year taken) | SCQF Level 8 (Year 1 Undergraduate) |
Credits | 10 |
Home subject area | Informatics |
Other subject area | None |
Course website |
None |
Taught in Gaelic? | No |
Course description | The course will extend the material presented in INF1-OP to cover more advanced features of Java, and motivate them in the context of software engineering and collaborative code development. |
Information for Visiting Students
Pre-requisites | None |
Displayed in Visiting Students Prospectus? | No |
Course Delivery Information
Not being delivered |
Summary of Intended Learning Outcomes
- Design object-oriented software systems; communicate the design to others; and implement software that meets the design.
- Set up a shared project on a version control system, supply meaningful commit messages, submit bug reports to an issues tracker, accept responsibility for bug-fixing and develop working code collaboratively in a small group.
- Use Javadoc to document their code so that other developers can program to their API without referring to the source code.
- Given a design scenario, determine which Java language features and libraries should be used; write code that uses these resources.
- Design and implement JUnit tests and use the tests to guide the development of conformant code.
- Write code that is 'defensive' in the sense that it verifies that program data satisfies consistency conditions.
- Identify code duplication and other kinds of 'code smell'; use refactoring to make the code more readable and maintainable; and use regression testing to ensure that functionality has been preserved. |
Assessment Information
Written Examination: 90%
Assessed Assignments: 10% |
Special Arrangements
None |
Additional Information
Academic description |
Not entered |
Syllabus |
Java features and development tools to be covered include:
- Inheritance, interfaces and polymorphism
- Generics and the Collections framework
- Exceptions
- Streams and file I/O
- JUnit
- Javadoc
- Version control
Optional special topics to include concurrency; network programming; web applications; and GUI development.
Practical work will include exercises on collaborative software development; using loose coupling and "programming to an interface"; code refactoring.
The course will be delivered using the standard lecture format (i.e., an allocation of 20 lecture slots in total). There will be weekly lab sessions in which students will carry out formatively assessed practical work. In addition, each student will be assigned to a project team, managed by a tutor, which will carry out
incremental code development for the duration of the course. |
Transferable skills |
Not entered |
Reading list |
- Cay Horstmann (2010) Big Java (most recent edition is 4th) Wiley
- Jeff Langr (2005) Agile Java, Prentice-Hall
- Steve McConnell (2004) Code Complete, Microsoft Press |
Study Abroad |
Not entered |
Study Pattern |
Lectures 20
Tutorials 10
Timetabled Laboratories 10
Coursework Assessed for Credit 0
Other Coursework / Private Study 60
Total 100 |
Keywords | Not entered |
Contacts
Course organiser | Dr Ewan Klein
Tel: (0131 6)50 2705
Email: |
Course secretary | Ms Kirsten Belk
Tel: (0131 6)50 5194
Email: |
|
|