Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ......
Transcript of Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ......
![Page 1: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/1.jpg)
Programming 1
Lecture 1COP 3014 Spring 2018
January 8, 2018
![Page 2: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/2.jpg)
We have technology!
![Page 3: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/3.jpg)
Main Components of a computer
I CPU - Central Processing Unit: The “brain” of the computer.I ISA - Instruction Set Architecture: the specific set of low-level
instructions available to a CPU. Differs for various CPU types(Intel Pentium, Mac G4, etc).
I ALU - Arithmetic & Logic Unit responsible for performingarithmetic calculations, as well as logical operations(comparisons for equality, inequality, for instance).
I Main Memory (RAM - Random Access Memory).I storage close to CPUI Faster to access than hard diskI stores executing programs and data being currently worked on
I Secondary MemoryI SSD, hard disk, DVD, etc.
![Page 4: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/4.jpg)
Main Components of a computer
I Input devicesI mouse, keyboard, scanner, network card, etc.
I Output devicesI screen/console, printer, network card, etc.
I Operating SystemI Examples: Mac OS, Windows 10, LinuxI Controls computer operationsI Manages allocation of resources for currently running
applications
![Page 5: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/5.jpg)
Memory Concepts
I bit: a binary digitI Stores the value 0 or 1I Smallest unit of storage in a computer
I byte: 8 bitsI Smallest addressable unit of storage in a computerI Storage units (variables) in a program are 1 or more bytesI Each byte in memory has an address (a number that identifies
the location)
![Page 6: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/6.jpg)
Programming, and Programming Languages
Program - a set of instructions for a computer to execute
Evolution of Programming languagesI Machine Language
I Based on machine’s core instruction setI Needed by computer, hard for humans to read (1’s and 0’s)I Example: 1110110101010110001101010
![Page 7: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/7.jpg)
Programming, and Programming Languages
I Assembly LanguageI translation of machine instructions to symbols, slightly easier
for humans to readI Example: ADD $R1, $R2, $R3
![Page 8: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/8.jpg)
Programming, and Programming Languages
I High-level procedural languagesI Abstraction of concepts into more human-readable termsI Closer to ”natural language” (i.e. what we speak)I Easy to write and design, but must be translated for computerI Examples include C, Pascal, Fortran
I Object-oriented languagesI Abstraction taken farther than procedural languagesI Objects model real-world objects, not only storing data
(attributes), but having inherent behaviors (operations,functions)
I Easier to design and write good, portable, maintainable codeI Examples include Smalltalk, C++, Java
![Page 9: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/9.jpg)
Code Translation
Bridging the gap between high-level code and machine code
I Interpreted languages – source code is directly run on aninterpreter, a program that runs the code statements
I Compiled LanguagesI A compiler program translates source code (what the
programmer writes) to machine language (object code)I A linker program puts various object code files together into an
executable program (or other target type, like a DLL)I C and C++ are compiled languages
![Page 10: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/10.jpg)
Software Development
Involves more than just writing code
![Page 11: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/11.jpg)
Software Development
I Analysis and problem definition
I Design - includes design of program or system structure,algorithms, user-interfaces, and more
I Implementation (coding)
I Testing - can be done during design, during implementation,and after implementation
I Maintenance - usually the major cost of a software system.Not part of ”development”, but definitely part of the softwarelife cycle
![Page 12: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/12.jpg)
Programming is about Problem Solving
![Page 13: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/13.jpg)
Programming is about Problem Solving
I Algorithm - a finite sequence of steps to perform a specifictask
I To solve a problem, you have to come up with the necessarystep-by-step process before you can code it
I This is often the trickiest part of programming
I Some useful tools and techniques for formulating an algorithm
I Top-down Refinement: Decomposing a task into smaller andsimpler steps, then breaking down each step into smaller steps,etc
I Pseudocode: Writing algorithms informally in a mixture ofnatural language and general types of code statements
I Flowcharting: If you can visualize it, it’s often easier to followand understand!
![Page 14: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/14.jpg)
Programming is about Problem Solving
I Testing - algorithms must also be tested!I Does it do what is required?I Does it handle all possible situations?
I Syntax vs. SemanticsI Syntax – the grammar of a language.
A syntax error: ”I is a programmer.”I Semantics – the meaning of language constructs
Correct syntax, but a semantic error: ”The headphones ate thetree.”
![Page 15: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/15.jpg)
Basic Creation and Execution of a C++ program
I Create source code with a text editor, store to disk.I Source code is just a plain text file, usually given a filename
extension to identify the programming language (like .c for C,or .cpp for C++)
I Preprocessor – Part of compiler process, performs anypre-processing tasks on source code.
I Compilation – syntax checking, creation of object code.I Object code is the machine code translation of the source code.
I Linking – Final stage of the creation of an executableprogram. Linking of object code files together with anynecessary libraries (also already compiled).
I Execution of programI Program loaded into memory, usually RAMI CPU executes code instructions
![Page 16: Programming 1 - cs.fsu.edujayarama/progsp18/Slides/Intro.pdf · Programming 1 Lecture 1 ... Programming is about Problem Solving. Programming is about Problem Solving ... 1/8/2018](https://reader031.fdocuments.us/reader031/viewer/2022020214/5a9e3a7a7f8b9aee4a8b97a4/html5/thumbnails/16.jpg)
Software Required for the Class
I The recommended software is JetBrains CLiomI You can find it at https://www.jetbrains.com/clion/buy.I Under the “Discounted and Complementary Licenses” tab,
choose “For Students and Teachers” and apply for a freelicense for and All Products Pack.
I You will get an email from JetBrains. Follow along with theinstructions and you will be asked to create a JetBrainsaccount. Upon doing that, you will get a key.
I You can then Download and Install CLion. Please follow theHowToCLion document on the Software page of the coursewebsite for instructions on installing and using the software.
I You can also use XCode, Visual Studio, etc. However, if youdo so, please keep in mind that the TA’s will use CLion tograde.
I You can also create an account on the CS departmentprogramming servers, and use a text editor and the g++compiler to run your code.