02100 Introductory Programming and Software Technology

2024/2025

The course replaces the DTU-wide programming course 02002 for the Software Technology and Computer Engineering programmes.
Course information
Indledende programmering og softwareteknologi
Danish
10
BSc
Polytechnical foundation (BSc), Computer Engineering
Polytechnical foundation (BSc), Software Technology
Programme specific course (BSc), Computer Engineering
Programme specific course (BSc), Software Technology
Autumn E5 (Wed 8-17)
Campus Lyngby
Lectures and exercises. The exercises include small assignments, which are solved in groups.
13 weeks
E5A
Written examination and exercises
The grading is based on an overall assessment on the basis of the submitted individualized assignments and the written exam.
Written exam: 2 hours
All Aid - no access to the internet
7 step scale , internal examiner
02002/02003/02101/02102
Jørgen Villadsen , Lyngby Campus, Building 322, Ph. (+45) 4525 3733 , jovi@dtu.dk
Carsten Witt (Primary contact person) , Ph. (+45) 4525 3722 , cawi@dtu.dk
01 Department of Applied Mathematics and Computer Science
At the Studyplanner
General course objectives
The aim of the course is to convey the basic concepts of programming, including imperative and object-oriented programming as well as fundamental constructs of functional programming like lambda-expressions, and to enable the student to apply these concepts with relevant software technologies.
Learning objectives
A student who has met the objectives of the course will be able to:
  • Describe and apply the basic concepts that are common to all imperative programming languages
  • Transform an informal problem description into an unambiguous specification implementable in a programming language
  • Explain and apply concepts of procedures, scopes and bindings
  • Explain and apply object-oriented programming concepts, including polymorphism, inheritance, encapsulation and reflections
  • Choose, evaluate, apply and design suitable data types and data structures
  • Compare different implementations and justify their correctness
  • Explain and apply programming techniques, including recursion, and relate them to their execution
  • Apply relevant software technologies and tools for the development, documentation, testing and deployment of programs
  • Describe and apply modern programming paradigms such as event-driven and graphical environments
  • Explain and apply basic software design patterns
  • Design, implement, document and evaluate a software solution of moderate size in a programming language
  • Use relevant technical literature in Danish and English
Content
The course will introduce algorithmic problem solving and thinking in a way that is mostly independent of the programming language. Concrete programming paradigms in object-oriented and imperative programming and software design patterns will be taught primarily in the Java programming language. Moreover, the Python programming language will be introduced.

The following elements will be covered:

basic programming constructs (loops, branching statements etc); input and output; data types, primitive and referenced; bindings; values, operators and expressions; classes, objects, fields, methods; design of classes, hierarchies, inheritance, reflection; abstraction (abstract and generic classes, interfaces); basic elements of functional programming (lambda-expressions); recursion; mental model of execution of programming languages; justification of correctness of programs; use of libraries; command-line scripts; error/exception handling; debugging, version control, documentation, simple software design patterns; graphical user interfaces; selected advanced topics.

Finally, roughly one 4-hour module of the course will deal with study-related activities for the students on the BSc Software Technology line that ensure the transition from pupil to student, e.g. study techniques and study plans.
Remarks
Part of the course teaches core competences in Software Technology and covers elements from the former course type "Engineering works" on the study line.
Last updated
02. maj, 2024