BSc in Computer science and music (Università degli Studi di Milano)
This course explains basic techniques for procedural programming using the C language.
News
Date | Info |
---|---|
03/07/2012 |
Details for the Computer programming 1 written test of 5/7/2012 The written test of 5/7 will take place in aula beta at 14:30. |
14/06/2012 |
Results of the Computer programming 1 written test of 13/06/2012 The results of the written test of 13/06 are available. |
11/06/2012 |
Details for the Computer programming 1 written test of 13/6 The written test of 13/6 will take place in aula beta at 8:30. |
05/06/2012 |
Office hours canceled Regular office hour are canceled until next semester; students can arrange an appointment via e-mail. |
22/03/2012 |
Office hour suspension Because of the next meeting of the Division council and the Easter holidays, the office hours up to 13/4 will take place by appointment. |
19/03/2012 |
Office hours canceled Office hour on Mar 21 are canceled; students can arrange an appointment via e-mail. |
05/03/2012 |
Additional oral test date for Computer programming 1 in the February session An additional oral test for the February session (both for theory and laboratory parts) will take place on Thursday 8/3 at 11:30 at the sala riunioni at the second floor of the Computer science Department. Students willing to take the test in this date should contact the teacher via e-mail. |
03/03/2012 |
Results of the Computer programming 1 written test of 29/02/2012 The results of the written test of 29/02 are available. |
21/02/2012 |
Office hours canceled Office hour between Feb 29 and Mar 7 (included) are canceled; students can arrange an appointment via e-mail. |
21/02/2012 |
Details for the Computer programming 1 written test of 29/02 The written test of Wednesday 29/02 will take place at 13:30 at aula G08 in via Golgi. |
20/02/2012 |
Office hour for the spring semester Office hour for the spring semester will be on Tuesday, 14:30 to 16:00. |
01/02/2012 |
Correction of the Computer programming 1 written test of 23/1 After the oral tests of Thursday 2/2 the written test of 23/1 will be corrected. |
30/01/2012 |
Oral tests of Computer programming 1 for the January session Oral tests for the Jaunary session will take place at 9:30 of Thursday 2/2 in aula 5 and aula 6 of the Computer scince Department. In order to be admitted to these test it is requested to: 1. pass the laboratory test of 31/01 (results will be published shortly after the test ends), and 2. pass the written test of 23/01 or both midterms. |
26/01/2012 |
Results of the Computer programming 1 written test of 23/01/2012 The results of the written test of 23/01 are available. |
19/01/2012 |
Results of the Computer programming 1 second midterm of 18/01/2012 The results of the first midterm of Computer programming 1 of 18/01 are available. |
18/01/2012 |
Office hours canceled Office hours of 19/01 are canceled; students can arrange an appointment via e-mail. |
16/01/2012 |
Written test of Computer programming 1 of 23/01/2012 The written test of Monday 23/01 will be hold at 8:30 in aula beta. |
15/01/2012 |
Seminar on C programming tools Students are advised to follow the seminar on C programming tools held by Dr. Santini on Tuesday 17/01 at 10:30 in aula V9. |
11/01/2012 |
Office hour change Office hour for this week will be on Friday 13 at 10:30. |
22/12/2011 |
Second midterm of Computer programming 1 The second midterm will be held on Wednesday 18/01 at 8:30 in aula beta. |
22/12/2011 |
Schedule change for the Computer programming 1 class of 12/01 Class of Thurdsay 12/01 is postponed to Tuesday 17/01. |
22/12/2011 |
Office hours change Today office hours will be held at 16:30. |
24/11/2011 |
Cancellation of the Computer programming 1 class of 6/12 6/12 class is canceled. |
24/11/2011 |
Results of the Computer programming 1 first midterm of 16/11/2011 The results of the first midterm of Computer programming 1 of 16/11 are available. |
03/11/2011 |
First midterm of Computer programming 1 The first midterm will be held on Wednesday, November 16th. Registration through SIFA terminals is required. |
03/10/2011 |
Office hours canceled Office hours of 6/10 are canceled; students can arrange an appointment via e-mail. |
20/09/2011 |
Beginning of che Computer Programming 1 classes Theory and laboratory classes will start on October 4th and October 14th, respectively. |
Language
Lectures are in italian.
Course schedule
Lectures will take place according to the following schedule:
Day | Hour | Place |
---|---|---|
Tuesday | 8:30 - 10:30 | aula 204 (via Celoria) |
Wednesday | 8:30 - 10:30 | aula beta (via Comelico) |
Thursday | 12:30 - 14:30 | aula beta (via Comelico) |
Any change to the schedule will be announced in class and published in paragraph News of this page. In particular, the Tuesday lesson will occasionally be held from 8:30 to 11:30.
The course is associated to a laboratory held on each Friday from 8:30 until 12:30 in aula sigma of the CS departments in Via Comelico. For further informations, refer to the related web site.
Office hours
By appointment, room 5015 of the Computer Science Department.
It is possible contact the teacher by e-mail, taking care to read in advance the guide prepared by Prof. Sebastiano Vigna and clearly specifying in the message the course name and the academic year. In particular, students are encouraged to always use their academic address (i.e. based on the domain studenti.unimi.it
) signing with name and student ID number and recalling that the response time may vary depending on the teacher commitments.
Course material
The course is based on the following material:
- the textbook: K. N. King, C Programming -- A Modern Approach, second edition, published by W. W. Norton (ISBN 978-0-393-97950-3), associated to a homepage containing an errata corrige, the examples' source code and the solution to some exercises;
- the course notes (in italian) for the part on architecture and boolean logic, written by Prof. Paolo Boldi.
Students willing to get a strong background on the subject of computer programming are also advised to read:
- the textbook Brian Kernighan and Dennis M. Ritchie, Il linguaggio C, published by Pearson Education Italia, Milano (ISBN: 887192200X);
- the textbook Brian Kernighan and Rob Pike, Programmazione nella pratica, published by Pearson Education Italia, Milano (ISBN: 8871920724);
- the textbook Jon Bentley, Programming Pearls, published by Addison-Wesley (ISBN: 0201657880).
Syllabus
The course explains the topics listed in the lecture calendar, covering the course notes and textbook contents in chapters 1-17 (excluding section 12.4) and 22.
Lectures calendar
Date | Topic |
---|---|
04/10/2011 | Introduction to the course and bases of computer architecture |
05/10/2011 | Information encoding |
12/10/2011 | Information encoding |
13/10/2011 | Languages,interpreters, compilers and first C programs |
18/10/2011 | Boole algebra and circuits |
19/10/2011 | Formatted I/O and expressions |
20/10/2011 | Branching control structures |
25/10/2011 | Iteration control structures |
26/10/2011 | Iteration control structures |
27/10/2011 | Iteration control structures |
02/11/2011 | Recap on control structures |
03/11/2011 | Elementary types |
08/11/2011 | Arrays |
09/11/2011 | Arrays |
10/11/2011 | Functions and program structure |
15/11/2011 | Functions and parameters |
16/11/2011 | Midterm |
17/11/2011 | Midterm correction |
22/11/2011 | Program organization |
23/11/2011 | Pointers |
24/11/2011 | Pointer arithmetics |
29/11/2011 | Strings |
30/11/2011 | Strings, array of strings and pointers to pointers |
01/12/2011 | Sorting algorithms |
13/12/2011 | Search algorithms |
14/12/2011 | Recursion |
15/12/2011 | Preprocessor and programs of big dimension |
20/12/2011 | Structures, unions and enumerations |
21/12/2011 | Dynamic memory allocation |
22/12/2011 | Lists |
10/01/2012 | I/O and files |
11/01/2012 | Usage of files and abstract data types |
17/01/2012 | Abstract data types |
Exam modalities
The exam conists of three parts: a written one, a laboratory one, and an oral one. These parts should be passed on the same session (check later on for a list of exceptions concerning the sessions of January and February, and for midterms) with a positive score in all them. The average score of the written and laboratory part (weighed in function of their credits) represents the base score for the oral part. It is highlighted that the oral examination can lead to both rising or lowering this base score, possibly implying a fail.
Students willing to take the exam in a given session should subscribe through SIFA (using either @SIFA on-line, or the corresponding terminals at the university), both for the laboratory and the written parts. This holds for every sesion, including midterms.
Midterms
The course has two optional midterms scheduled (on 16th November and approximately on end of January). Students willing to take the exam in January or February and whose midterms are both passed are not requested to take the written part (the average score of midterms substitutes the written part score). Students having passed both midterms can anyway take the written part, although in this case they need to pass the latter and cannot get back to its midterm average score.
Session jump
Students failing a written part with a sensibly low score (that is, sensibly below the average score of all students for that session) will not be allowed to take the exam on the next session.
Students of Computer science and telecommunications
Students of the degree of Computer science and telecommunications can take the exam of Computer programming passing an oral test held during the written examinations of Computer programming 1 for the degree of Computer science and music. They are anyway requested to subscribe to the exam.
Exam sessions
Session | Date | |
---|---|---|
November (midterm) | 16/11/2011 | Results |
January (midterm) | 18/01/2012 | Results |
January | 23/01/2012 | Results |
February | 29/02/2012 | Results |
June | 13/06/2012 | Results |
July | 05/07/2012 | converted into oral because of a low number of participants |
September | 20/09/2012 | converted into oral because of a low number of participants |