IDATA1003
Programming 1
Autumn
Ålesund
Norwegian
About this course
Content
The course will cover the following topics:
- Basic principles of object-oriented design and object-oriented programming (OOP) - definitions and concepts in OOP (classes, objects, encapsulation)
- Modelling - Datatypes, logical conditions, loops, logical and arithmetic operations, read and write operations
- Arrays, lists and collections
- Interaction between objects
- Lambda expressions, streams and functional programming used with collections
- Basic exception handling
- Debugging and unit-testing
- Introduction to Integrated Development Environment (IDE)
Learning outcomes
Knowledge
The candidate:
- can demonstrate knowledge in OOP.
- can explain what a software program is.
- has knowledge of principles such as encapsulation, modularization and interaction of objects within object-oriented programming.
- can explain the concepts of modular architecture and its importance in software program design.
- can explain good design practices such as coupling and cohesion.
- has knowledge of typical life cycles of software design at a high level (design, development and testing).
- can model a class diagram for a given problem and can create basic UML diagrams (e.g., activity diagram, class diagram, sequence diagram, package diagrams).
Skills
The candidate:
- can set up a programming environment to develop, test and run object-oriented programs
- can use professional tools for software development, including AI-based tools, in a critical and reflective manner
- can create structured and well-documented code based on principles of good design practices
- can make use of classes, controls and interaction between objects
- can reuse classes from existing libraries and find relevant classes in API documents
- can apply basic object-oriented programming paradigms to analyse and solve simple problems.
- can apply elements from functional programming
- can test and analyse software programs through unit-testing
- can write robust code including throwing and catching exceptions (simple exception handling)
- can use an Integrated Development Environment (IDE) and debugger along with other tools to assure the quality of the code
- can apply the concepts of source control and actively use it (theory taught in IDATA1004)
General competence
The candidate:
- can explain and make use of knowledge for solving problems in simple application scenarios and across different topics.
Teaching methods
Teaching activities every week:
- Lectures using student-active learning methods such as teacher-led programming tasks and co-coding (live coding) to solve programming tasks.
- Guided lab sessions will be conducted with teaching assistants with individual mentoring and assignment solving.
Mandatory assignments: Mandatory assignments will be provided and 90 % of the assignments must be approved to qualify for the final exam.