Essential Programming Skills CSE 340 – Principles of Programming Languages Spring 2016 Adam Doupé Arizona State University

Slides:



Advertisements
Similar presentations
CS820 – USABILITY AND INTERACTION Use Case Scenarios for Final Project Assignment Week 5 By: Karl B. Ostler Colorado Technical University May 2011 USABILITY.
Advertisements

Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
EDIT MODE The HAAS Control Series PRESS THREE TIMES TO GET TO THIS PAGE (Continued on next slide) Note: SLIDE LEGEND ACTIONS INSTRUCTIONS KEYS INFORMATION.
A Guide to Unix Using Linux Fourth Edition
Typing & Hotkey Proficiency. Table of Contents Keyboard Hand Placement – Left Hand – Right Hand Different types of Keys – Control Keys – Function Keys.
XP Exploring the Basics of Microsoft Windows XP1 Exploring the Basics of Windows XP.
Customizing Word Microsoft Office Word 2007 Illustrated Complete.
Linux+ Guide to Linux Certification, Second Edition
Text Strings, Keymaps, and Macros, Oh My: Tips and Customizations for Efficient Cataloging in Connexion By Mary Aycock Workshop training, MU Libraries.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Guide To UNIX Using Linux Third Edition
Introduction to Unix (CA263) Introduction to Shell Script Programming By Tariq Ibn Aziz.
Systems Software Operating Systems.
Software Construction and Evolution - CSSE 375 Software Documentation 1 Shawn & Steve Right – For programmers, it’s a cultural perspective. He’d feel almost.
PART A Emac Lisp   Emac Lisp is a programming language  Emacs Lisp is a dialect.
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Text Strings, Keymaps, and Macros, Oh My: Tips and Customizations for Efficient Cataloging in Connexion By Mary Aycock University of Missouri--Columbia.
Debugging Tips for Programmers. Outline Script debugging Script debugging –C shell –BASH/Bourne/Korn shell tips Compiled language debugging Compiled language.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
1 Programming Concepts Module Code : CMV6107 Class Contact Hours: 45 hours (Lecture 15 hours) (Laboratory/Tutorial 30 hours) Module Value: 1 Textbook:
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Joshi R.G. Dept. of Computer Sci. YMA.
Technical Workshops | Esri International User Conference San Diego, California ArcMap: Tips and Tricks Miriam Schmidts Jorge Ruiz-Valdepena July 23 – 27,
1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1.
Introduction to Shell Script Programming
1 Test Automation For Web-Based Applications Selenium HP Web Test Tool Training Portnov Computer School.
Selenium Web Test Tool Training Using Ruby Language Discover the automating power of Selenium Kavin School Kavin School Presents: Presented by: Kangeyan.
Chapter 3 Mastering Editors
Grades Please hand in your homework Quizzes coming back today Current grade on back with missing assignments Anything missing can be turned in late There.
Introduction to Programming Peggy Batchelor.
Computer Programming for Biologists Oct 30 th – Dec 11 th, 2014 Karsten Hokamp  Fill out.
Chapter Three The UNIX Editors. 2 Lesson A The vi Editor.
How to make a game using what you already know Chris Gardner Senior Software Engineer T & W Operations, Inc.
Productivity Programs Common Features and Commands.
Guide to Linux Installation and Administration, 2e1 Chapter 7 The Role of the System Administrator.
Tutorial 11 Five windows included in the Visual Basic Startup Screen Main Form Toolbox Project Explorer (Project) Properties.
Browsers © Copyright 2014, Fred McClurg All Rights Reserved.
Chapter 0 Overview. Why you are here? Where will you go? What is this course for?
Text editors Why should I use an editor ? It is very important to able to use at least one text mode editor a text mode editor is so useful on remote machines.
I Power Higher Computing Software Development Development Languages and Environments.
Visual Basic CDA College Limassol Campus Lecture:Pelekanou Olga Semester C Week - 1.
1 Programming Environment and Tools VS.Net 2012 First project MSDN Library.
Chapter Three The UNIX Editors.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Lesson: 2 Common Features and Commands After completing this lesson, you will be able to: Identify the main components of the user interface. Identify.
CSC 1010 Programming for All Lecture 2 Introduction to Python Some material based on material from Marty Stepp, Instructor, University of Washington.
Authoring tools There are three main authoring tools:
© 2015 by McGraw-Hill Education. This proprietary material solely for authorized instructor use. Not authorized for sale or distribution in any manner.
Practical Kinetics Exercise 0: Getting Started Objectives: 1.Install Python and IPython Notebook 2.print “Hello World!”
Linux A practical introduction. 1)Background and Getting Started Linux is an operating system with multiple providers Red Hat/CentOS (our version) Ubuntu.
Pen Based User Interface Issues CSE 490RA January 25, 2005.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
DEPARTMENT OF COMPUTER SCIENCE Introduction to Visual Basic BCA 3 RD YR PRESENTED BY HASHIR UN NABI Dated:01/07/
Chapter 11 Enhancing an Online Form and Using Macros Microsoft Word 2013.
Chapter 3: Mastering Editors Chapter 3 Mastering Editors (Emacs)
FIRST COURSE Exploring the Basics of Microsoft Windows Vista.
Chapter 1 Introduction to Visual Basic
Excel Tutorial 8 Developing an Excel Application
Introduction to the Command Line for Data Analysts Gus Cavanaugh
Class Projects and Environment
Open Source Software Development Environment
Essential Programming Skills
CSE 374 Programming Concepts & Tools
Guide To UNIX Using Linux Third Edition
CSE 522S Advanced Operating Systems Course Introduction
Class Projects and Environment
Macro.
Linux Operations and Administration
Chapter 1: Programming Basics, Python History and Program Components
Video Notes.
Presentation transcript:

