This course explains basic techniques for procedural programming using the C language.
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.
Results of the Computer programming 1 written test of 13/06/2012
The results of the written test of 13/06 are available.
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.
Office hours canceled
Regular office hour are canceled until next semester; students can arrange an appointment via e-mail.
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.
Office hours canceled
Office hour on Mar 21 are canceled; students can arrange an appointment via e-mail.
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.
Results of the Computer programming 1 written test of 29/02/2012
The results of the written test of 29/02 are available.
Office hours canceled
Office hour between Feb 29 and Mar 7 (included) are canceled; students can arrange an appointment via e-mail.
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.
Office hour for the spring semester
Office hour for the spring semester will be on Tuesday, 14:30 to 16:00.
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.
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.
Results of the Computer programming 1 written test of 23/01/2012
The results of the written test of 23/01 are available.
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.
Office hours canceled
Office hours of 19/01 are canceled; students can arrange an appointment via e-mail.
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.
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.
Office hour change
Office hour for this week will be on Friday 13 at 10:30.
Second midterm of Computer programming 1
The second midterm will be held on Wednesday 18/01 at 8:30 in aula beta.
Schedule change for the Computer programming 1 class of 12/01
Class of Thurdsay 12/01 is postponed to Tuesday 17/01.
Office hours change
Today office hours will be held at 16:30.
Cancellation of the Computer programming 1 class of 6/12
6/12 class is canceled.
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.
First midterm of Computer programming 1
The first midterm will be held on Wednesday, November 16th. Registration through SIFA terminals is required.
Office hours canceled
Office hours of 6/10 are canceled; students can arrange an appointment via e-mail.
Beginning of che Computer Programming 1 classes
Theory and laboratory classes will start on October 4th and October 14th, respectively.
Lectures are in italian.
Lectures will take place according to the following schedule:
|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.
Thursday, at 17:00.
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.
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).
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.
|04/10/2011||Introduction to the course and bases of computer architecture|
|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|
|10/11/2011||Functions and program structure|
|15/11/2011||Functions and parameters|
|30/11/2011||Strings, array of strings and pointers to pointers|
|15/12/2011||Preprocessor and programs of big dimension|
|20/12/2011||Structures, unions and enumerations|
|21/12/2011||Dynamic memory allocation|
|10/01/2012||I/O and files|
|11/01/2012||Usage of files and abstract data types|
|17/01/2012||Abstract data types|
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.
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.
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.
|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|