Computing and Programming

Similar documents
Computing and Programming

Computing and Programming

Computing and Programming. Notes for CSC The Beauty and Joy of Computing The University of North Carolina at Greensboro

Getting to places from my house...

Organizing Data The Power of Structure...

The Internet Part 1: Local Area Network Communication

CS 1124 Media Computation. Steve Harrison Lecture 1.2 (August 27, 2008)

Data Representation. Interpreting bits to give them meaning. Part 1: Numbers, Bases, and Binary

Organizing Data. Reminders. A Flood of Data. The Power of Structure...

Chapter 1: Introduction to Computer Science and Media Computation

Unit 10: Data Structures CS 101, Fall 2018

Mastering the Environment WVU ecampus

Algorithms Part 2: Measuring Time

Data Representation. Reminders. Data is more than just numbers! Interpreting bits to give them meaning. Part 3: Media - Text and Pictures

Getting Started with Blackboard A Guide for Students

CSC236 Week 4. Larry Zhang

Scheduling WebEx Meetings

Data Representation. Class Reminders. From Last Time... Interpreting bits to give them meaning. Part 2: Hexadecimal and Practical Issues

Data Representation. Interpreting bits to give them meaning. Part 2: Hexadecimal and Practical Issues

Scheduling WebEx Meetings

Getting Started with Ensemble Video

Today. An Animated Introduction to Programming. Prerequisites. Computer programming

1. Click the Course Tools menu on the Control Panel to expand, and select the Announcements link.

Spring CS Homework 3 p. 1. CS Homework 3

Administration Computers Software Algorithms Programming Languages

CALCULUS LABORATORY ACTIVITY: Numerical Integration, Part 1

Visual Guide to Online Campus

Scientific Computing for Physical Systems. Spring semester, 2018

Instructor Quick Guide for Springboard 10.6

How to stay connected. Stay connected with DIIT

Table of Laplace Transforms

Substitute Bulletin WELCOME BACK ONLINE SUBSTITUTE PAGE

Instructional Technology & Technology Enhancement Centers -itec Grade Center Tutorial for Faculty

CSC369 Lecture 5. Larry Zhang, October 19,2015

Moodle Student Manual

Power up your Productivity Potential with Alison Cruess

Introduction to Blackboard

This handbook contains directions on using tools and resources in WebAccess at CSM.

CSI Lab 02. Tuesday, January 21st

n! = 1 * 2 * 3 * 4 * * (n-1) * n

CLOVIS WEST DIRECTIVE STUDIES P.E INFORMATION SHEET

CS 051 Homework Laboratory #2

About this Course. Blackboard Student Orientation Course. About the Portal. Logging In. About the Course Layout. Showing the Course Menu

Reading and Posting in Discussion Board

Student Guide G. That s it. Simple for you. Powerful for your future. Technical Support

How to get the most out of the e-sword free software

Have the students look at the editor on their computers. Refer to overhead projector as necessary.

Math 4242 Polynomial Time algorithms, IndependentSet problem

AP Computer Science Summer Work Mrs. Kaelin

How To Use My Alternative High

Submitting Assignments

Excel Intermediate

Step 1. Final Grade Roster Submission. IT Department Printed on 05/21/2012 Page 1. Steps to Submit Grades. Step 1. Step 2. Step 3

The Beauty and Joy of Computing 1 Lab Exercise 1: Introduction to Scratch/BYOB - Animations and Communication

CSC 101 Spring 2010 Lab #8 Report Gradesheet

Collaborate Ultra in D2L Brightspace Guide for Moderating and Presenting

January 2013 June 2013

Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro.

Moodle Student Manual

Canvas Workshop: Getting Started Help Guide

Making Money with Hubpages CA$HING IN WITH ARTICLE WRITING. Benjamin King

Data Representation. Reminders. Sound What is sound? Interpreting bits to give them meaning. Part 4: Media - Sound, Video, Compression

Seema Sirpal Delhi University Computer Centre

Microsoft Access 2016

Microsoft Access 2016

Laboratory. Low-Level. Languages. Objective. References. Study simple machine language and assembly language programs.

A Guide to Condor. Joe Antognini. October 25, Condor is on Our Network What is an Our Network?

Lab 1: Space Invaders. The Introduction

CS 150 Introduction to Computer Science 1

North Carolina A&T State University Blackboard Support

