1C09MNS902 - Introduction to Computer Science 2
| Course specification | ||||
|---|---|---|---|---|
| Type of study | Bachelor academic studies | |||
| Study programme | Mathematics and Informatics | |||
| Course title | Introduction to Computer Science 2 | |||
| Acronym | Status | Semester | Number of classes | ECTS |
| 1C09MNS902 | mandatory | 2 | 3L + 2E | 7.0 |
| Lecturers | ||||
| Lecturer | ||||
| Lecturer/Associate (practicals) | ||||
| Prerequisite | Form of prerequisites | |||
| Introduction to Computer Organization and Architecture 1 | Passed exam | |||
| Learning objectives | ||||
| 1. Familiarization with assembly language. 2. Introduction to the higher-level programming language Python. 3. Developing a programmer's perspective on the computer as a machine. 4. Programming acquaintance with the capabilities offered by the computer as a data processing machine, considering various paradigms, technologies, and applications. 5. Understanding from a programming perspective: memory model, data storage (types and representations), input and output operations, interrupts, and exceptions; 6. Setting the groundwork for following courses: Data Structures and Algorithms, Algorithm Design and Analysis. | ||||
| Learning outcomes | ||||
| The student should master the following: - Understanding the characteristics of writing code in assembly language; - Understanding the basic connections between lower-level and higher-level programming languages; - Writing simple procedural scripts in the Python programming language. - Basics of code testing. - Defining program classes in Python according to a given specification; - Understanding the memory model of code execution. - Programming design of a simple graphical user interface (UI interactions) and understanding MVC; - Programming interaction with a database and executing simple SQL statements; - Understanding the client-server model; - Differentiating between various methods of parallel computing. | ||||
| Content | ||||
| Basics of programming in assembly language. Introduction to programming in the Python programming language. Types. Variables. Assignment statements. Input and output. Built-in functions. Defining custom functions. Function documentation and code commenting. Visualization of the call stack (trace). Type conversions. If statements. Indexing and slicing. String methods. Lists. The range function. For and While loops. Nested and nested lists. Nested loops. File processing. Tuples. Dictionaries. Dictionary iteration. Introduction to testing. Unit testing. Introduction to algorithm analysis. Linear search of a list. Binary search of a list. Comparison of searches. Bubble sort. Selection sort. Insertion sort. Introduction to object-oriented programming. Formation of new types. Functions as arguments. Default and named arguments. Exceptions. Introduction to graphical user interface design. Introduction to databases. Understanding the client-server model. Flynn's taxonomy. Introduction to parallel computing. | ||||
| Teaching Methods | ||||
| Lectures. Guided discussion. Classroom exercises. | ||||
| Literature | ||||
| ||||
| Evaluation and grading | ||||
| Midterm examination(s) in the form of a set of problems. Written (practical) examination. Theoretical examination consisting of a written test and an oral examination. | ||||