Essential Programming Skills CSE 340 – Principles of Programming Languages Spring 2016 Adam Doupé Arizona State University

Adam Doupé, Principles of Programming Languages Constant Learning Searching –Google for errors –Finding documentation –Navigation documentation Reading –Man pages –Documentation –Specifications 2

Adam Doupé, Principles of Programming Languages Touch Typing Seriously, effort at this will pay dividends 3

Adam Doupé, Principles of Programming Languages Editors Your editor is your main instrument to craft a program –Chefs use the best knife –Mechanics use the best wrenches –Bakers use the best ovens –And they know the ins and outs of their tool Invest time in learning your editor 4

Adam Doupé, Principles of Programming Languages The Mouse is Evil HCI Keystroke-Level Model (KLM) models how fast different user interactions can be Pressing a key –0.08 seconds/char fast typist –0.28 seconds/char average typist –1.2 seconds/char slow typist Move hands from keyboard to mouse (or back) –0.4 seconds Point mouse – seconds 5

Adam Doupé, Principles of Programming Languages The Mouse is Evil Using a mouse –Move from keyboard to mouse (0.4) –Point mouse (1.1) –Press a left mouse button (0.08) –Point mouse (0.8) –Press a left mouse button (0.08) –Move from mouse to keyboard (0.4) –Total: 2.82 seconds In 2.82 seconds, you could type –35.25 characters –10 characters –Or 2.35 characters 6

Adam Doupé, Principles of Programming Languages Editors I suggest –vim Installed everywhere Dual mode (editing/commands) –emacs Highly extensible Single mode (modifier keys for commands) Whatever –As long as you are efficient! 7

Adam Doupé, Principles of Programming Languages My quick emacs tips Lots of beginner tutorials online – beginners-guide-to-emacs/ beginners-guide-to-emacs/ Map caps lock to control (this is standard on every machine I use) –Prevent "emacs pinky" Emacs macros are amazing for data manipulation/refactoring ctive-emacshttps://sites.google.com/site/steveyegge2/effe ctive-emacs 8

Adam Doupé, Principles of Programming Languages Command Line The UNIX/POSIX/Linux command line is an amazing tool –Command composition –Output redirection –Background tasks –Sleeping Pipelines_in_command_line_interfaceshttps://en.wikipedia.org/wiki/Pipeline_(Unix)# Pipelines_in_command_line_interfaces owsehttp:// owse 9

Adam Doupé, Principles of Programming Languages Debugger Debuggers let you inspect a running processes to find out what went wrong Also useful tool for prototyping –Evaluate functions and expressions in the context of the currently running program gdb –Command-line debugger for Linux Knowing when to use a debugger and when to use printf is the mark of a good programmer 10

Adam Doupé, Principles of Programming Languages Advanced Topics Bash scripting –Automate frequently run tasks Editor customization/plugins –Shape your tool to you Version Control –Git, subversion Unit Tests –Test your code … 11