Software engineering
 Supervisor:Jan Nikodem, PhD
  Didactis team: Marek Woda, PhD



(Hours / sem. (h))





Basic understanding of the principles of software engineering and practice in teaming skills. Experience in self-study of specific solutions in software engineering, preparation to assume positions of software designers and developers. Hands-on experience with teamwork, interpersonal communication, design and problem-solving.




Fundamentals and application of software engineering principles and techniques: the problems of requirements analysis, proposal formulation, high-level design, software architecture detailed design, implementation, testing, program interfacing, and ethical considerations as carried out in a team setting. Concepts will be applied in a team-based project with team oral presentations and written deliverables. Project assignments will combine seminar and laboratory meetings, individual and team work to design and implement working software systems.



1. H. van Vliet, Software Engineering: Principles and Practice, 3rd Edition
2. UC Berkeley WEBS Project, nesC: A Programming Language for Deeply Networked Systems

3. W. Weber, J.M. Rabaey, E. Aarts (Eds.), Ambient Intelligence
N. Bulusu and S. Jha (Eds.), Wireless Sensor Networks: A Systems Perspective