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.

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: ____________________.
Data Structures Introduction. What is data? (Latin) Plural of datum = something given.
Goodbye, world! CSE Major themes Abstraction –Leverage existing components without understanding details –Create components that can be used as.
1/ 47 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 19 Programming Fundamentals using Java 1.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
CSCA48 Course Summary.
Sir Tim Berners-Lee (1955-) British computer scientist Inventor of the World Wide Web in 1989 (developed the first HTML protocol and sent the first messages.
JAMES HERBERT BLAKE HIGH SCHOOL COURSE OFFERINGS Career, Business, Internships Multimedia,Technology Education and Engineering.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2010 See online syllabus (also available through BlueLine): Course goals:
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
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!
I'll give you time to fill out evals at the end. Please wait until I'm out of the room! Goodbye, world!
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
1 CSC 427: Data Structures and Algorithm Analysis Fall 2006 See online syllabus (also available through Blackboard): Course goals:
CSE 143 Lecture 25 Computer Science slides created by Marty Stepp, Hélène Martin, and Benson Limketkai
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.
By: Hamza Khan. What Problems am I trying to Solve?  Main Problem: Is a Computers Careers suitable for me?  Questions Related to Problem:  Do I have.
CSC 421: Algorithm Design & Analysis
CSC 427: Data Structures and Algorithm Analysis
Computer Science skill sets
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
Building Java Programs
CSC 222: Computer Programming II
INTERMEDIATE PROGRAMMING WITH JAVA
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
CSC 321: Data Structures Fall 2017
PRE-AP computer science 1
CSC 221: Computer Programming I Spring 2010
Computer Science Courses
Wednesday Notecards. Wednesday Notecards Wednesday Notecards.
CSC 221: Computer Programming I Fall 2005
CSC 321: Data Structures Fall 2015
CSC 222: Object-Oriented Programming
Big Ideas in Computer Science
Computational Thinking in the Classroom
Introduction CSE 1310 – Introduction to Computers and Programming
Major themes Abstraction Design tradeoffs Recursion Leverage existing components without understanding details Create components that can be.
CMPE419 Mobile Application Development
CSC 421: Algorithm Design & Analysis
What is “Data Structures”?
Road Map CS Concepts Data Structures Java Language Java Collections
Building Java Programs
Road Map CS Concepts Data Structures Java Language Java Collections
structures and their relationships." - Linus Torvalds
Road Map - Quarter CS Concepts Data Structures Java Language
Building Java Programs
CSE 143 Goodbye, world!.
Ada – 1983 History’s largest design effort
Introduction to Computer Science for Majors II
Road Map - Quarter CS Concepts Data Structures Java Language
Welcome to CSE 143! Go to pollev.com/cse143.
Building Java Programs
Review CSE116 2/21/2019 B.Ramamurthy.
Road Map - Quarter CS Concepts Data Structures Java Language
Road Map CS Concepts Data Structures Java Language Java Collections
1.4 ทบทวน JAVA OO Programming Concepts Declaring and Creating Objects
CSC 321: Data Structures Fall 2018
Programming Languages, Preliminaries, History & Evolution
CMPE419 Mobile Application Development
Computer Science Courses in the Major
Mark Quirk Head of Technology Developer & Platform Group
structures and their relationships." - Linus Torvalds
Computer Science Dr Hwang Chair, Computer Science Department
FUNDAMENTALS OF DOT NET TRAINING BY SURBHI KALE. INDEX 1.Dot net training Framework Fundamentals 2.CLR Features 3.Class Library Features 4.The Common.
Presentation transcript:

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 loops, if/else File I/O Arrays Objects You learned to solve more complex tasks efficiently Data structures to organize and model data Algorithms for solving common tasks More advanced language features Abstractions are important!

Road Map CS Concepts Data Structures Java Language Java Collections Client/Implementer Efficiency Recursion Regular Expressions Grammars Searching / Sorting Backtracking Hashing Huffman Compression Data Structures Lists Stacks Queues Sets Maps Priority Queues Java Language Exceptions Interfaces References Comparable Generics Inheritance / Polymorphism Abstract Classes Java Collections Arrays ArrayList 🛠 LinkedList 🛠 Stack TreeSet / TreeMap 🛠 HashSet / HashMap 🛠 PriorityQueue

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 [themselves] as an artist will enjoy what [they do] and will do it better." (Knuth)

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? List of some project ideas

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 (many frameworks to choose from) Beautiful visuals: Processing Data Processing: Python Data Management: SQL Embedded systems: C / C++ Learn a new paradigm Functional languages: Racket, SML, Scala, (now, Java 8!)

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 CSE 427: Computational Biology INFO, AMATH, HCDE, DXARTS, ...

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 Lip syncing Obama

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

Computer Science Books

Computing & Jobs

Internships Various career fairs around campus. Start looking early! Cast a broad net and interview lots of places For those just starting out Microsoft Explorer Program – Google Engineering Practicum -

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 Works with people across disciplines at the company Role can be different at different companies Test/QA Write and design tests of the product Site Reliability Engineer (SRE) Responsible for ensuring that systems and services are available and responsive

Small vs Big Company? Small Company Large company Lots of autonomy and impact within the company Often move quickly Breadth – get to work on many projects and with many types of people Large company Large data sets, impact many users Lots of support and infrastructure to do your job well Depth – get to focus on specific areas of a project

What Do I Do? I’m a graduate student at the Paul G Allen School for Computer Science. Topics in CS that interest me: Programming languages & Compilers Data Visualization Where I have interned Microsoft Job: Explore program – PM and software developer Android application Square Job: Developer on the Billing team Improved internal APIs for other teams to use Language: mostly Ruby Facebook Job: Web developer on the Messenger team Languages: React (Facebook’s version of JavaScript), PHP

Questions?