CSE 374 Programming Concepts & Tools

Slides:



Advertisements
Similar presentations
1 CS 106, Winter 2009 Class 4, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
Advertisements

CEP Welcome September 1, Matthew J. Koehler September 1, 2005CEP Cognition and Technology Who’s Who?  Team up with someone you don’t.
CS 300 – Lecture 19 Intro to Computer Architecture / Assembly Language C Coding & The Simulator Caches.
Systems Programming Course Gustavo Rodriguez-Rivera.
1 Capstone projects supervised by Yinong Chen (1) Implementation of a Shell on Palm Hand Held Device (2) Building a Programmer’s Interface to the Palm.
1 Programming & Programming Languages Overview l Machine operations and machine language. l Example of machine language. l Different types of processor.
A-1 © 2000 UW CSE University of Washington Computer Programming I Lecture 1: Overview and Welcome Dr. Martin Dickey University of Washington.
Geo 118/318 – Introduction to GIS Programming Dr. Jim Graham.
Embedded Programming and Robotics Introduction and Overview Presented by John Cole Senior Lecturer in Computer Science The University of Texas at Dallas,
Computer Science 2211b Software Tools and Systems Programming.
P51UST: Unix and Software Tools Unix and Software Tools (P51UST) Compilers, Interpreters and Debuggers Ruibin Bai (Room AB326) Division of Computer Science.
1 Design and Integration: Part 1 Nuggets about Design vs Project Management.
CSE 303 Concepts and Tools for Software Development Richard C. Davis UW CSE – 12/8/2006 Lecture 25 – Closing Words.
Computer Science 2211b Software Tools and Systems Programming.
Introduction to Programming Peggy Batchelor.
Computer Programming I An Introduction to the art and science of programming with C++
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
LINUX System : Lecture 1 Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang University.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
Intermediate 2 Computing Unit 2 - Software Development Topic 2 - Software Development Languages and Environments.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 1 – Course Introduction.
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 11 – gdb and Debugging.
CSE 331 Software Design & Implementation Dan Grossman Spring 2015 Course Victory Lap (Based on slides by Mike Ernst, Dan Grossman, David Notkin, Hal Perkins)
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Zach Tatlock / Winter 2016 CSE 331 Software Design and Implementation Lecture 24 Wrap Up.
JavaScript Part 1 Introduction to scripting The ‘alert’ function.
Introduction to CSCI 1311 Dr. Mark C. Lewis
Programming Languages Dan Grossman 2013
CSE 374 Programming Concepts & Tools
Why don’t programmers have to program in machine code?
CSE 374 Programming Concepts & Tools
Lecture 1b- Introduction
Geo 318 – Introduction to GIS Programming
CSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools
Types for Programs and Proofs
Final exam: Wednesday, March 20, 2:30pm
CSE 374 Programming Concepts & Tools
Computer Organization, Eclipse Intro
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Learning to Program D is for Digital.
CSE 331 Software Design & Implementation
CSE 374 Programming Concepts & Tools
System Programming and administration
CSE 374 Programming Concepts & Tools
CSE 374 Programming Concepts & Tools
A451 Theory – 7 Programming 7A, B - Algorithms.
University of Washington Computer Programming I
Computational Thinking in the Classroom
CSE 331 Software Design and Implementation
Programming Languages
Sussex Neuroscience Coding Club title slide
Compiler Construction
CS 179 Project Intro.
Geo 318 – Introduction to GIS Programming
CSE 331 Software Design & Implementation
Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
Last Lecture Hal Perkins Winter 2008
Programming Languages
CSE 331 Software Design & Implementation
CSE 331 Software Design & Implementation
Introduction to Computer Systems
CSE 303 Concepts and Tools for Software Development
Tonga Institute of Higher Education IT 141: Information Systems
Tonga Institute of Higher Education IT 141: Information Systems
Review of Previous Lesson
Presentation transcript:

CSE 374 Programming Concepts & Tools Hal Perkins Winter 2017 Lecture n – Course Wrapup UW CSE 374 Winter 2017

Reminders Please fill out course evaluations before they close this weekend Final exam: Wed. 3/15, 2:30-4:20, here Topics: mostly C/C++ and tools (make, git, etc.), but likely also some shell scripting, etc. No heavy-duty regexp/sed or similar things Last minute review Q&A Tue. 3/14, 4:30, MOR 220. Might be 10 min. late depending on how fast people can get there from previous exams So let’s take a look back at what we’ve done this quarter… UW CSE 374 Winter 2017

But first... A huge thanks to the folks who made the course work: UW CSE 374 Winter 2017

10 weeks ago…. We have 10 weeks to move to a level well above novice programmer: Command-line tools/scripts to automate tasks C programming (lower level than Java; higher than assembly) Tools for programming That’s a lot! Get used to exposure, not exhaustive investigation This is not intro programming anymore UW CSE 374 Winter 2017

What is CSE 374? Something of a “laundry list of everything else”, but… There is an amorphous set of things computer scientists know about and novice programmers don’t. Knowing them empowers you in computing, lessens the “friction” of learning in other classes, and makes you a mature programmer. The goal is to give you a sense of what’s out there and what you can expect – and how you can learn more later when you need to UW CSE 374 Winter 2017

A few General Areas The command line Text-based manipulation of the computing environment Automating (scripting) this manipulation Using powerful utility programs Let the computer do what it’s good at so you don’t have to! We’ll use Linux (an operating system) and bash (a shell) – but the concepts are not tied to these Idea: Knowing the name of what “ought to exist” Idea: Programming in a language designed for interaction UW CSE 374 Winter 2017

A few General Areas C (and a little C++) “The” programming language for operating systems, networking, embedded devices, … Manual resource management Trust the programmer: a “correct” C implementation will run a program with an array-bounds error and whatever happens, happens A “lower level” view of programming: all code and data sits together in a “big array of bits” Idea: Parts look like Java – don’t let that deceive you! Idea: Learn to think before you write, and test often UW CSE 374 Winter 2017

A few General Areas Programming tools – so far you have written programs and run them. There are programs for programming you should know about: Compilers (vs interpreters) Debuggers Linkers Recompilation managers Version-control systems Profilers … UW CSE 374 Winter 2017

A few General Areas Software development concepts – what do you need to know to write a million lines of code? Testing strategies Team-programming concepts Software specifications and their limits … UW CSE 374 Winter 2017

A few General Areas Basics of concurrency – what happens when more than one thing can happen at once in a program? Brand-new kinds of bugs (e.g., races) Approaches to synchronization And it matters – most computers you can buy have (at least) 2 processors How do we run enough stuff concurrently to keep all the processors busy? UW CSE 374 Winter 2017

Perspective “There is more to programming than Java methods” “There is more to software development than programming” “There is more to computer science than software development” You’ve got a lot more in your toolkit than you had 10 weeks ago Have fun building great things! UW CSE 374 Winter 2017