Insegnamento a.a. 2020-2021

30539 - COMPUTER SCIENCE - MODULE 1 (INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING)

Department of Decision Sciences

Course taught in English
Go to class group/s: 27
BAI (8 credits - I sem. - OB  |  INF/01)
Course Director:
CARLO BALDASSI

Classes: 27 (I sem.)
Instructors:
Class 27: CARLO BALDASSI


Mission & Content Summary

MISSION

Scope of the course is to provide the basic methodological and conceptual tools which are instrumental for algorithmic thinking and computer programming, using the C and Python programming languages as references. The course sets the basis for the programming knowledge which is extensively used in subsequent courses of the education program.

CONTENT SUMMARY

  • Introduction to computer architecture and programming languages;
  • introduction to C
  • Basic algorithmic constructs
  • Basic data structures
  • Introduction to Python
  • Basics of object-oriented programming
  • Principles of functional programming

Intended Learning Outcomes (ILO)

KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • Describe the basics of the modern computer architecture
  • Summarize how most common imperative programming languages work, and the difference between compiled and interpreted languages;
  • Identify basic algorithmic patterns in C and Python
  • Recognize and apply the object-oriented programming paradigm

APPLYING KNOWLEDGE AND UNDERSTANDING

At the end of the course student will be able to...
  • Develop basic C and Python programs
  • Design basic algorithms
  • Create simple classes with an object-oriented programming approach

Teaching methods

  • Face-to-face lectures
  • Online lectures
  • Exercises (exercises, database, software etc.)

DETAILS

  • Online lectures: short videos consisting of diagams and live-coding that demonstrate the syntax and concepts of the C and Python programming languages and the basic data structures and programming paradigms
  • Exercises: Online exercises on a dedicated coding platform with automatic assessment; also demos and general discussions with the instructors and the TAs

Assessment methods

  Continuous assessment Partial exams General exam
  • Written individual exam (traditional/online)
x   x

ATTENDING AND NOT ATTENDING STUDENTS

Continuous assessment will consist in programming exercises done via an online platform with automatic grading. It will contribute to a maximum of 28 out of 31 points of the final grade.

The students will have the option to do a short final exam for the remaining 3 points, or to do a long final exam for the whole 31 points (in which case the grades of the continuous assessment are discarded).

 

The exercises will start from the basics of each language (syntax, evaluation order, types, types conversions, type coercion, etc), which are directly tied to modern computer architecture and translate almost directly into how the computer operates. They will progressively test more complicated constructs, allowing to explore and recombine common programming patterns and reach the level of designing simple algorithms for previously unseen tasks. When object-oriented-programming will be introduced, the exercises will focus on the creation of progressively more complicated objects, testing at first  the understanding of the basic mechanism of objects creation, methods dispatch and the role of special methods, and later operating at a more abstract level, with the aim of reaching a full separation between the objects interface and the internal representation. By the end, the exercises will involve the creation of simple classes based only on the interface specification, leaving the concrete implementation and the internal representation as a task for the students.


Teaching materials


ATTENDING AND NOT ATTENDING STUDENTS

 

Last change 15/07/2020 13:56