0% found this document useful (0 votes)
16 views13 pages

00 - Intro To The Course (Slides)

This document provides an introduction to the Computer Programming 30509 course for the 2022/23 academic year. It outlines the instructors, prerequisites, tools, course organization, topics, and exams. The course will use Python to cover advanced programming techniques through topics like Monte Carlo simulations, graph algorithms, optimization, and data structures. Students will learn through lectures, practice sessions involving live-coding, and exercises to practice and receive feedback. The exam will involve programming exercises and open-ended theoretical questions. Regular practice and engagement are emphasized for students to succeed.

Uploaded by

Rokko Thor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views13 pages

00 - Intro To The Course (Slides)

This document provides an introduction to the Computer Programming 30509 course for the 2022/23 academic year. It outlines the instructors, prerequisites, tools, course organization, topics, and exams. The course will use Python to cover advanced programming techniques through topics like Monte Carlo simulations, graph algorithms, optimization, and data structures. Students will learn through lectures, practice sessions involving live-coding, and exercises to practice and receive feedback. The exam will involve programming exercises and open-ended theoretical questions. Regular practice and engagement are emphasized for students to succeed.

Uploaded by

Rokko Thor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Computer Programming 30509

Introduction to the course


A.Y. 2022/23
Instructors


Luca Saglietti


Luca Silva (TA)


Office hours: I could fix official ones,
but it is best (and more flexible) if you just send
me an email and we arrange a meeting

Also: USE THE FORUM! (everybody benefits)

2
Prerequisites


I'll assume basic but solid knowledge
of Python (basically the Think Python
book, more or less)

3
Tools


We will use Python 3 (I suggest Python 3.6 at
least)

We will also use some scientific libraries
(numpy, scipy, matplotlib)

We will use the Spyder Integrated
Development Environment (IDE)

All of this comes bundled in the Anaconda
distribution

During practice sessions, bring your laptop and
follow along

4
Course organization


There will be a programming part and a theory
part.

They will be tied and proceed in parallel

The theory part is (mostly) intended to
introduce concepts that we will then put in
practice into code

There might be some tangential topics covered

5
This course is still work-in-progress


The course has been (and will be) continually
adjusted
– Based on students' feedback and our observations

Prof. Carlo Baldassi


Feedback/constructive criticism is very
welcome!

6
Course objectives


The idea is to learn some more advanced
programming patterns/techniques/algorithms,
and keep gaining familiarity
– Side objective: learn to navigate documentation

Also, to cover topics that fit into the course of
studies, and prepare for the following
semester courses (e.g. machine learning)

Also, to make the topics as interesting/relevant
as possible

Also, to have a somewhat coherent framework

7
Course topics


The main idea is to cover several families of
optimization problems, and algorithmic
techniques related to them

Then, we will use those as an excuse to learn
more advanced programming

Broadly, 4 main topics
– Monte Carlo, Simulated Annealing
– Graph algorithms and Dynamic programming
– Non-linear optimization, Gradient descent
– A few selected Data structures
8
Course organization (II)


For each of the first 3 main topics, we will have
the theory part first

Then we will have the programming part
related to that (both generic algorithms and
examples)

The first two practice sessions will be a bit
special because we need some foundations
(learn Python's numeric/scientific libraries)

9
Practice sessions organization


Mostly I will do live-coding explaining what I do
and why and how

You're expected to follow along

You're expected to ask questions (this is not
the time be shy or passive)

We will also do exercises in class

I'll give exercises for you to do on your own

Feedback is welcome

10
Exams


The exam will consist in programming
exercises (coding) with some open-ended more
theoretically-oriented questions

Single exam, 0 to 31 grade, passing grade is
18, limited amount of renormalization

You'll have access to a mock exam and past
exams

More about this during the last lecture

11
Some general advice


Practice, practice, practice

The basics (basic Python + first few lectures) must
be rock-solid

Don't fall behind. There is no midterm, you'll need
to discipline yourselves

Experiment as much as you can with code

Be curious. Always investigate anything you don't
understand 100%. Feel free to ask (lectures,
forum, office hours...)

Never look at the solution of an exercise before
having given your best
12
Questions before
we start?

13

You might also like