Print

Programming 2 (from S26)

Code

IT-PRO2

Version

2.0

Offered by

ICT Engineering

ECTS

10

Prerequisites

Completed the 1st semester Software Engineering course “Programming 1” (formerly "Software Development with Java 1") or a similar course.

Main purpose

​The purpose is to qualify the student to understand and master the concepts and techniques of object-oriented system development and programming, including Client/Server programming and basic understanding of computer networks.

Knowledge

The student must be able to:
- Explain system architecture, including client/server structure and concurrent programming
- Explain key principles of object-oriented system development, including selected design patterns and software testing methods
- Explain basic network principles relevant to client/server communication, including layering, addressing, name systems and factors that affect network latency.


Skills

The student must be able to:
- Apply design patterns and develop object-oriented code in Java
- Develop thread-safe classes and multi-threaded programs
- Perform unit tests and system tests using relevant test techniques
- Develop client/server systems using sockets in Java
- Analyse network connections in socket-based client/server applications using packet sniffer software.

Competences

The student must be able to:
- Develop flexible and maintainable Java software using relevant architecture patterns
- Plan and implement test strategies for object-oriented systems
- Develop complete client/server solutions with self-defined application protocols
- Incorporate network considerations into the design and implementation of socket-based client/server applications.

Topics

Teaching methods and study activities

​The semester has 96 classroom lessons. These lessons will consist of teacher presentations and exercises.
The course will include a number of course assignments.


Resources

​Kurose, James F. and Ross, Keith W.: Computer Networking, A Top-Down Approach (8th edition, Global edition). Pearson Education Limited. ISBN-978-1-292-40546-9

Evaluation

Examination

​Exam prerequisites

1. Attendance (≥ 75%) 
2. Three or four course assignments handed in before deadline.
3. Passed a written test in network theory. The test covers the third knowledge objective on network layers, addressing, DNS and network latency - topics that are not included in the oral exam. 
4. For Software Engineering students only: Completed or achieved credit transfer for WS2, Programming Workshop 2​

If the exam prerequisites are not met, the student must complete a written assignment in WISEflow to qualify for the re-exam. This assignment will be scheduled after the ordinary exam. ​

Type of exam:  
Individual 20 minutes oral examination without preparation.
- The student will draw from a pool of previously known questions.
- The student will explain concepts and theories from the course, preferably using the course work as reference.
External assessment.

Allowed tools:
All 

Re-exam:
Conducted as the ordinary exam.

Grading criteria

​Grading based on the Danish 7-point scale.​

Additional information

Responsible

Troels Mortensen (trmo)

Valid from

2/1/2026 12:00 AM

Course type

Compulsory Course for all ICT Engineering<br/>2. semester<br/>

Keywords

Java, client/server systems, system architecture, design patterns, computer networks, internet protocols