Programmer: A person who writes instructions for a computer Code: Instructions in a computer program. Program: A set of instructions written for a computer to execute. Command: Instructions given to a computer for a task. Computer programmers: They're investors., They're fluent, They're visionaries, They're gatekeepers, They're researchers What Do Programmers Do?: Programmers write code that tells computers what commands to follow. In essence, they solve problems with their code Software: Programs written for computers to perform specific tasks Interface: Allows communication between humans and computers What jobs can programmers do?: Healthcare, Education, Military, Technology, Entertainment, Agriculture, Construction.
Today: Gaming, hacking, and developing code are part of our everyday world, Programmers today work in every industry imaginable. There are thousands of different programming languages today, all developed to meet different needs meaning a higher demand for smarter and more complex programs. 1981: MS-DOS was released, allowing people around the world to use the early operating system for their personal computers. Windows hadn’t been created yet, files on a PC in the 1980s meant typing in commands to direct the computer to the correct location. Programs were written so end users could type simple commands to open, close, and run applications. A computer programmer’s job expanded from developing specialized programs for specific purposes to building software for everyday users. 1968-1969: Niklaus Wirth designed the famous programming language, Pascal, The development of Pascal pushed programming into a new era—past general calculations and into a more sophisticated and structured approach, As programming became more sophisticated, the demand for programmers increased. More languages meant more opportunities for programmers to create new technology. 1957: John Backus developed the first programming language at IBM that is still in use today: Fortran. The language has evolved to perform highly advanced calculations and it is both fast and effective at completing tasks. As computers got more advanced, so did programming. Programmers developed new languages so they could translate commands into binary, or machine code, so computers could understand. 1946: The Electronic Numerical Integrator and Computer (ENIAC), designed for military use, was the first electric, general-purpose computer. It had over 17,000 vacuum tubes, and its creators nicknamed the ENIAC the “Giant Brain. Early on, a programmer’s job involved physically turning gears, flipping switches, or attaching wires on huge machines for each new task. It was labor-intensive and prone to errors. 1842: Ada Lovelace wrote the first computer program. Dubbed the “Enchantress of Numbers” by Charles Babbage, the inventor of the computer, she is known as the world’s first computer programmer. In the beginning, programming mostly existed on paper. The reality of programming was realized when Ada wrote an algorithm to compute numbers.
Algorithm: A set of precise, logical instructions used to solve a problem Bernoulli: A sequence of signed rational numbers that can be defined by the exponential generating function. Programming languages: A language used to write instructions that can be executed by a computer. Machine code: Aset of instructions composed of 1s and 0s the computer can execute without any translation low-level languages- Description: Considered less readable by humans because they are written in the computer’s native machine code. Uses: To write code/instructions/programs that control the computer’s hardware. Pros: More control over the hardware and executes tasks more quickly. Cons: Written in machine code, which is challenging for humans to understand. Limits: Programs are written for specific computers and will only work on that one type of computer. high-level languages- Description: Much closer to human languages than low-level languages, making it easier for programmers to learn and use. Uses: To write programs for just about anything (operating systems, complicated scientific calculations, general applications such as a word processor). Pros: More user-friendly and can be used on different kinds of hardware. Cons: When run, programs tend to be slower than ones written in low-level languages. Limits: Must be translated into machine code (this is done by interpreting and compiling). Source code: Program code is written in a high-level language before being translated into machine code.
Interpreter language quick facts: An interpreter translates one line of code and then executes it before moving to the next line. To run a program, interpreter software is required For others to run the program, they must have the original source code. Programs written with interpreted languages tend to run more slowly than programs of compiled languages. Compiler language quick facts: A compiler translates all lines of code together and then executes them at once A compiled language produces translated to machine code that can be saved and run later. The compiled program can be shared with others while keeping the source code private. The compiled code is ready to be executed, also known as run. Compiled programs tend to run faster than programs of interpreted languages.
COMPUTER LANGUAGE- FORTRAN QUICK FACTS (Formula Translation): Designed in 1954 by IBM Mainly used for calculations on large computers Still used in weather forecasting, but for the most part, obsolete Compiled Language-High-level language PYTHON QUICK FACTS: General–purpose programming language developed in 1991 by Guido Von Rossum Often used as a first language to learn to program Used for web applications, software development Used by – Google, Yahoo, and YouTube Interpreted Language-High-level language JAVA QUICK FACTS: A popular programming language named for the amount of coffee the programmers drank while developing the language in 1995. Used in web applications, network programming, Android devices, etc. Compiled Language-High-level language C: QUICK FACTS: The name for the 1972 language came from an earlier language called B It is the second–most popular language and is used in computer game development, cross-platform programming, and more Compiled Language-High-level language ASSEMBLY LANGUAGE QUICK FACTS: Uses letters and numbers to represent machine language Low-level language MACHINE LANGUAGE QUICK FACTS: This language uses a series of 1s and 0s to communicate with the computer. It can be hard for humans to understand and write. Low-level language
GUIDO VAN ROSSUM: This Dutch programmer wrote Python As a fan of the British comedian group, Monty Python, Rossum aptly named his program after them GRACE HOPPER: Grace is credited with popularizing the term "debugging" as well as "compiler" (she also created the first compiler). Print: means "display on the screen." The print() function in Python is used anytime you want your program to display something to the screen String: A non-numeric data type that is a sequence of letters numbers, or symbols Alphanumeric info: Any combination of letters, numbers, or symbols String literal: characters included within opening and closing quotation marks Reminder: Always be sure to type print followed by the parentheses()
Programming Problems- Syntax errors: occurs when you’ve broken a programming language rule Programming languages have rules for their structure, too. In Python, the quotation marks and parentheses are required syntax. Runtime errors: happen when you run the program this means there's a problem with a value, and the computer can't finish doing what you requested Logic errors/Semantic errors: Logical errors mean the program ran, but the results were not as expected. You have to notice these problems on your own by checking to see what happens when you run the program Troubleshooting Tips: Check your spelling and capitalization – Python is case sensitive! Check your punctuation – Is there a quote or parenthesis missing? Check your spacing – Python expects blocks of code to be spaced properly. Look out for those indentations Check before and after – Sometimes the error is hiding in the line above or below. Talk it out – Read the code out loud to yourself. Really! It should read like a (really weird) story. Once you say it out loud, your ears may hear the bug.
Python's naming rules for variables- Do- Begin variable names with a letter or underscore.(Example: movie, movieTitle, _movieTitle) After the first letter, the variable name may contain additional letters or digits, 0 to 9.(Example: movieTitle1) Don't- Variable names may not be any of Python’s keywords. Variable names may not contain spaces. (Example: movie Title) Variable names may not contain punctuation symbols. (Example: movieTitle!) Good programmer's practices- Camelcase: A style convention for naming variables, functions, and methods in which the first letter of a name appears in lowercase and the first letters of any subsequent words or phrases are capitalized Meaningful names Reasonable length Use nouns.
the Post Mortem Review (PMR): a short, written statement that evaluates how the project went, reflecting on what went well and how the program could be improved. What was the purpose of your program? How could your program be useful in the real world? What is a problem you ran into, and how did you fix it? Describe one thing you would do differently the next time you write a program. String value: The characters that make up a string Variable: a set of characters in a mathematical equation or programming statement that value can be changed as needed Assignment statement: A statement that assigns a value to a variable the value is the right of equal sign(=) and the variable is to the left
Pseudocode: An outline of your code that goes through the steps individually in an easy to understand human language Tips for Writing Good Pseudocode- Use it to plan out your program, start to finish Outline your steps as clearly as possible Use everyday words, not Python code Use short phrases to describe the steps (ex. Input firstName, lastName) All pseudo code will look slightly different Make sure to review and make changes as necessary
Concatenation: Combining two or more string values to form a single string of characters, use the plus symbol (+) to make this happen (word1 + word2) Index position: The specific position of a character in a string or an element in a list the first index is zero Slice: a portion of a string If you put two index values in square brackets, you can take a slice out of a string. Interactive: Programs that prompt the user for a response called a Prompt: A statement or question used to communicate to the user the input value to enter Chatbot: A computer program that simulates a conversation between a person and a computer
Non-numeric data: A string of characters that is a combination of letters, numbers or symbols and cannot be used in calculations Numeric data: A number that can be used in calculations int: A way to alert python you're using "integers." These are all positive and negative whole numbers, including 0 (integers don't take up that much room.) Float: A way to alert Python that you're using a floating point These are numbers that contain a decimal point. They can be positive or negative, and they can also include 0.0. ( That means they end up taking up a lot of memory) Why Does This Matter?- Memory, Precision, and Arithmetic (=): In Python, the equal sign (=) means you use the equal sign to assign a value to a variable Order of operations: The mathematical order of operations means you work through problems in this order: parentheses, exponents, multiplication/division, and addition/subtraction str(): A value composed of letters or numbers that are not meant to perform a math function.(The longer the string, the more memory it takes up.) Math Module: The Python Math Module is tons of math functions. sqrt(): Square root (sqrt(num)) pow(): Power of (pow(num, exp)) Arguments: A value provided when a function is called
DONALD KNUTH: Author of The Art of Computer Programming, programmer, mathematician Software development lifecycle(SDLC): This is also sometimes called the application development lifecycle basically the fully planned out life of the project, from early ideas and planning to execution and delivery. The Software Development Life Cycle- Planning & Analysis-The planning and analysis step kicks off every SLDC. The team defines project goals and it creates a requirement that outlines what is needed to build the software Analysis includes looking into budgets, timeline, resources, and existing technology. Design- programmers use this step to write their pseudo-code he helps them think through their entire process and make sure their logic is sound. This is also where they'll provide mock-ups of what the software will look like, and how it should work Coding- This is where the programmers actually write code Once design documents are received, the programmer breaks the work up into chunks and begins writing the program. Testing- There's a test plan. This documents what and when something was tested, how it was resolved, and who tested it. Testing promptly exterminates all identifiable bugs. During this step, programmers report all bugs pronto and fix them to make sure the software runs as expected. Maintenance- This stage is what makes this process truly a "cycle." It involves continued code maintenance (checking for missed bugs), making design and functionality improvements based on user feedback, implementation of new requirements, and user support. The team documents all maintenance-related work to ensure the software is operating at optimum levels.
WATERFALL- Programming task details: Project teams work on one step at a time. Teams do not move to the next step until the previous step is completed and approved. Extensive documentation is required to keep everybody on track. This documentation allows teams to keep control over what version of the project they are working on, what changes are needed, or what step of the SDLC they are in. Benefits: The process is clear from beginning to end. Drawbacks: If a change is needed from a previous step, the project process can get seriously delayed. AGILE- Programming task details: Project teams do smaller portions of the entire project in small sprints. Teams can interact to handle different steps simultaneously if needed. Documentation is still required to keep everybody on track. This documentation allows teams to keep control over what version of the project they are working on and how the project has changed along the way. Benefits: As an approach to rapid development, the focus is on development rather than planning, enabling teams to start work more quickly. Drawbacks: The process may become confusing at times when people jump back and forth among steps in the SDLC. Rapid development: Rapid development refers to an approach that puts a large emphasis on development than planning, allowing for the project to evolve and adapt as it's built Bugs: aren't common, Unfortunately, of course, it happens and programmers have to correct any glitches that occur in their software. Enhancements: the largest portion of maintenance work. It seems we're never happy with our software We want it to be better, and programmers have to come up with new ways to meet our demands.
Version control: Keeping good organization throughout different versions of software development by keeping track of both the old and the new versions it's easier to fix problems that happen during updates. Change management: Keeping documentation about changes that are needed and made throughout the development life cycle by keeping strong notes about what changes are needed for the future, along with what has implemented already. this can be important when reviewing what it spends time working on.