Computers and programming languages introduction

FACULTY GUIDE TO USING VOICETHREAD IN BLACKBOARD

Staff Directory & Online Classroom: A Picture Book

Powered by. How did trying to give apples away for free change the world?

Algorithms. Definition. Algorithms we've seen... Part 1: The Basics

IGCSE ICT Section 16 Presentation Authoring

HOW TO. In this section, you will find. miscellaneous handouts that explain. HOW TO do various things.

Title of Resource Introduction to SPSS 22.0: Assignment and Grading Rubric Kimberly A. Barchard. Author(s)

ITSE 2313 Web Authoring Tools ORIENTATION Summer 2009 CRN 89360

= 3 + (5*4) + (1/2)*(4/2)^2.

Lecture 1: Overview

13: MOODLE WIKIS. Oklahoma Department of CareerTech WELCOME TO THE MOODLE WIKIS TUTORIAL! In this tutorial, you will learn:

This is Lab Worksheet 7 - not an Assignment

Unit 2: Data Storage CS 101, Fall 2018

VoiceThread Training

INVIGILATOR GUIDE Computer Based Exams

Announcements. 1. Forms to return today after class:

Using Microsoft Word. Tables

ENV Laboratory 2: Graphing

Lab 1: Simon. The Introduction

CHAPTER 1: INTEGERS. Image from CHAPTER 1 CONTENTS

1 Introduction to Using Excel Spreadsheets

Module 4: Communication

EXPENSE FORM GUIDE. (Please read CTENC s Expense Reimbursement Policy, available at for more detail.

CS 150 Introduction to Computer Science 1. August 31, 2009

C02: Overview of Software Development and Java

The Beauty and Joy of Computing 1 Lab Exercise 9: Problem self-similarity and recursion - Python version

Exercise: Editing XML in oxygen

Moodle Morsels from Sandy & Inkie. b. Click (Log in) on the upper right c. You will use your stpsb login, which is how you login to a computer

CSC 101: Lab #8 Digital Video Lab due date: 5:00pm, day after lab session

Transcription:

Computing and Programming Notes for CSC 100 - The Beauty and Joy of Computing The University of North Carolina at Greensboro Reminders: What you should be doing! Before Lab on Friday: Review handout on pair programming tips (will get today) Watch video on pair programming (link on class web site) Read (and think about!) Pre-Lab reading for Lab 2 Warning: Parts of this lab are tricky - be prepared before lab! Remember: No class on Monday (Labor Day) Before Wednesday at 10:00am: Participate in on-line discussion of Blown-to-Bits, Chapter 1 Question to Start the Day... Context: Computation takes place as a sequence of steps (can consider a 2 GHz computer to be taking 2 billion steps per second). Question: What can a computer do in a single step? Or Which of the following can be done in a step? 1. Store the number 123 in a variable 2. Compute the sum of a variable plus 5 3. Compute the square root of a number 4. Compute the GCD of two numbers 5. Add together two 1000-digit numbers 6. Find the highest test score in a class of 10 students 7. Draw Alonzo on the screen 8. Find a collection of bank transactions that add up to a target value

A Basic Computational Step Super-simplified CPU (Central Processing Unit): Things to know: Data transferred around on wires (dark black arrows in diagram) - fixed number of wires limits how big (# digits) a number can be ALU is Arithmetic Logic Unit - this actually does the computations: two inputs, one output So in general: A step is an operation on two values from a limited range of numbers. Can t operate on big numbers or more than two things in a single step. Diagram from Wikimedia Commons Exercise: You identify the steps Problem: Find the largest value in this list of numbers 338 773 655 72 882 80 533 278 626 689 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] Numbers in [brackets] are positions - use to refer to values (example: value [4]) What you re allowed to do: Set aside storage to remember values or positions (these are variables) Access a value based on its position Do any operation with one or two values (arithmetic, store in a variable, ) Make decisions based on comparing two values Control your program (repeating operations, etc.) To do: 1. Decide on a general strategy (algorithm) 2. Go around the room executing: each person to identify the next step to take A few more words about steps Steps are very simplistic and not very powerful But do a few billion every second, and you can make some very complex, smart-looking behavior! Note: While it works for computers, doing lots of stupid things at high speed is not the smart-looking behavior that you should aspire to as a college student. If we had to specify every single step, programmers would not be very productive. Goal: Make programming easier!

How Programming Languages Help How you want to describe an animation How the computer must do it Move Alonzo 10 spaces to the right BYOB lets you do this instead of this [ High Level vs Low Level ] Find what images are behind Alonzo For each row of the background For each column of the background Redraw the background pixel Add 10 to Alonzo s x coordinate For each row of Alonzo For each column of Alonzo Draw the pixel of Alonzo The goals of a good programming language: a) is natural and understandable to people b) can be efficiently (and unambiguously) turned into actual computer code Different Languages, Different Styles Basic structure of many languages is similar Google Blockly lets you look at the same program in different languages: Note: Don t get the wrong idea - some languages are very different! See http://blockly-demo.appspot.com/static/apps/code/index.html Some Quotes These are by Alan Perlis (1922-1990): An early computer scientist and first winner of the Turing Award in 1966. A programming language is low level when its programs require attention to the irrelevant. A language that doesn't affect the way you think about programming, is not worth knowing. There will always be things we wish to say in our programs that in all known languages can only be said poorly. And since programmers are never satisfied with the programming language they are using, one more quote - from Bjarne Stroustrup (inventor of C++): There are only two kinds of programming languages: those people always bitch about and those nobody uses.

