BSc:IntroductionToProgrammingI.old

From IU
Revision as of 13:37, 30 July 2021 by 10.90.136.11 (talk) (Created page with "= Introduction to Programming I = * <span>'''Course name:'''</span> Introduction to Programming I * <span>'''Course number:'''</span> XYZ * <span>'''Knowledge area:'''</span>...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction to Programming I

  • Course name: Introduction to Programming I
  • Course number: XYZ
  • Knowledge area: Programming Languages and Software Engineering

Administrative details

  • Faculty: Computer Science and Engineering
  • Year of instruction: 1st year of BS
  • Semester of instruction: 1st semester
  • No. of Credits: 4 ECTS
  • Total workload on average: 144 hours overall
  • Frontal lecture hours: 2 per week
  • Frontal tutorial hours: 2 per week
  • Lab hours: 2 per week
  • Individual lab hours: 0
  • Frequency: weekly throughout the semester
  • Grading mode: letters: A, B, C, D

Prerequisites

None

Course outline

The Introduction to Programming course teaches the fundamental concepts and skills necessary to perform programming at a professional level. Students will learn how to master the fundamental control structures, data structures, reasoning patterns and programming language mechanisms characterizing modern programming, as well as the fundamental rules of producing high-quality software. They will acquire the necessary programming BS Degree 2019/2020 background for later courses introducing programming skills in specialized application areas. The course focuses on Object Oriented paradigm.

Expected learning outcomes

After taking the course, students will

  • master the fundamental data structures, reasoning patterns and programming language mechanisms characterizing modern programming.
  • the fundamental rules of producing high-quality software.
  • acquire the necessary programming background for later courses introducing programming skills in specialized application areas.

Expected acquired core competences

  • Basic principles of imperative programming
  • Object oriented programming
  • Elements of the verification of the software based on predicates (Design by Contract ®)
  • Generic programming (templates)
  • Functional programming within imperative programming languages
  • Parallel programming approaches

Textbook

  • Bertrand Meyer: Touch of Class, Learning to Program Well with Objects and Contracts, Springer 2009, ISBN: 978-3-540-92144-8
  • Introduction to Programming in Java: An Interdisciplinary Approach (2nd Edition) - Robert Sedgewick and Kevin Wayne

Reference material

Lecturing and lab slides and material will be provided.

Required computer resources

Students should have laptops with basic software for reading and editing document. The programming language for this course is Eiffel. Instructions on how to install it will be provided in the first week of the course.

Evaluation

  • Mid-term Exam (25%)
  • Final Exam (30%)
  • Lab assignments (40%)
  • Lab participation (5%)