Essential Programming Skills

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.
A Guide to Unix Using Linux Fourth Edition
1 Software User Documentation Don Bagert CSSE 375, Rose-Hulman October 9, 2006.
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.
Software Construction and Evolution - CSSE 375 Software Documentation 1 Shawn & Steve Right – For programmers, it’s a cultural perspective. He’d feel almost.
COMPREHENSIVE Excel Tutorial 8 Developing an Excel Application.
Text Strings, Keymaps, and Macros, Oh My: Tips and Customizations for Efficient Cataloging in Connexion By Mary Aycock University of Missouri--Columbia.
Computer System Examples? Input Output Devices System Unit Devices
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.
A VERY USEFUL E-LEARNING TOOL FOR TEACHERS, RESEARCHERS, AND STUDENTS.
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.
Computer Programming for Biologists Oct 30 th – Dec 11 th, 2014 Karsten Hokamp  Fill out.
How to make a game using what you already know Chris Gardner Senior Software Engineer T & W Operations, Inc.
Basic Computer and Word Functions, part 1 Read the information and use to answer the questions in the Basic Computer and Word Functions Study Guide.
Productivity Programs Common Features and Commands.
Intro to Excel - Session 7.31 Tutorial 7 - Session 7.3 Developing an Excel Application.
Guide to Linux Installation and Administration, 2e1 Chapter 7 The Role of the System Administrator.
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.
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.
Authoring tools There are three main authoring tools:
Essential Programming Skills CSE 340 – Principles of Programming Languages Spring 2016 Adam Doupé Arizona State University
Practical Kinetics Exercise 0: Getting Started Objectives: 1.Install Python and IPython Notebook 2.print “Hello World!”
DEPARTMENT OF COMPUTER SCIENCE Introduction to Visual Basic BCA 3 RD YR PRESENTED BY HASHIR UN NABI Dated:01/07/
Lab 7 Shell Script Reference: Linux Shell Scripting Tutorial v1.05r3 A Beginner's handbook
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.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
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
CSE 374 Programming Concepts & Tools
Excise Tasks CS 4640 Programming Languages for Web Applications
The Visual Studio .NET IDE Customization and Enhancements
Guide To UNIX Using Linux Third Edition
The Linux Command Line Chapter 12
Accidental and Essential Problems Excise Tasks
Let's Learn Python and Pygame
Guide To UNIX Using Linux Third Edition
CSE 522S Advanced Operating Systems Course Introduction
Class Projects and Environment
Macro.
Week 1 – Lesson 2: Creating Shell Scripts, Linux Commands
Planning a Group Policy Management and Implementation Strategy
Linux Operations and Administration
Chapter 1: Programming Basics, Python History and Program Components
Video Notes.
Lab 7 Shell Script Reference:
The Linux Command Line Chapter 12
Presentation transcript:

Essential Programming Skills CSE 340 – Principles of Programming Languages Fall 2016 Adam Doupé Arizona State University http://adamdoupe.com

Constant Learning Searching Reading Google for errors Finding documentation Navigation documentation Reading Man pages Documentation Specifications

Touch Typing Seriously, effort at this will pay dividends

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

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 0.8 -- 1.1 seconds

The Mouse is Evil Using a mouse In 2.82 seconds, you could type Move from keyboard to mouse (0.4) Point mouse (1.1) Press a left mouse button (0.08) Point mouse (0.8) 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

Editors I suggest Whatever vim emacs As long as you are efficient! Installed everywhere Dual mode (editing/commands) emacs Highly extensible Single mode (modifier keys for commands) Whatever As long as you are efficient!

My quick emacs tips Lots of beginner tutorials online http://www.jesshamrick.com/2012/09/10/absolute-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 https://sites.google.com/site/steveyegge2/effective-emacs

Command Line The UNIX/POSIX/Linux command line is an amazing tool Command composition Output redirection Background tasks Sleeping https://en.wikipedia.org/wiki/Pipeline_(Unix)#Pipelines_in_command_line_interfaces http://www.commandlinefu.com/commands/browse

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

Advanced Topics Bash scripting Editor customization/plugins Automate frequently run tasks Editor customization/plugins Shape your tool to you Version Control Git, subversion Unit Tests Test your code …