130 likes | 234 Views
This course explores the fundamentals of software in computer science, encompassing the underlying principles of machine language, high-level programming, and the architecture of operating systems. It examines the fetch/execute cycle, instruction sets, and the importance of software applications in meeting specific needs. Students will learn about word processing, desktop publishing, and the crucial differences between web and paper documents. The course also highlights the evolution of software and its impact on industries, emphasizing the relationship between document formatting and content management.
E N D
Software COSC-100 (Elements of Computer Science) Prof. Juola
Ghosts in the Machine • Software is the part you can’t kick – it’s the instructions that run the computer. • Structured as a machine-specific algorithmic set of basic instructions, written in so-called “machine language” and implemented as electronic circuits.
Fetch/Execute cycle • Basic operation : load an instruction from memory, look up what it does, and then do it. Repeat as needed • “Instruction set” defines available ops. • Selected examples (JVM) • 21 iload (load integer from memory to CPU) • 98 fadd (add two decimal numbers) • 153 ifeq (check if a number equals zero)
Machine language • 23, 91, 64, 107 does make sense to us, but it does to a computer • “High level languages” bridge gap between human concepts and basic machine operations • Programs (compilers and interpreters) convert high-level languages • An example of “software applications”
Software Applications • “What do you want to do”? • Developed to fill particular need/want • Word processing • Spreadsheets • Games/Graphics • Networking/Communication • … and anything else you can think of
Operating systems • The other “kind” of computer program • Program-control-program (like TRON) • Runs new programs, cleans up after old ones, controls hardware/peripherals, &c. • Examples • Windows (all flavors), OS X, Linux, MS-DOS, CP/M, UNICOS
WIMP • Windows, Icons, Menus, Pointers • Originally developed by Xerox, licensed by Apple, stolen by Microsoft • The most popular method of OS control • Advantages are obvious • Disadvantages are subtle, but real. Difficult to control in detail, hence CLI’s still exist
Word Processing • Basic, but revolutionary, application. • Extends power and flexibility of typewriter using software-only documents • Features like search/replace, automatic reformatting, spelling check, etc. all possible. • Has revolutionized publishing industry
Not new concept • TeX/LaTeX developed by Knuth to solve professional typesetting problem • Wanted to write book, too expensive to typeset conventionally • LaTeX defines very flexible document description language, appropriate for very difficult (math or symbol heavy) documents • Written in late 70s using CLI interface
Microsoft Word • WIMP-based document creation process • Merges document creation and document formatting (WYSIWYG) • Fundamentals very easy to learn (enter text, cut/paste, toolbar for formatting) • Keeps software-based flexibility, ever-expanding feature set
Advance features • Automatic formatting/references • Outliners • Databases (dictionary, thesaurus) • Spelling/grammar/style checking • Mail merge – form letter generation
Desktop publishing • New industry created. Possible to do “professional” publishing at home, including layout, clip art, font modification • Still paper-based, but shifting to Web based. • (Differences between Web documents and paper documents? Differences between MS-Word and MS-PowerPoint?)
Problems • Same control problems as with PowerPoint • Document format should support, not drive, document content • Plan/outline before you write • Use appropriate fonts/displays • Style sheets and so forth to limit excesses • Stay on message