COURSE GOALS:
Train students to be ready to independently do numerical calculations including the development of simple programs. For that purpose in this course students learn about usual working environment (linux, latex, html), as well as about basics of C and python. The emphasis is on developing independency in learning and searching for information (especially using internet) necessary for solving homework so that they are later able to adapt to the specific computing setups. Furthermore, since computing is a demanding discipline and differences in previous knowledge significant, one of the goals is to enable extra hours of practice in computing laboratory to the students that require it (e.g. to those who encounter programming for the first time) together with student demonstrator support.
LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
2. APPLYING KNOWLEDGE AND UNDERSTANDING
2.1 identify the essentials of a process/situation and set up a working model of the same or recognize and use the existing models
2.5 perform numerical calculation independently, even when a small personal computer or a large computer is needed, including the development of simple software programs
4. COMMUNICATION SKILLS
4.2 present one's own research or literature search results to professional as well as to lay audiences
4.3 develop the written and oral English language communication skills that are essential for pursuing a career in physics
5. LEARNING SKILLS
5.1 search for and use physical and other technical literature, as well as any other sources of information relevant to research work and technical project development (good knowledge of technical English is required)
5.4 participate in projects which require advanced skills in modeling, analysis, numerical calculations and use of technologies
LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
Upon completing the course, students will be able to:
1. use computers in linux environment independently which includes managing files and directories, using email, terminal, and web browser;
2. use basic elements of html, latex, programming languages c and python;
3. develop one's own ways of learning and thinking which enable acquiring rules of programming and their application in a new context;
4. independently develop simple computer programs which include simple calculations and their graphical representation, use of files, sorting contents of an array, dynamic memory allocation;
5. distinguish between unformatted (binary) and formatted (textual) data representation in memory or in a file, and use appropriate functions for reading and writing;
6. use several simple algorithms: brute force (counting, finding minimum), binary search (bisection), run length encoding data compression, using uniform random numbers to generate random numbers with given distribution;
7. use standard methods of storing numbers in a textual file;
8. using program interoperability (using the result of one program as an input for another);
9. use professional literature as well as any other sources of relevant information, with emphasis on internet;
COURSE DESCRIPTION:
1 input and output, basic operators and loops
2 data types, operators
3 flow control, functions
4 working with numbers on a computer
5 arrays, structures
6 pointers
7 arrays of characters / strings
8 textual files
9 binary files
10 memory allocation
11 sorting arrays
12 comparison of c and python: input/output, operators, branching/looping, functions
13 comparison of c and python: arrays, strings, files
14 comparison of c and python: sorting, functional programming
15 application examples
REQUIREMENTS FOR STUDENTS:
Passing 2 midterm written exams and solving homework problems.
GRADING AND ASSESSING THE WORK OF STUDENTS:
Midterm written exams (40%) + midterm oral exams related to homework problems (60%).
|
- Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, 2. izdanje, Prentice Hall, Inc., 1988.
- Byron Gottfried, Schaum's Outline of Programming with C, 2. izdanje, McGraw-Hill, 1996
- Oxford University Computing IT (OUITS) tutorial na web stranici: http://www-teaching.physics.ox.ac.uk/computing/ProgrammingResources/programming.html
|