Introduction to Programming (SWS 110)

This course introduces students to the fundamental concepts of programming, focusing on algorithmic thinking, structured program design, and basic object-oriented principles.

Course Description

SWS 110 provides students with the theoretical and practical foundations of computer programming. The course examines the evolution of programming languages, core programming concepts, and standard development techniques.

Students learn to design algorithms and implement solutions using a modern programming language such as Java or C#. Topics include control structures, arrays, methods, and structured program design, with an introduction to object-oriented programming concepts.

Emphasis is placed on problem solving and applying programming techniques to simple business and engineering scenarios.

Course Learning Outcomes

Upon successful completion of this course, students will be able to:

  1. Explain the need for programming languages, their evolution, and differences between the generations of programming languages.
  2. Design algorithmic solutions for a simple business problem using pseudo code and/or flowchart.
  3. Design, code and test a solution algorithm that uses different variable types, arithmetic expressions, built-in functions, logical and relational expressions.
  4. Decompose problems described in program specifications into smaller, more manageable components using methods/functions.
  5. Distinguish and compare the different program flow control mechanisms including sequential structure, control making decision and repetition structures.
  6. Design, code, debug, test and document basic programs using an IDE.
  7. Apply relevant standards and ethical use of software to writing computer programs.
  8. Apply the basic concepts and principles of structured programming and object oriented programming.
  9. Analyze and interpret scholarly work.

Course Materials

Mandatory Text

Deitel, P., & Deitel, H. Java How to Program (Late Objects) (11th ed.). Pearson, 2017.

Supplementary Texts

Programming Learning Resources

Official Documentation and Tutorials

Practice and Problem Solving

Development Tools

Supplementary Reading and Community Resources