Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.

Slides:



Advertisements
Similar presentations
CS Body of Knowledge (ACM) Discrete Structures Programming Fundamentals Algorithms & Complexity Operating Systems Architecture & Organization Social &
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Department of Mathematics and Computer Science
CSCE156: Introduction to Computer Science II Instructor Stephen Scott Website
Creating an Educational Tool for Computer Science Students Masters Project Defense Ben Stroud 1 Ben Stroud Masters Project Defense.
David L. Spooner1 IT Education: An Interdisciplinary Approach David L. Spooner Rensselaer Polytechnic Institute.
TEACHING PROGRAMMING BY ITERATIVE DEEPENING Dr. Mark Lee | School of Computer Science, University of Birmingham
Goodbye, world! CSE Major themes Abstraction –Leverage existing components without understanding details –Create components that can be used as.
 A set of objectives or student learning outcomes for a course or a set of courses.  Specifies the set of concepts and skills that the student must.
CS324e - Elements of Graphics and Visualization Class Intro
Introduction to Computer and Programming CS-101 Lecture 6 By : Lecturer : Omer Salih Dawood Department of Computer Science College of Arts and Science.
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.
Simplicity First: Use of Tools in Undergraduate CS and IS Teaching By David Naugler and Ken Surendran Southeast Missouri State University Computer Science.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
JAMES HERBERT BLAKE HIGH SCHOOL COURSE OFFERINGS Career, Business, Internships Multimedia,Technology Education and Engineering.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
VESL-Career & life planning Career Presentation April 13, 2011 Mt.SAC.
Socorro Independent School District Eastlake High School.
A BUNCH OF PROGRAMMING STUFF THAT YOU MAY NEED AT SOME POINT IN YOUR LIFE A LIST OF STUFF BY SOME PROGRAMMER SOMEWHERE.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
I'll give you time to fill out evals at the end – please wait until I'm out of the room! Goodbye, world!
CSE 143 Lecture 24 Computer Science Goodbye, world! slides adapted from Marty Stepp, Hélène Martin, and Benson Limketkai
I'll give you time to fill out evals at the end. Please wait until I'm out of the room! Goodbye, world!
I'll give you time to fill out evals at the end. Please wait until I'm out of the room! Goodbye, world!
Digital Learning India 2008 July , 2008 Mrs. C. Vijayalakshmi Department of Computer science and Engineering Indian Institute of Technology – IIT.
CSE 143 Lecture 25 Computer Science slides created by Marty Stepp, Hélène Martin, and Benson Limketkai
More Computer Science in your Future? CSE 142 Autumn
Goodbye, world!. 2 Major themes Abstraction Leverage existing components without understanding details Create components that can be used as black boxes.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
ISTD Frequently Asked Questions Most recent update: February 24, 2016.
SWE minor 2007 Minor in Software Engineering Offered by the Departments of Computer Science and Information & Software Engineering New for Fall 2007.
Why Should You Apply to Graduate School? Masters Degree
Sub-fields of computer science. Sub-fields of computer science.
Munster Programming Training
Computer Science skill sets
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
CSC 222: Computer Programming II
Computational Thinking in the Classroom
CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
CSC 321: Data Structures Fall 2016
Big Data A Quick Review on Analytical Tools
2020: Course Recommendations
CSC 321: Data Structures Fall 2017
Types for Programs and Proofs
PRE-AP computer science 1
Computer Science Courses
7 Big Ideas of Computing:
CSC 321: Data Structures Fall 2015
CSC 222: Object-Oriented Programming
Introduction CSE 1310 – Introduction to Computers and Programming
CMPE419 Mobile Application Development
An educational system for medical billers in training
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
CSCI 578 Software Architectures
Overview of System Engineering
Automated MS Word and PowerPoint Translator
CSE 143 Goodbye, world!.
Programming Languages
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Lecture 41: Goodbye, world!
Introduction To software engineering
CS 8532: Advanced Software Engineering
Programming Languages
CMPE419 Mobile Application Development
CSCE156: Introduction to Computer Science II
Computer Science Courses in the Major
Computer Science Dr Hwang Chair, Computer Science Department
Presentation transcript:

Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be used as black boxes Design tradeoffs Algorithm analysis - scalability and growth Keeping code easy to read for maintainability Recursion Reason about problems in terms of self-similarity Write very short code to achieve complex behaviors Art – "A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better." (Knuth)

Beyond programming Mind-controlled robots Muscle-controlled interfaces http://www.youtube.com/watch?v=TQ7EOpPNQyw Muscle-controlled interfaces http://www.youtube.com/watch?v=pktVSTwC8qo 3D models from pictures http://www.youtube.com/watch?v=25Yifq70elY Face aging http://www.youtube.com/watch?v=fLQtssJDMMc Animation http://www.youtube.com/watch?v=b4kkPlLdMvI Security http://www.pbs.org/wgbh/nova/tech/tadayoshi-kohno.html

What project? Little text-processing applications identify lines above 100 remove line-breaks Add a GUI to the random sentence generator Automate chemistry, physics, calculus problems, etc Find quotes by keyword in books What are you currently doing that a computer could do?

What language? Expanding your Java knowledge with a project is valuable Pick a project, see what language is most appropriate iOS: Swift Android: Java Client-side web: Javascript Beautiful visuals: Processing Quick data processing: Python Embedded systems: C/C++ Learn a new paradigm Functional languages: Racket, Haskell (now, Java 8, too!)

Leveraging existing code Processing language http://nlp.stanford.edu/software/ Building games http://lwjgl.org/ http://jbox2d.org/ (with physics!) Processing biological data http://biojava.org/wiki/Main_Page Accessing Facebook data http://restfb.com/ Making music http://www.jfugue.org/

Courses? CSE non-majors CSE majors CSE 154: Web Programming CSE 373: Data Structures and Algorithms CSE 374: Programming Concepts and Tools (C/C++, Linux, ...) CSE 131: Digital Photography CSE 460: Animation Capstone (open to all majors) CSE majors CSE 311: (Mathematical) Foundations of Computing CSE 332: Data Abstractions (Data Structures and Algorithms) CSE 331: Software Design and Implementation CSE 341: Programming Languages CSE 344: Intro to Data Management (and databases) CSE 351: Hardware/Software Interface INFO, AMATH, DXARTS, ...

Weekly meetings Change – technologies for low-income regions http://change.washington.edu/ Dub – human-computer interaction and design http://dub.washington.edu/

Roles in Industry Software Developer/Software Engineer Builds and designs software Includes designing and engineering architecture of a software system as well as programming Product Manager (PM) Designs and makes decisions regarding the overall product May write specifications for software developers Works with people across disciplines at the company May or may not program Role can be different at different companies Test/QA Write and design tests of the product

Internships Various career fairs around campus. Start looking early! For those just starting out Microsoft Explorer Program - https://careers.microsoft.com/students/explore Google Engineering Practicum - https://www.google.com/about/careers/search#!t=jo&jid=120165001&

What Do I Do? When I’m not teaching, I work at Sift Science, a startup in San Francisco, as a Software Developer Sift Science uses large scale machine learning to help online businesses detect fraud Small company (~50). Work closely with people in different disciplines across the company Full-stack, primarily focusing on front-end development Frontend uses React, Facebook’s javascript framework Backend uses Java!