We search for courses, buy and publish them for you for free.
Support INTUIT
Registrationreferences
Email address: *
Password: *
Forgot your password?
Remember me
Log in Log in as a guest
Your path to knowledge!
Study Academy Teachers Rating Questions Shop
Mobile versions
Contest News Help About the project
Courses School Higher education Mini MBA Professional retraining Advanced training Certification
Tutors
Marina Mikhaleva
About the course
Information Glossary Diplomas Questions and Answers Students Graduate rating Opinions Literature Study programs
Lesson plan
External exam
Lecture 1
Available resources Dedication
Foreword by the translation editor This is how they teach in ETH
The author's preface to the Russian edition of the Preface
Foreword for students Software (software, software) everywhere
Amateur and professional software development
Previous experience
Modern software technology
Object oriented software design
Formal methods
We learn by creating
From the consumer to the supplier
Abstraction
Goal: Quality
Preface for teachers Challenges of the first year
From Outside to Inside: A Reversed Curriculum
From Programming to Software Engineering Terminology Technology Choices Eiffel Object Technology and Contract Design Why not Java?
How formal is it?
Other approaches of Gratitude
Lecture 2
1.1.
Their cars and ours
1.2.
General Computer Task Settings
General organization
Information and data
Computers are everywhere
A computer with a stored program
1.3.
Key concepts studied in this lecture New Dictionary
1 U. Exercises 1 U.
1. Dictionary
1 U.
2. Data and information
1 U.
3. Give an exact definition of what you know well
1 U.
4. Anthropomorphism
Test 1
Lecture 3
Class text
2.2.
Objects and calls Execution of the first program
Program analysis
2.3.
What is an object?
Objects that can be hit, and those that cannot be hit
Class components( features), commands and queries
Objects as machines
Objects: definition
2.4.
Methods with arguments
2.5.
Methods with arguments New dictionary
2 U. Exercises 2 U.
1. Dictionary
2 U.
2. Concept map
2 U.
3. Commands and queries
2 U.
4. Interface design
Test 2
Lecture 4
3.1.
Instructions and expressions 3.2.
Syntax and semantics 3.3.
Programming languages, natural languages 3.4.
Grammar, categories, samples 3.5.
Nesting and syntax structure 3.6.
Abstract syntax trees
3.7.
Lexemes and lexical structure Types of lexemes
Language description levels
Identifiers
Language description levels
3.8.
Key concepts studied in this lecture New Dictionary
3 U. Exercises 3 U.
1. Dictionary
3 U.
2. Concept map
3 U.
3. Syntax and semantics
Test 3
Lecture 5
4.1.
Interfaces 4.2.
Classes
4.3.
Using a Class How to determine what a good class should do
A document with minimum requirements
Initial ideas for finding classes
What characterizes the metro line
4.4.
Queries How many stations are there on the line?
We are experimenting with queries
Stations on the line
Properties of the beginning and end of lines
4.5.
Commands Building a Metro line
4.6.
Contracts Preconditions
Contracts for debugging
Contracts for documenting the interface
Postconditions
Invariants of the class
Contracts: definition
4.7.
Key concepts studied in this lecture A new dictionary
4 U. Exercises 4 U.
1. Dictionary
4 U.
2. Concept map
4 U.
3. Violation of contracts
4 U.
4. Violation of the invariant
4 U.
5. Postcondition vs. invariant
4 U.
6. When to write contracts
Test 4
Lecture 6
5.1.
Boolean operations Boolean values, variables, operations, expressions
Denial
Disjunction
Conjunction
Complex expressions
Complex expressions
Tautologies
Equivalence
De Morgan's Laws
Simplification of notation
5.2.
Implication Definition
Relation to conclusions
A practical sense of implication
Reversal of the implication
5.3.
Semi strict Boolean operations Semi strict implication
5.4.
Predicate calculus Generalization of " or " and " and"
Exact definition: an expression with an existence quantifier
Exact definition: an expression with a generality quantifier
The case of empty sets
5.5.
Further reading
5.6.
Key concepts studied in this lecture A new dictionary
5 U. Exercises 5 U.
1. Dictionary
5 U.
2. Concept map
5 U.
3. Properties of Boolean operations
5 U.
4. Distorted logic
5 U.
5. Does the warning match?
5 U.
6. Inequality
5 U.
7. Associativity and implication
5 U.
8. Signs of strength
5 U.
9. Implication and negation
5 U.
10. Implication
5 E.
11. "Exclusive or" as the beginning of all Boolean operations
5 U.
12. Properties of the " exclusive or"
5 U.
13. Blue hats and red hats
5 U.
14. Truth tables with uncertainties:semi strict boolean operations
5 U.
15. Truth table with uncertainties: ordinary Boolean operations
Test 5
Lecture 7
6.1.
General settings 6.2.
Entities and objects
6.3.
VOID links The initial state of the link Definition: link states
Difficulties with void links Feel the Semantics: The principle of an attached goal
Not every ad needs to create an object
The role of void links
Challenges in expressions: will help you overcome your fear of void
6.4.
Creating simple objects
6.5.
Creation procedures 6.6.
Correctness of the creation operator Feel the methodology
6.7.
Memory Management and Garbage Collection
6.8.
System Execution Everything starts from the start of the Definition: system execution, root object, root class, root creation procedure
Root class, system, and design process
Specifying the root
Current object and general relativity theory Definition: Current object
Definitions: qualified and unqualified call
Ubiquity of calls: aliases of operations
6.9.
Appendix: Getting rid of void calls 6.10.
Key concepts studied in this lecture
6 U. Exercises 6 U.
1. Dictionary
6 U.
2. Concept map
6 U.
3. Invariants for points
6 U.
4. Current and Void
6 U.
5. Connected and disconnected
Test 6
Lecture 8
7.1.
Structures for solving problems How to boil a kettle of water
7.2.
The concept of the algorithm Example Feel the Arithmetic
Clearly and accurately: algorithms vs. recipes
Algorithm Properties Definition: Algorithm
Algorithms vs. programs
7.3.
Fundamentals of control structures Definitions: Control flow, Control structure
7.4.
Sequence (compound operator) Examples Programming Time
Compound operator: syntax Syntax
Feel the style
Composite operator: semantics Semantics
Redundant specification
Compound operator: correctness Correctness
7.5.
Cycles Programming Time!
The cycle as an approximation of the invariant cycle of the "maximum" strategy at step i
Cycle strategy Cycle operator: Basic syntax Inclusion of an invariant
Loop operator: correctness Correctness
Correctness
Cycle completion and stopping problem Definition: Cycle option
Feel the theory
Feel the history:
Feel the methodology
Animation of the metro line Programming time!
Understanding and verification of the Programming Time cycle!
Feel the methodology: The cursor - where it can be located
7.6.
Conditional operators Conditional operator: example Programming time!
The structure of the conditional operator and its variations Feel the style
Conditional operator: syntax Syntax
Conditional operator: semantics Semantics
Conditional operator: correctness Correctness
7.7.
Low level: transition operators Conditional and unconditional branching (transitions)
Goto operator
Block diagrams
7.8.
Is GOTO exclusion and Goto structured programming harmful?
Life without goto Feel the history:
Feel the master:
Structural programming
How goto hides under the mask Feel the methodology
7.9.
Variations of basic control structures Initialization of the cycle Feel the methodology
Other forms of the cycle
Multiple Choice Feel the Story
7.10.
Introduction to exception handling The role of exceptions
The exact framework for discussing refusals and exceptions Definitions: Refusal, Exception, Recipient
Repetition Feel the methodology
Exception Details
Try catch style of exception handling
Two points of view on exceptions
7.11.
Application: Example of deleting GOTO
7.12.
Further reading
7.13.
Key concepts studied in this lecture New Dictionary
7 U. Exercises 7 U.
1. Dictionary
7 U.
2. Concept map
7 U.
3. Cycles in machine languages/
7 U.
4. Block diagram of the conditional operator
7 U.
5. Boehm Giacopini in practice
7 U.
6. Cycle forms
7 U.
7. Emulation (modeling) of the variant
7 U.
8. Emulation of retry in the language with try catch
7 U.
9. Try catch emulation in the language with rescue retry
Test 7
Lecture 9
8.1.
Derivability of "bottom up" and "top down" Feel the terminology
8.2.
Routines as methods (routines as features) 8.3.
Encapsulation (hiding) of functional abstraction
8.4 Anatomy of a method declaration Interface and Implementation
8.5.
Hiding information Programming time!
8.6. Procedures vs. Functions
8.7.
Functional abstraction Feel the methodology
8.8.
Using methods 8.9.
Appendix: Proof of the unsolvability of the halting problem 8.10.
Further reading
The key concepts studied in this lecture are the New Dictionary
8 U. Exercises 8 U.
1. Slovary09
8 U.
2. Concept map
Test 8
Lecture 10
Mathematics is static, in a dynamic way
9.1.
Assignment Summing up the trip time Test time
Feel the semantics
Programming time!
Local variables Programming time!
The rule of local variables
The result of the function Definition: reserved word
Value exchange (swapping)
The power of assignment Feel the syntax
9.2 .
Field Attributes, Methods, Queries, Functions, Attributes
Assigning an attribute
Hiding information: modifying fields Feel the methodology
Hiding information: access to fields
9.3.
Types of class components (features) The client's point of view Feel the methodology
Supplier's position
Setters and getters Feel the methodology
9.5.
Entities and variables Basic definitions Definition: types of entities
Definitions: variable, variable entity
Variables and constant attributes Feel the style
Feel the methodology
9.5.
Reference Assignment Construction of Metro stops
Building a metro line
9.6.
Programming with links Links as a modeling tool
Using links to model related data structures
Void Links Feel the methodology
Accessing the list
Making the lists explicit
Where are the operations on links used?
Feel the methodology
Feel the methodology
Dynamic aliases
9.7.
Key concepts studied in this chapter
9 U. Exercises 9 U.
1. Dictionary
9 U.
2. Dictionary
9 U.
3. Concept map
9 U.
4. Terminology
9 U.
5. Exchange of values (swapping)
9 U.
6. Application procedure
9 U.
7. Changing stops in two ways
9 U.
8. List of stops as a class
9 U.
9. Language rules
Test 9
Additional material 1
Additional material 2
Exam
You can support this course.
Read @nouintuit
Programming Basics
[+]
Tver State University
Published: 03.10.2011 | Access: free | Students: 2824 / 40 / Rating:
4.33 / 3.83 / Duration: 19: 48:00
ISBN: 978-5-9963-0573-5
Topic: Programming
Specialties: Programmer, System architect
Tags: eiffel, goto, algorithms, libraries, boolean expression, calculations, invariant, interfaces, clients, components, training, operand, postcondition, precondition, programming, procedures, specifications, data structures, truth table, tautology, theory, conditional operators, elements
Sign up
| Do you like it?
28 students like it | Share |
Support the course | Download an e book
Tweet
Lecture 1: Introduction
A
| print version
Lecture 1: 123456 | / Lecture 2 > Forewords note description: "[This book has two forewords: one for teachers, the other for students, which is reflected below in the unusual, but correctly used our own notation used when writing programs. ]
"class PREFACING inherit KIND OF READER create choose feature Initializing choose — Select the preface intended for you.
do if is student then student preface.
read elseif is instructor then instructor preface.
read else pick one or both end check — You will learn about dynamic linking.
note why: "You will be able to express everything more elegantly!" end end end
Preface for students Programming is an exciting activity (fun)!
Where else can you spend your days creating cars with your own imagination, building them without a hammer and nails, without getting your clothes dirty, making them work like magic, and at the same time get paid monthly — quite a good one?
(Thank you for the existing demand for such work!)
Programming is a difficult task!
Where else do products from the most prestigious companies refuse in normal conditions of use?
Where else will you find so many outraged users?
Where else do engineers spend hours and days trying to figure out why something that should work doesnot work?
Be ready to master the skill of programming in its professional form software engineering; be ready for the joys and difficulties of this profession.
Software (software, software) everywhere By choosing computer science, you have chosen one of the most exciting and rapidly developing fields of science and technology.
Fifty years ago, it was hardly possible to talk about computer science as a scientific branch; today it is impossible to imagine a university without a computer science faculty.
Thousands of books and journals appear in this area, thousands of conferences are held.
Total revenues in the industry, called "Information Technology" (IT), are measured in trillions of dollars.
There is no other industry in the history of technology that is growing with such speed and significance.
The fact is that without software, intercontinental flights would be impossible, and in fact there would be no modern airliners themselves (as well as modern cars, high speed trains, etc.), since their design requires very complex software called CAD (Computer Aided Design).
To pay the salaries of its employees, any large company would have to have hundreds of accounting employees engaged in calculating and writing settlement checks.
The phone would still be hanging on the wall with wires stretched to it.
If you took a picture with a camera, you would not be able to see the result without developing the film and printing the photos.
There would be no video games, video cameras, iPods and iPhones, no Skype, no GPS.
Any report would have to be written manually and given to a typist for reprinting, and then edit the resulting text, repeating this process until the desired result is obtained.
An unexpected desire to find out the name of an artillery captain in the novel "War and Peace" or the population of Cape Town, or the author of a famous saying — all this would require a trip to the library.
Now it is enough to type a few words in the search box and get an answer instantly.
This list of new opportunities that make up our daily life can be continued.
They are based on programs incredibly complex programs.
All this did not happen by itself, at the wave of a magic wand.
Programming, the task of designing new programs or improving existing ones, is an intellectual activity that requires creative thinking and experience.
This book will help you enter the world of software and programming, become a professional in this field.
Amateur and professional software development More and more people are getting knowledge of the basics of computer science, but professional programming involves a completely different level of skill.
For comparison, consider mathematics.
A few centuries ago, the ability to add and subtract five digit numbers required a university education and provided an opportunity to get a good job as an accountant.
Today, these skills are taught in high school.
If you want to become an engineer, a physicist or a stock market player, you need to study more advanced branches of mathematics at the university, such as, for example, differential and integral calculus.
The boundary between basic knowledge and the university level of education has significantly shifted towards complexity.
Computer processing of information, what is more often called in one word — Computing, follows the same path, but at a much faster speed: the count goes for decades, and not for centuries, as before.
Until recently, the ability to write a program for a computer was enough to get a good job.
These days, you wonot surprise anyone by stating "I write programs" in your resume — it's like if you indicated that you know how to add numbers.
There is a significant difference between basic programming skills and the qualification of a specialist in software engineering.
The basics will be available to all those who have received a modern education.
Professional education is similar to advanced sections of mathematics.
Studying this book is a step in the direction leading to computing professionals.
Factors that distinguish professional programming from amateur programming include volume, duration, and changes.
In professional development, you have to deal with programs containing millions of lines of code, running for several years or decades, subject to numerous changes and extensions in response to changed circumstances.
Many problems seem insignificant and trivial when working with medium sized programs, but they become critical when switching to professional programming.
In this book, I will try to prepare you for the world of real software, where systems are complex, where serious problems are solved, often critically important for human health or his property, to a world where programs live for a long time and must adapt to changes.
Previous experience This book does not assume the presence of previous experience and programming knowledge.
If you have already written programs, this experience will help you master the concepts faster.
You will be familiar with some of the ideas, but you should be prepared for the fact that at times you will be surprised: professional study is different from the general user experience.
For example, it may seem to you that I am explaining a seemingly simple thing in vain.
If so, then soon, I hope, you will find that not everything is as simple as it seems at first glance.
For a mathematician, addition is a much more subtle thing than for an accountant.
You can and should take full advantage of what you already know, but be prepared that the techniques used earlier will not correspond to the principles of software engineering studied here.
Learning programming requires a lot of effort: every piece, every aspect that helps to get closer to understanding is useful.
In this book, the discussion is based, as will be explained below, on the Traffic software system that supports training.
If you are familiar with programming, you can discover some of the system's features yourself, in addition to official tasks.
Do it without hesitation: they learn programming by examples, studying existing programs and creating their own versions.
You may have to make some assumptions about the elements of Traffic, which are based on the techniques and constructions of the language that you have not yet learned, but even then the existing experience can help you move faster.
On the other hand, if you have no programming experience, this is also not a big deal.
Perhaps the progress at first will not be fast, you will have to study all the materials more carefully and perform all the exercises.
All this is also true in relation to mathematics.
Although this book does not include much real mathematics, you will feel more comfortable if you have mathematical thinking and logical inference skills.
This is just as useful as programming experience, and compensates for the head start that your fellow students have, positioning themselves as if they have been programming since they had baby teeth.
Programming, like other areas of computer science, is a mixture of engineering and science.
Success requires both the possession of practical techniques (the" hacker " side of the matter in the positive sense of the word), useful in technologically oriented work, and the ability to build abstract logical conclusions required in mathematics and other sciences.
Programming experience helps in achieving the first goal, mathematical thinking — the second.
Use your strengths, use this book to eliminate your initial backlog.
Next >>
Lecture 1: 123456 | / Lecture 2 >
Questions and answers
questions: 9
Vladislav Nagorny
Tell me, please, do you plan to resume higher education programs?
If so, are there any approximate deadlines?
Thanks!
to answer
Larisa Parfenova
1) Is it possible to get a second higher education "Software Engineering" externally ?
2) Do you employ graduates?
3) Is it possible to enroll in graduate school with your diploma?
to answer
Students
total: 2824 | online: 4
Sergey Ivanov
Russia
offer friendship
Regimantas Klimasauskas
Lithuania, Vilnius
offer friendship
&lt;a href="http://ad.adriver.ru/cgi bin/click.cgi?sid=176762&amp;bn=1&amp;bt=22&amp;pz=0&amp;rnd=2062472038" target=_blank&gt; &lt;img src="http://ad.adriver.ru/cgi bin/rle.cgi?sid=176762&amp;bn=1&amp;bt=22&amp;pz=0&amp;rnd=2062472038" alt="-AdRiver-" border=0 width=240 height=400&gt;&lt;/a&gt;
© NOU "INTUIT", 2003-2016
User Agreement | Privacy Policy | Advertising on the site | Write to us
Phone: +7 (499) 253-9312, fax: +7 (499) 253-9310, e mail: info@intuit.ru, ICQ: Intuit.ru (632-332-736), Skype: Intuit.ru