Some Quotes These are by Alan Perlis (1922-1990): An early computer scientist and first winner of the Turing Award in 1966. A programming language The Turing is low level Award when is its the programs top award require given in attention the to the irrelevant. field of Computer Science - sometimes referred to A language that doesn't as affect the Nobel the way Prize you of think Computer about Science. programming, is not worth knowing. Named after Alan Turing (1912-1954), one of the There will always be things most influential we wish to founders say in our of the programs field of that Computer in all known languages can Science. only be said poorly. Designed computers in WWII to break German And since programmers are codes never satisfied with the programming language they are using, one General more quote model - of from computers Bjarne named Stroustrup after him ( Turing machines ) (inventor of C++): Also stated a test for Artificial Intelligence (the There are only two kinds of Turing programming Test ) languages: those people always bitch about and those nobody uses. Software Engineering How to control the complex process of creating software Traditional software lifecycle has well defined phases that feed into each other one-way - called the Waterfall Model Requirements definition and analysis System design Implementation In reality it never really works this way - early stages change even when working on later stages. Testing Operations and maintenance Software Engineering How to control the complex process of creating software Traditional software lifecycle has well defined phases that feed into each other one-way - called the Waterfall Model Requirements definition and analysis System design Implementation Recent trend: Agile Development Among other things, testing done concurrently with development. Idea: Faster error identification and correction - higher quality software? In reality it never really works this way - early stages change even when working on later stages. Testing Operations and maintenance

Peer Reviews and Pair Programming Two ideas for software development... Peer Reviews: At regular intervals, a developer presents and explains their code to co-workers, who critically review code. Similar to a writer going over drafts with an editor. Pair Programming: Development is actually a collaborative activity - pushes review so far back that it is simultaneous with development! Pair Programming for Learning From August 2013 Communications of the ACM: Plug: Don t forget our UNCG ACM chapter! Surprise! We don t do pair programming because we like to torture you and stick you with terrible partners. We do it because it helps people learn! Pair Programming: What to do Really simple concept: Two students, one computer Roles: Driver and Navigator Driver has keyboard/mouse, but navigator describes how to build solution Both students always active Not Driver and Sleepy passenger Switch roles regularly At least once per lab activity, if not more often Be open and respectful If you don t like a proposed solution, your job is to either explain why it s not a good solution or to make the case for a better one - don t just dismiss it! Handout: Fun with Pair Programming!

Details of Pair Programming in CSC 100 At the beginning of lab: Check partner/workstation information sheet posted on lab door Find your workstation If you don t know your partner, introduce yourself! Only one of you will log in to the workstation - decide which one (maybe first to sit down?) If your partner is a no-show by 10:02, let the instructor or lab assistant know At the end of the lab: One of you logs in to Blackboard Attach lab files to the lab submission Add a comment saying who the partners were Submit! Everyone still does the quiz individually (before the next class) Reminders Before this Friday s lab: Watch the pair programming video Read (and understand!) Pre-Lab reading Also: Remember the on-line discussion of Chapter 1 of Blown to Bits (participate before Wednesday s class!).