ID1018 Programming I 7.5 credits

Programmering I

Show course information based on the chosen semester and course offering:

Offering and execution

No offering selected

Select the semester and course offering above to get information from the correct course syllabus and course offering.

Course information

Content and learning outcomes

Course contents *

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

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 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.

Literature and preparations

Specific prerequisites *

No information inserted

Recommended prerequisites

No information inserted

Equipment

No information inserted

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

Examination and completion

Grading scale *

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

Examination *

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

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

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.

Other requirements for final grade *

At least grade E on all examination parts.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

Examiner

Fredrik Kilander

Further information

Course web

Further information about the course can be found on the Course web at the link below. Information on the Course web will later be moved to this site.

Course web ID1018

Offered by

EECS/Computer Science

Main field of study *

Technology

Education cycle *

First cycle

Add-on studies

No information inserted

Ethical approach *

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Supplementary information

In this course, the EECS code of honor applies, see: http://www.kth.se/en/eecs/utbildning/hederskodex.