CSE 331 Software Design & Implementation

Similar documents
SECTION 2: HW3 Setup.

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 2: Loop Reasoning & HW3 Setup

SECTION 1: CODE REASONING + VERSION CONTROL

CSE 332: Data Structures and Parallelism Winter 2019 Setting Up Your CSE 332 Environment

SECTION 1: CODE REASONING + VERSION CONTROL


Revision Control. An Introduction Using Git 1/15

CSE 391 Lecture 9. Version control with Git

A quick (and maybe practical) guide to Git and version control. By Jay Johnson

Section 2: Developer tools and you. Alex Mariakakis (staff-wide)

Git(Lab) Tutorial and Hands-On

CSE 344: Section 1 Git Setup for HW Introduction to SQLite. September 28, 2017

Warmup. A programmer s wife tells him, Would you mind going to the store and picking up a loaf of bread? Also, if they have eggs, get a dozen.

Git Setup Help using GitKraken (CSE 154)

Revision control. INF5750/ Lecture 2 (Part I)

SECTION 1: CODE REASONING + VERSION CONTROL + ECLIPSE

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Software Development I

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

GIT. A free and open source distributed version control system. User Guide. January, Department of Computer Science and Engineering

Visualizing Git Workflows. A visual guide to 539 workflows

CSE 344: Section 1 Git Setup for HW Introduction to SQLite

Version Control Systems

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

Version control CSE 403

Submitting your Work using GIT

Version Control System GIT

Version Control with Git ME 461 Fall 2018

Gitlab Setup/Usage by Yifeng Zhu modified by Vince Weaver 30 January 2019

Version Control Systems (Part 1)

Using git to download and update BOUT++

Tutorial 2 GitHub Tutorial

Technology Background Development environment, Skeleton and Libraries

Intermediate Programming, Spring Misha Kazhdan


F17 Modern Version Control with Git. Aaron Perley

Github/Git Primer. Tyler Hague

A short tutorial on Git. Servesh Muralidharan 4 March 2014

EDA Spring, Project Guidelines

GETTING TO KNOW GIT: PART II JUSTIN ELLIOTT PENN STATE UNIVERSITY

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Using Git to Manage Source RTL

Version Control Systems: Overview

Version control CSE 403

Lab 08. Command Line and Git

Version Control: Gitting Started

CS 320 Introduction to Software Engineering Spring February 06, 2017

Technology Background Development environment, Skeleton and Libraries

The Old World. Have you ever had to collaborate on a project by

Git for Subversion users

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

TDDC88 Lab 4 Software Configuration Management

A Brief Git Primer for CS 350

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Distributed Version Control

Code Repository. P Blanchfield

Revision Control and GIT

Intro to Github. Jessica Young

Today s presentation. Git gdb Project 1

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

S18 Modern Version Control with Git

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

CS 261 Recitation 1 Compiling C on UNIX

Project 3 Students Choice of Native Apps. each milestone s deadline is noon see cs164.net/expectations for each milestone s expectations

Software configuration management

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

Git for Version Control

Introduction to Git and Github

Configuration Management

From Tiny Acorns Your first submission to OpenAFS. Simon Wilkinson

AMath 483/583 Lecture 2. Notes: Notes: Homework #1. Class Virtual Machine. Notes: Outline:

Software Project (Lecture 4): Git & Github

AMath 483/583 Lecture 2

Getting the Source Code

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

FEEG Applied Programming 3 - Version Control and Git II

Portions adapted from A Visual Guide to Version Control. Introduction to CVS

Table of Contents. Concepts

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han

Git for Newbies. ComMouse Dongyue Studio

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Version control CSE 403

Review Version Control Concepts

CSC 2700: Scientific Computing

Version Control with GIT

Revision control systems (RCS) and. Subversion

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

CSE 390 Lecture 9. Version control and Subversion (svn)

Using GitHub to Share with SparkFun a

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Software Revision Control for MASS. Git Installation / Configuration / Use

Git, the magical version control

GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY

