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

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.