.Open 02 Introduction to Computer etc . Previous .See ./01.html .Open Prepare Chapter 1 Most of the material in this chapter should be familiar from your previous experience programming computers. It is the kind of information that we will use rather than appearing in quizzes. . 1.1 Introduction . 1.2 What is a computer You should know this already! . 1.3 Computer Organization Here is a picture of a computer: .Box A computer is like a rather stupid person (CPU) sitting at a desk with an in tray(Input), calculator(ALU), out tray (Output), filing cabinet (Secondary storage), and a sheet of paper where he/she can write down data (Memory unit). Part of the desk contains the program that the person follows, step by step, copying data from the in tray, putting numbers into the calculator, putting data on paper and throwing it in the out tray, ... The person can open a file in the file cabinet and get data from it onto the desk top. The person can open a file and record data in it before closing it. The person clears the desk if the power is cut... .Close.Box Any questions? . What is the difference between input and output .Key Input passes from the user into the computer. The simplest input is from the keyboard into a terminal window. The user types a line and the computer is given the line as a string of characters. .Key Output is sent from the computer to the user. The simplest output method is for the computer to send a line of data to a "terminal window" which is then displayed to the user. In this class you shouldn't be forced to go beyond terminal input and output like this. . 1.4 Early Operating Systems Benn there, done that, lost the tee shirt. . 1.5 Personal Distributed and Client/Server How we currently work. . 1.6 Then Internet and WWW . 1.7 Web 2.0 I'm Richard John Botting on FaceBook but you don't have to `friend` me! . 1.8 Languages We won't get into machine code and assemblers. But the Computer Science and Engineering Department offers 300-level course on them if you are interested. .Key CSCI320 .See ../cs320/ is a course that covers all known (and imagined) high-level languages . 1.9 History of C and C++ . Will C++ programs move from Windows to Linux easily As long as the program only uses the standard library it should be OK. If you use any non-standard headers in your code then some rewriting will be needed. . 1.10 C++ Standard Library . 1.11 History of Java See $CSCI320 . Why is Java prefered over C++ for the web Security. Java is designed to not be able to damage the client computer. There is no way for a user to download and run C++ safely. . 1.12 FORTRAN COBOL Pascal and Ada See $CSCI320 . 1.13 BASIC to .NET CSCI125 and $CSCI320 .Open Why so many languages Because humans are creative and love coming up with new ideas and making them work. Because different problem types need different languages to express solutions. Because different companies can make money by selling you their new language... .Close . Can a Computer read any language Yes -- but only if you give it a compiler or interpreter for that language. And most compilers and interpreters are writtten in C or C++). . Should I invest in Linux Only if you are doing a computer major and become a member of the CSE club. They can help you instal a free Linux on your machine. Other majors should only try this if they enjoy solving geeky orblems.... and if so you are one of us.... . 1.14 Object Technology . 1.15 Typical C++ Development Environment This is the way it is. We will be using Linux and KDE in the Labs. I'll show you some tools that make it easier. I expect your projects to work on the same systems. You can use the Visual C++ IDE on the CD that was in your book if you wish -- but I won't be able or willing to help with it. . 1.16 This Book I have a copy of the draft standard .See ../c++std/ and a set of pages describing C++ .See ../samples/c++/ in case you want more information. . 1.17 Test-driving a C++ Application You can try the examples in Figure 1.2 thru to 1.8 on your on Windows machine -- if you have the set it up. This is completely voluntary and at your own risk. I avoid developing software on either my iMac (at home) or my Windows laptop. Some bugs can reduce your productivity badly:-( In our laboratories figures 1.9 thru to 1.16 are close to how our Linux systems work. However in See ./lab02/ you will get a local copy of the `GuessNumber.cpp` program and I will show you some simpler tools that I wrote to reduce the amount of typing. . 1.18 Software Technologies What we cover in CSci201 will help with all these technologies! I will be taking an agile approach to the projects in this class. . 1.19 Optional -- Game Programming with the Ogre Library More advanced than this course. . 1.20 Optional -- Future C++ Libraries More advanced than this course. . 1.21 Case Study and Software Engineering . 1.22 Wrap-up . 1.23 Optional -- Web Resources .Close Prepare Chapter 1 . Deliver -- A question on the reading above plus Project vision . Exercises -- To Be Announced Probably based on Exercises 1.4 thru to 1.11 . Next -- First C++ Programs .See ./03.html .Close 02 Introduction to Computer etc