Transcription:

CSE 331 Software Design & Implementation Spring 2019 Section 2 Development Tools UW CSE 331 Spring 2019 1

Administrivia HW1 done! HW2 due next Tuesday. HW3 out today, deadline upcoming. Everyone should have a GitLab repo (cse331-19sp-netid) Any questions? UW CSE 331 Spring 2019 2

Preparing for homework 3 We will transition to programming assignments as of HW3 Section today will cover the necessary development tools IDE: IntelliJ Version control: Git Build system: Gradle We ll wrap up with a demo of the development workflow UW CSE 331 Spring 2019 3

Course resources We can t cover everything in an hour Read documentation: cs.uw.edu/331 à Resources tab Version Control (Git) Reference Working at Home Assignment Submission Editing, Compiling, Running, and Testing Java Programs The resources page is a treasure trove of helpful information! UW CSE 331 Spring 2019 4

Warning: You must use JDK 11+ Must use JDK version 11 or later Be sure that s what you have installed! Download links in Resources webpage An out-of-date JDK can lead to very confusing bugs No fun for either of us! UW CSE 331 Spring 2019 5

IntelliJ The officially supported editor for this course A modern IDE, commonly used in industry IDE = Integrated Development Environment Auto completion Version-control (git) integration Debugger integration and an assortment of other fun features Necessary functionality covered in course documentation Editing, Compiling, Running, and Testing Java Programs UW CSE 331 Spring 2019 6

Version control Also called source control, revision control System to track changes in a project codebase Unit of change ~ lines inserted/deleted across some files Essential for managing software projects Maintain a history of code changes Revert to an older project state Merge changes from multiple sources We ll use git and GitLab in this course, but alternatives exist Subversion, Mercurial, CVS Email, dropbox, thumbdrives (don t even think of doing this!) UW CSE 331 Spring 2019 7

Version control concepts A repository ( repo ) stores a project s official codebase Lives on a server accessible to all project developers Not modified directly Each developer clones her own working copy of the repo Makes a local copy of the codebase, on your laptop/computer You modify these files directly, with your IDE or text editor Each developer commits changes to her working copy Saves a commit to version control history Affects only the local working copy Must synchronize with remote repo to share commits each way UW CSE 331 Spring 2019 8

Essential git commands git add path/to/file Tells git which changed files you want to save Can list multiple files or git add multiple times git commit m fixed some bugs Saves add ed files in local version control history Give a brief message summarizing changes git push Sends local commits to the repository (on GitLab) git pull Synchronizes working copy to match repository UW CSE 331 Spring 2019 9

Diagram of git usage course staff student UW CSE 331 Spring 2019 10

Your GitLab repository We ll push starter code to your repo for each homework After HW3, you ll get it with a git pull Commit and push your code as you do the assignment Recommended process: edit, test, pull, commit, push Submit homework N by creating a tag hwn-final Check that you ve committed and pushed all your work! Do not attach a message with the tag Example: hw3-final for HW3 Without a tag, your homework might not be graded! UW CSE 331 Spring 2019 11

Getting started with your repo 1. Install git for your platform Install Apple Xcode with dev tools (macos) Download installer from git-scm.com (Windows) 2. Configure SSH access to your GitLab account a. Generate an RSA key pair: ssh-keygen -o t rsa -b 4096 -C GitLab b. Copy the generated public key pbcopy < ~/.ssh/id_rsa.pub cat ~/.ssh/id_rsa.pub clip (macos) (Windows) c. Paste that to your GitLab account, under Settings à SSH Keys 3. Clone your repo as a new project in IntelliJ UW CSE 331 Spring 2019 12

Best practices when using git Add/commit/push your code early and often!! You really, really don t want to deal with merge conflicts Best to pull before you commit Keep your repo up-to-date as much as possible Do not rename files and folders that we gave you That will mess up our grading process It would be a silly reason to lose points! Use this repo just for homework UW CSE 331 Spring 2019 13

Demo of development workflow UW CSE 331 Spring 2019 17