ID1018 Programming I 7.5 credits

Programmering I

  • Educational level

    First cycle
  • Academic level (A-D)

  • Subject area

    Technology
  • Grade scale

    A, B, C, D, E, FX, F

Course offerings

Autumn 17 for programme students

Autumn 17 TCOMK for programme students

Autumn 16 for programme students

Autumn 16 TCOMK for programme students

Intended learning outcomes

Upon completion of the course the student is able to:

  • Analyze, explain, modify and expand a simple program in terms of fundamental programming constructs and concepts.
  • Describe the representation of numeric and character data, and discuss the use of primitive data types and built-in data structures.
  • Design, implement, test and debug a program using basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions.
  • Discuss the importance of algorithms, identify the necessary properties of good algorithms and create algorithms for solving simple problems.
  • Develop code that responds to exceptional situations during execution.
  • Justify the philosophy of object-oriented design and the concepts of encapsulation, abstraction, inheritance, and polymorphism.
  • Design, implement, test, and debug simple programs in an object-oriented programming language.

Course main content

Fundamental constructs:

  • Basic syntax and semantics of a higher-level language
  • Variables, types, expressions and assignment
  • Simple I/O
  • Conditional and iterative control structures
  • Functions and parameter passing
  • Structured decomposition

Data structures:

  • Representation of numeric data
  • Range, precision, and rounding errors
  • Arrays
  • Representation of character data
  • Strings and string processing
  • Runtime storage management
  • Pointers and references

Algorithmic problem solving:

  • Problem-solving strategies
  • The role of algorithms in the problem-solving process
  • Implementation strategies for algorithms
  • Debugging strategies
  • The concept and properties of algorithms

Object-oriented programming:

  • Object-oriented design
  • Encapsulation and information-hiding
  • Separation of behavior and implementation
  • Classes and subclasses
  • Inheritance
  • Polymorphism

Exceptions:

  • Exception handling

Disposition

The course runs over a KTH period. Teaching forms that are used:

  • Lectures. In a lecture (for all students) different concepts are introduced and developed.
  • Labs (programming exercises). The student solves different programming problems with the help of a computer, and in that way verifies and deepens her/his knowledge and abilities.
  • Seminars. Students prepare solutions to problems and discuss them in groups.

Eligibility

Literature

Programmeringsprinciper i Java upplaga 1:1
ISBN: 978-91-44-09442-7

Programmeringsprinciper i Java exempel och övningar upplaga 1:1
ISBN: 978-91-44-09440-3

Required equipment

Examination

  • LAB1 - Programming Assignments, 4.5, grade scale: A, B, C, D, E, FX, F
  • TEN1 - Written Exam, 3.0, grade scale: A, B, C, D, E, FX, F

Description of examination parts:

  • LAB1 - The student demonstrates creative and programming skills by showing the ability to complete a sufficient number of assignments.
  • TEN1 - The student demonstrates analytical, argumentative and conceptual programming skills.

Requirements for final grade

At least grade E on all examination parts.

Offered by

ICT/Software and Computer system

Examiner

Fredrik Kilander <fki@kth.se>

Version

Course syllabus valid from: Autumn 2013.
Examination information valid from: Autumn 2013.