Intro to Intro to Software Engineering
|
|
- Ronald Lambert
- 6 years ago
- Views:
Transcription
1 Intro to Intro to Software Engineering John Jannotti CSCI032 (cs032) Jan 28, 2010 John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
2 Introductions Me John Jannotti JJ HTAs Alex Unger Ben Herila TAs Jacob Frank Kevin Doo Osmar Olivo Nathan Partlan Paul Sastrasinh Pete White Rutledge Chin Feman Sam Boger Sandy Ryza Waler Blaurock John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
3 Welcome to CSCI0320 Software Development is... Satisfying Challenging Easy Fun Rewarding Lucrative American or Unpleasant Frustrating Difficult Painful A Waste of Time A Dead End Job Outsourced John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
4 Software Development Software Development Programming Programming is only a small part Other aspects Determining what to build (Reqs and Specs) Determining how to built it (Design) Debugging and testing Maintaining the program Hopefully, software lifetime is mostly maintenance. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
5 CSCI0320 Covers two types of programming Applications programming Systems programming These have different skill sets Generally different languages & libraries These have different concerns User interaction vs. performance You probably need both If you will program for a living Directly or indirectly John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
6 Programming Languages The language itself is not terribly important Should be able to pick up new ones on your own We ll teach underlying concepts Which are language independent But, how you use the language is important Varies some from one language to another We ll teach this, for Java, C, C++ Most of the course will use Java With techniques that apply to all languages For systems issues we use C and C++ C is standard for low-level programming. C++ is a safe and convenient C, but is big. Large systems often involve multiple languages. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
7 Choosing the Right Language What language to use is part of design Need good reasons for any language Need to justify choice of language Why Java Easy to teach CSCI0320 concepts Cuts development and debugging time Extensive libraries available Why C/C++ Closer to the machine Performance More flexible Existing libraries Others Scripting languages (python, javascript) Functional languages (lisps, erlang) You will select the right language for your final project. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
8 What Will Be Taught Skills Advanced Java, C/C++, XML, Multithreading, Sockets, Testing, Debugging, HTML, Web Programming, Libraries, Databases Concepts Design (OO, UI, System, Architecture) Extreme Programming; Team Development; Software Engineering; Systems Development Goals Write 100,000 LoC program Use your skills in other courses, workplace, future projects Start your own business, contribute to FOSS John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
9 Specific Topics Advanced Programming Java features for large-scale development Threads, sockets, and files User interface design and coding Databases Object-oriented design From classes to packages to systems Systems programming Using C and C libraries Abstraction in C C++ as a safe and convenient C Some advanced C++ techniques John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
10 More Topics Tools git, junit, ant, make, gdb,... An alphabet soup of languages, protocols XML, HTML, SQL, HTTP, CSS... Software Engineering Testing Extreme (agile) programming Team software development The software life cycle John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
11 Resources The Elements of Java Style Required Read it. Learn it. Live it. Updates/changes for this course available on-line On-line References JavaDoc, tool documentation, man pages, help files... Will be available on the web site John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
12 Assignments Solar/Galaxy Java refresher; emphasis on testing and design Available online now Real Java programming; XML; OO design; simulation; debugging Galaxy will improve Solar for larger simulations Image based search An arc of three assignments. Will integrate Java and C++. Swing, Web access; Image libraries; C/C++; threads; sockets John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
13 Final Project Project of your choice You own it, you live it Hopefully wont stop at the end of the course Despite my best efforts, you will learn the most from this Team project (4 person teams) Concepts Pull together all your skills Software engineering, project management; software design Handout on-line now Project ideas due in 8 days Team selection due in 15, we encourage heterogeneous teams John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
14 Meetings Lectures (Smith-Buonano 106) Emphasis on design, we ll walk through many case studies. Tue/Thu 2:30pm-3:50pm Weekly Labs Hands-on training you ll need for assignments. Done on your own. Required (20% of grade) Lab times available Tue, Wed, Thu. Communication via the web-site Google calendar and group are linked. Most handouts will not be handed to you. You are responsible for everything there John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
15 Deadlines and Lateness This course will be intense There is no slack in the schedule. Start assignments when they come out. Late policy Early Date: +5% On Time: Full credit Late Date: -15% One late date turnin will be forgiven. No credit at all after the late date. Every assignment must be turned in (and working ) John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
16 Lectures Much of the course is learn-by-doing However Doing is better if it s done right Lectures teach the concepts Will make the programming/design easier Lectures provide the context, examples Historic and future: the why War stories Not everything you will need is in assignments CSCI0320 is a prerequisite for advanced courses Your future classes at Brown expect you to know this material. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
17 QUESTIONS? About the course itself About the course mechanics Remember to go through the first day checklist John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
18 The Software Crisis Software engineering is a response to what is called the software crisis Why is there a software crisis? Does any of the software you use have problems? John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
19 The Software Crisis Software engineering is a response to what is called the software crisis Why is there a software crisis? Does any of the software you use have problems? Does any of the software you use not have problems? John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
20 Software Problems Problems Always Late Exceeds cost Doesn t satisfy specifications Not maintainable Not understandable or modifiable Unreliable Lacks desired efficiency Not portable Not secure Software engineering is a response to these problems John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
21 Software Engineering Building software that works We know how to build other things Engineering is the discipline that teaches us the methodologies that work for building complex objects Apply engineering techniques to software Knowing what methodologies work Understanding why and how John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
22 Software Engineering Knowledge Fundamentals (theory) Applied sciences (practice) Empirical knowledge (applications) Skills Inventiveness Good judgment and foresight Communication skills Objectivity Methodologies Managing people Organizing software development John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
23 Design as Constraints Design involves finding a solution that satisfies a set of constraints Users needs and wants Target platform or environment Financial or temporal resources Programmer s abilities Competing products Government regulations Set of constraints is essentially infinite Find a practical subset Set priorities and ignore irrelevant ones Find solutions that optimize the remainder John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
24 Software Is Different Set of constraints is continually changing In significant and meaningful ways In unknown and unknowable ways Priorities are changing People expect software to adapt More so than anything else Software often fails to meet expectations Must be built anyway So how do we go about building software This is what software engineering is about John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
25 Requirements Analysis First step in building a system Define the problem from the user s view Determine outlines of best solution Determine what is required & optional Determine limitations on resources Determine acceptance criteria All from the user s point of view Techniques User studies; interviews; surveys Keep the user part of the team First step for you final project You must understand what the user wants before you decide what to build! John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
26 Specifications Analysis Programmer s requirements Detail the problem: what the program does Define the inputs and outputs Define interfaces to existing systems Give a precise statement of what will be done Describe how this meets requirements Develop testing and acceptance plan What, not how Techniques Stories & scenarios; Design diagrams, UML; User manual You have to know what you are going to build before you can design it! John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
27 Software Design What is involved Define system architecture Specify packages, classes and methods Develop data structures and algorithms Problem analysis Define the solution down to a level where it can be easily implemented Key principles Risk Avoidance Simplicity Abstraction John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
28 Software Design Top-Level Design Components and interfaces Define the boundaries between components Components allocated to individuals or groups All communications through interfaces Detailed design Class implementations Helper classes, methods,... Techniques UML; interface code; XP: design as you go (and refactor) Prototyping: try things out as part of design John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
29 Coding AKA Programming Easiest part of the process (If the design is done right) Techniques Emphasis on programming style Emphasis on defensive programming Write tests with (before?) implementations John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
30 Testing Types of Testing Module or class testing unit tests Integration testing putting classes together Systems testing the whole shebang Acceptance testing by user A successful test case finds a problem Testing starts before coding Design: design for and with testing XP: write the test cases first Testing should be thorough and continuous John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
31 Maintenance What it involves Fixing bugs; adding features; adapting Most costly and longest (hopefully) part This is what we want to minimize This is the lesson of software engineering Design for Maintenance Flexibility; planning for change Coding for Maintenance Simplicity; abstraction Coding style; defensive programming John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
32 Models of Software Engineering How to put these phases together How to effectively engineer systems John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
33 Waterfall Model 1 Requirements 2 Specifications 3 Design 4 Coding 5 Testing 6 Maintenance John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
34 Feedback Model 1 Requirements 2 Specifications 3 Design 4 Coding 5 Testing 6 Maintenance Each step may return to a previous step. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
35 Prototyping Model 1 Requirements 2a Prototype 2 Specifications 3 Design 4 Coding 5 Testing 6 Maintenance Build a prototype from initial requirements. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
36 Agile Programming What s wrong with these approaches It s unclear what the customer wants It s unclear what really needs to be built It s unclear what is difficult/easy to do It s unclear what the best design is a priori Agile programming attempts to address these concerns John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
37 Agile Components Write the test cases first Testing is the important aspect This gets the design correct; ensures system continues to work Work with the end user continually Not just initially User is part of the development team Work in terms of scenarios Implement vertical functionality; driven by user demand Work with short development cycles Each week, implement a set of scenarios Get feedback after each cycle to determine what next Your projects will be interative, especially final project. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
38 Agile Components Pair programming Program in pairs, one writing, one reading We encourage you to try this on pair/group work We may allow it on some labs. Shared responsibility Everyone on the team is responsible for all the code in the project We may ask anyone in a group about any part of design. Emphasis on simplicity Write the simplest code possible Avoid complexity unless absolutely necessary Encourage refactoring The best design will evolve As you see ways to improve the design, do so incrementally John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
39 Agile Programming Model 1 Requirements / Scenarios 2 Test Cases 3 Implementation Even more that in the feedback model, focus is on returning, again and again, to previous steps. John Jannotti (cs32) Intro to Intro to Software Engineering Jan 28, / 1
TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out
Announcements TA hours and labs start today. First lab is out and due next Wednesday, 1/31. Getting started lab is also out Get you setup for project/lab work. We ll check it with the first lab. Stars
More informationCSE 333 Lecture 1 - Systems programming
CSE 333 Lecture 1 - Systems programming Hal Perkins Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting
More informationCSE 333 Lecture 1 - Systems programming
CSE 333 Lecture 1 - Systems programming Steve Gribble Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting
More informationCS240: Programming in C
CS240: Programming in C Lecture 1: Class overview. Cristina Nita-Rotaru Lecture 1/ Fall 2013 1 WELCOME to CS240 Cristina Nita-Rotaru Lecture 1/ Fall 2013 2 240 Team Instructor: Cristina Nita-Rotaru Special
More informationTopic 01. Software Engineering, Web Engineering, agile methodologies.
Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,
More informationCOS 333: Advanced Programming Techniques
COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University Please pick up handouts at the back of the room 1 COS 333: Course Overview Copyright 2018 by Robert M. Dondero, Ph.D.
More information15-411/ Compiler Design
15-411/15-611 Compiler Design Jan Hoffmann Fall 2016 http://www.cs.cmu.edu/~janh/courses/411/16 Teaching Staff Instructor: Jan Hoffmann Office hours: Tue 10:30am-noon Thu 1:00pm-2:30pm at GHC 9105 Teaching
More informationObject-Oriented Programming CSCI-UA
Object-Oriented Programming CSCI-UA 0470-001 Instructor: Thomas Wies Spring 2017 Class 1 - Introduction Object-oriented programming is an exceptionally bad idea which could only have originated in California.
More informationComputer Science 210: Data Structures
Computer Science 210: Data Structures Welcome to Data Structures! Data structures are fundamental building blocks of algorithms and programs Csci 210 is a study of data structures design efficiency implementation
More informationCS279 Course Overview. Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University
CS279 Course Overview Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University What is CS279 About? This class is about picking an interesting
More informationINFSCI 1017 Implementation of Information Systems Spring 2017
INFSCI 1017 Implementation of Information Systems Spring 2017 Time: Thursdays 6:00 8:30 Location: Information Science Building, Room 406 Instructor: Alexander Nolte Office Hours: Monday, 1-2PM Thursdays,
More informationCS 520 Theory and Practice of Software Engineering Fall 2017
CS 520 Theory and Practice of Software Engineering Fall 2017 Course introduction September 05, 2017 The CS 520 team Instructors Prof. Yuriy Brun Office: CS 346 Office hours: by appointment brun@cs.umass.edu
More informationTips from the experts: How to waste a lot of time on this assignment
Com S 227 Spring 2018 Assignment 1 80 points Due Date: Friday, February 2, 11:59 pm (midnight) Late deadline (25% penalty): Monday, February 5, 11:59 pm General information This assignment is to be done
More informationLecture 7: Software Processes. Refresher: Software Always Evolves
Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)
More information9/17/12! Ion Stoica CS162 UCB Fall 2012!
Goals for Today CS162 Operating Systems and Systems Programming Lecture 6 Readers/Writers Problem, Working in Teams September 17, 2012! Ion Stoica! http://inst.eecs.berkeley.edu/~cs162! Recap:! Locks,
More informationCSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)
CSE 417 Practical Algorithms (a.k.a. Algorithms & Computational Complexity) Outline for Today > Course Goals & Overview > Administrivia > Greedy Algorithms Why study algorithms? > Learn the history of
More informationCSCD 330 Network Programming Spring Lecture 1 - Course Details
CSCD 330 Network Programming Spring 2018 Lecture 1 - Course Details Contact Information Instructor: Carol Taylor 319A CEB Phone: 509-359-6065 E-mail: ctaylor@ewu.edu Course: CSCD330, CEB 107 Lecture, M,
More informationCOS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
COS 333: Advanced Programming Techniques Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions Course Overview Resources Topics Assignments Project (briefly) Schedule (briefly)
More informationCSci Introduction to Operating Systems. Administrivia, Intro
CSci 4061 Introduction to Operating Systems Administrivia, Intro Me: Welcome to 4061! Jon Weissman CS Professor circa 1999 Call me Jon TAs: Zach Leidall, Francis Liu, Fei Wu, Parag Panda, Gaurav Khandelwal
More informationCredit: The lecture slides are created based on previous lecture slides by Dan Zingaro.
CSC148 2018 Here 1 Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro. 2 Larry Zhang Office: DH-3042 Email: ylzhang@cs.toronto.edu 3 The teaching team Dan Zingaro: LEC0103
More informationSOFTWARE LIFE-CYCLE MODELS 2.1
SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed
More informationAdvanced Programming Concepts. CIS 15 : Spring 2007
Advanced Programming Concepts CIS 15 : Spring 2007 Mondays and Thursdays 12:15 pm to 1:30 pm 232 Ingersoll Extension Instructor: Chipp Jansen (not Tennenbaum as listed) E-mail: chipp@sci.brooklyn.cuny.edu
More informationOutline. Logistics. Logistics. Principles of Software (CSCI 2600) Spring Logistics csci2600/
Outline Principles of Software (CSCI 600) Spring 018 http://www.cs.rpi.edu/academics/courses/spring18/csci600/ Konstantin Kuzmin, kuzmik@cs.rpi.edu Office hours: Monday and Thursday 4:00 pm - 5:30 pm Mailing
More information(p t y) lt d. 1995/04149/07. Course List 2018
JAVA Java Programming Java is one of the most popular programming languages in the world, and is used by thousands of companies. This course will teach you the fundamentals of the Java language, so that
More informationBiocomputing II Coursework guidance
Biocomputing II Coursework guidance I refer to the database layer as DB, the middle (business logic) layer as BL and the front end graphical interface with CGI scripts as (FE). Standardized file headers
More informationBuilding In Quality. Ten Years Later
Building In Quality Ten Years Later 2017 Iberle Consulting Group, Inc. 2 2017 Iberle Consulting Group, Inc. 3 Some software just has to work By Lothar Neumann, Gernsbach [1] - Karlsruhe:Bild:Philippsburg2.jpg,
More informationTonight s Agenda. CSC340: Requirements Engineering. Course Objectives. Requirements Engineering. Software Engineering. What is Software Engineering?
Tonight s Agenda CSC340: Engineering Jennifer Campbell Lecturer Part 1 Introduction to course content Course information Changes to the SE courses/program Part 2 What are requirements? CSC340 University
More informationProject #1: Tracing, System Calls, and Processes
Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.
More informationCS3205: Task Analysis and Techniques
CS3205: Task Analysis and Techniques CS3205: Task Analysis and Techniques Readings (same as before): 1) ID-Book Chapter Establishing Requirements, Ch. 10 (Ch. 9 in course ebook) 2) Chapter 2 from Task-Centered
More informationCS 3110 Lecture 1 Course Overview
CS 3110 Lecture 1 Course Overview Ramin Zabih Cornell University CS Fall 2010 www.cs.cornell.edu/courses/cs3110 Course staff Professor: Ramin Zabih Graduate TA s: Joyce Chen, Brian Liu, Dane Wallinga Undergraduate
More informationCOS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University
COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions General Information Topics Assignments Project (briefly) Schedule Policies The Programming
More informationExtreme programming XP 6
Extreme programming XP 6 Planning Game 3 Planning Game Independent: Stories should be as independent as possible. When thinking of independence it is often easier to think of order independent. In other
More informationby Sam Bakker 3000in30days.com
by Sam Bakker 0 Contents PART 1 Introduction Who am I PART 2 Setup Domain Hosting Email Autoresponder Site Builder PART 3 Developing a Skill Introduction Learning From Other Marketers Udemy PART 4 PLR
More informationEECS 394. Software Development. Communicating. Chris Riesbeck
EECS 394 Software Development Chris Riesbeck Communicating 1 The Problem I never have a clue what the developers are talking about. When I ask what they're doing, they say they're XMLing the CSS SQL RSS
More informationUser-Centered Development
Software Lifecycle CS470 User-Centered Development User-centered development refers to a design process for creating a system that meets the needs of the user Users should be included in the design process
More informationIncremental Programming
Journal of Computer Science and Information Technology June 2015, Vol. 3, No. 1, pp. 35-41 ISSN: 2334-2366 (Print), 2334-2374 (Online) Copyright The Author(s). All Rights Reserved. Published by American
More informationAgile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process
Agile Accessibility Ensuring accessibility throughout the Agile development process Presenters: Andrew Nielson, CSM, PMP, MPA Ann Marie Davis, CSM, PMP, M. Ed. Cammie Truesdell, M. Ed. Overview What is
More informationAgile Development
Agile Development 12-04-2013 Many flavors: Waterfall, Spiral Rapid Application Development (DSDM) Xtreme Programming (XP, an agile methodology) Usability Engineering Model, Star Iteration is done throughout
More informationSoftware Development Methodologies
Software Development Methodologies Lecturer: Raman Ramsin Lecture 8 Agile Methodologies: XP 1 extreme Programming (XP) Developed by Beck in 1996. The first authentic XP book appeared in 1999, with a revised
More informationComputer Science Department
California State University, Dominguez Hills Computer Science Department Syllabus CS255 Dynamic Web Programming Dr. Jason Isaac Halasa Office Hours: MW 12:45-2:30 and 3:45-5:30 and by Appointment Office
More informationShift Left Testing: are you ready? Live Webinar, Sept 19
Shift Left Testing: are you ready? Live Webinar, Sept 19 Guy Arieli CTO, Experitest 01 What exactly is Shift Left? Agenda 02 03 How Shift Left affects application development & testing organizational structures
More informationIntroduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014
Introduction to User Stories CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014 1 Goals Present an introduction to the topic of user stories concepts and terminology benefits and limitations
More informationCOMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web
COMP 117: Internet Scale Distributed Systems (Spring 2018) COMP 117: Internet-scale Distributed Systems Lessons from the World Wide Web Noah Mendelsohn Tufts University Email: noah@cs.tufts.edu Web: http://www.cs.tufts.edu/~noah
More informationPractical Objects: Test Driven Software Development using JUnit
1999 McBreen.Consulting Practical Objects Test Driven Software Development using JUnit Pete McBreen, McBreen.Consulting petemcbreen@acm.org Test Driven Software Development??? The Unified Process is Use
More informationEECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan
EECS 282 Information Systems Design and Programming Atul Prakash Professor, Computer Science and Engineering University of Michigan 1 What is the Course About? A second programming course - but different
More informationSan José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018
San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 Course and Contact Information Instructor: Vidya Rangasayee Office Location: MH 213 Telephone:
More informationHTML/CSS Lesson Plans
HTML/CSS Lesson Plans Course Outline 8 lessons x 1 hour Class size: 15-25 students Age: 10-12 years Requirements Computer for each student (or pair) and a classroom projector Pencil and paper Internet
More informationBasic Web Application Development Spring credit hour Student Taught (Satisfactory/Unsatisfactory)
Basic Web Application Development Spring 2014 1 credit hour Student Taught (Satisfactory/Unsatisfactory) Matthew Schurr mschurr@rice.edu (404) 395-0511 Instructor Matthew Schurr Duncan College Class of
More informationIntroduction - SENG 330. Object-Oriented Analysis and Design
Introduction - SENG 330 Object-Oriented Analysis and Design SENG 330 Fall 2006 Instructor: Alex Thomo Email: thomo@cs.uvic.ca Office hours: Office Hours: TWF 12:30-1:30 p.m. Location: ECS 556 Objective:
More informationSan José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)
San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968) Course and Contact Information Instructor: Office Location: Vidya Rangasayee MH229
More informationCSCI 201L Syllabus Principles of Software Development Spring 2018
L Syllabus Principles of Software Development Spring 2018 Instructor: Jeffrey Miller, Ph.D. Email: jeffrey.miller@usc.edu Web Page: http://www-scf.usc.edu/~csci201 Office: SAL 342 Phone: 213-740-7129 Lectures:
More informationIntroduction to Programming System Design CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
More informationAdvanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University
Advanced Relational Database Management MISM Course S19-95736 A3 Spring 2019 Carnegie Mellon University Instructor: Randy Trzeciak Office: HBH 1104C Office hours: By Appointment Phone: 412-268-7040 E-mail:
More informationDilbert Scott Adams. CSc 233 Spring 2012
Dilbert Scott Adams CSc 233 Spring 2012 Dilbert Scott Adams CSc 233 Spring 2012 2 Dilbert Scott Adams CSc 233 Spring 2012 3 prerequisites CSc 233 Spring 2012 I thought we had agreed long ago that the Department
More informationCompiling Techniques
Lecture 1: Introduction 20 September 2016 Table of contents 1 2 3 Essential Facts Lecturer: (christophe.dubach@ed.ac.uk) Office hours: Thursdays 11am-12pm Textbook (not strictly required): Keith Cooper
More informationCSCI 1100L: Topics in Computing Spring 2018 Web Page Project 50 points
CSCI 1100L: Topics in Computing Spring 2018 Web Page Project 50 points Project Due (All lab sections): Check on elc Assignment Objectives: Lookup and correctly use HTML tags. Lookup and correctly use CSS
More informationAdditionally, if you are ing me please place the name of the course in the subject of the .
ADOBE DREAMWEAVER [Pick the date][type the sender company name] CE 9501C 01 9501N 01 SUMMER 2012 Course Information LOCATION: Terra 1223 DATES: TUES JUN 5 TUES AUG 7 6 9 PM Instructor Information Name:
More informationRuby on Rails Welcome. Using the exercise files
Ruby on Rails Welcome Welcome to Ruby on Rails Essential Training. In this course, we're going to learn the popular open source web development framework. We will walk through each part of the framework,
More informationCSC207 Week 3. Larry Zhang
CSC207 Week 3 Larry Zhang 1 Announcements Readings will be posted before the lecture Lab 1 marks available in your repo 1 point for creating the correct project. 1 point for creating the correct classes.
More informationCSci 5103 Operating Systems. Jon Weissman. Administrivia
CSci 5103 Operating Systems Jon Weissman Administrivia Greetings Welcome to CSci 5103! me: Jon Weissman, Professor CS office hours M 1-2pm, 4-225F KH or when I am around interests: distributed and parallel
More informationThe COS 333 Project. Robert M. Dondero, Ph.D. Princeton University
The COS 333 Project Robert M. Dondero, Ph.D. Princeton University 1 Overview A simulation of reality In groups of 3-5 people... Build a substantial three tier software system 2 Three-Tier Systems "Three
More informationCS193j Programming in Java
CS193j, Stanford Handout #1 Winter, 2001-02 Nick Parlante CS193j Programming in Java The Class CS193J is a "Java as a second language" course, designed to introduce a skilled C programmer to the object-oriented
More informationCourse Syllabus. Programming Language Paradigms. Spring - DIS Copenhagen. Semester & Location: Elective Course - 3 credits.
Course Syllabus Programming Language Paradigms Semester & Location: Type & Credits: Spring - DIS Copenhagen Elective Course - 3 credits Major Disciplines: Faculty Members: Computer Science, Mathematics
More informationCSCI 6312 Advanced Internet Programming
CSCI 6312 Advanced Internet Programming Section 01, Spring 2018, W, 5:55pm - 8:25pm Instructor: Emmett Tomai Office: ENGR 3.2100 Phone: 665-7229 Email: emmett.tomai@utrgv.edu Office hours: W 1 3pm, TR
More informationAGILE. Getting Started on Your Team. Davisbase. Copyright 2011 Davisbase LLC. Licensed for Classroom Use to ASPE for Webinar Use Only
AGILE Getting Started on Your Team Copyright 2011 LLC. Licensed for Classroom Use to ASPE for Webinar Use Only INTRO AND AGENDA Your Instructor: Christy Clement Agile Trainer and Coach Agenda: Picking
More informationCollaborative Events and Shared Artefacts
Collaborative Events and Shared Artefacts Agile Interaction Designers and Developers Working Toward Common Aims Judith Brown Gitte Lindgaard, Robert Biddle Department of Psychology and School of Computer
More informationCourse Syllabus. Course Information
Course Syllabus Course Information Course: MIS 6V99 Special Topics Programming for Data Science Section: 5U1 Term: Summer 2017 Meets: Friday, 6:00 pm to 10:00 pm, JSOM 2.106 Note: Beginning Fall 2017,
More informationCIS 3308 Web Application Programming Syllabus
CIS 3308 Web Application Programming Syllabus (Upper Level CS Elective) Course Description This course explores techniques that are used to design and implement web applications both server side and client
More informationEECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan
EECS 282 Information Systems Design and Programming Atul Prakash Professor, Computer Science and Engineering University of Michigan 1 What is the Course About? A second programming course - but different
More informationDocumentation and Deployment
Documentation and Deployment CS 370 SE Practicum, Cengiz Günay (Some slides courtesy of Eugene Agichtein and the Internets) I know what I learned this semester: CS 370, Günay (Emory) Documentation and
More informationCS 241 Data Organization. August 21, 2018
CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/
More informationSoftware Development Process Models
Software Development Process Models From classical notions to more agile approaches th@cs.toronto.edu, BA8134 Code & Fix or Cowboy Coding 1) Write program 2) Test and fix program Problems: program users
More informationJavaScript and MVC Frameworks FRONT-END ENGINEERING
FRONT-END ENGINEERING Introduction & History Introduction JavaScript is an incredible language to learn for anyone interested in getting into programming. It is the only programing language that can run
More informationCSE 332: Data Abstractions. Ruth Anderson Spring 2014 Lecture 1
CSE 332: Data Abstractions Ruth Anderson Spring 2014 Lecture 1 Welcome! We have 10 weeks to learn fundamental data structures and algorithms for organizing and processing information Classic data structures
More informationAdvanced Relational Database Management MISM Course F A Fall 2017 Carnegie Mellon University
Advanced Relational Database Management MISM Course F17-95736A Fall 2017 Carnegie Mellon University Instructor: Randy Trzeciak Office: HBH 1104C Office hours: By Appointment Phone: 412-268-7040 E-mail:
More informationWebinar Evaluation Criteria and Grading Rubric!
Webinar Evaluation Criteria and Grading Rubric I will use this rubric to score and provide feedback about your Webinar to you and your team. Recommendations 1. Practice, practice, practice Practice reduces
More information3D Graphics Programming Mira Costa High School - Class Syllabus,
3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and
More informationFull Stack Developer with Java
Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed
More informationCMPSC 311- Introduction to Systems Programming Module: Systems Programming
CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2013 Patrick McDaniel Professor of Computer Science and Engineering Co-head of Security Group
More informationTips from the experts: How to waste a lot of time on this assignment
Com S 227 Spring 2018 Assignment 1 100 points Due Date: Friday, September 14, 11:59 pm (midnight) Late deadline (25% penalty): Monday, September 17, 11:59 pm General information This assignment is to be
More informationSoftware Design and Analysis CSCI 2040
Software Design and Analysis CSCI 2040 http://data.science.uoit.ca -> Home -> Teaching -> Software Design and Analysis Software Design and Analysis CSCI 4030 2 Describe the goals. Define object-oriented
More informationCS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims
CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 1: Overview http://courses.cs.cornell.edu/cs2110 1 Course Staff Instructor Thorsten Joachims (tj@cs.cornell.edu)
More informationProgramming for Engineers in Python
Programming for Engineers in Python Lecture 13: Shit Happens Autumn 2011-12 1 Lecture 12: Highlights Dynamic programming Overlapping subproblems Optimal structure Memoization Fibonacci Evaluating trader
More informationWhile waiting for the lecture to begin, please complete. the initial course questionnaire.
SENG 475 & ECE 569A: Advanced Programming Techniques for Robust Efficient Computing (With C++) Michael Adams Department of Electrical and Computer Engineering University of Victoria Victoria, BC, Canada
More informationfeel free to poke around and change things. It's hard to break anything in a Moodle course, and even if you do it's usually easy to fix it.
Teacher s Manual Teacher Manual This page is a very quick guide to creating online courses with Moodle. It outlines the main functions that are available, as well as some of the main decisions you'll need
More informationCS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP. See also: Chapter 6. The Stagewise Model
CS193D Handout 15 Winter 2005/2006 February 8, 2006 Software Engineering Methodologies and XP See also: Chapter 6 The Stagewise Model The Waterfall Model The Spiral Method Extreme Beach Volleyball Programming
More informationIntroduction to Software Architecture. The top level... (and design revisited)
Introduction to Software Architecture The top level... (and design revisited) 1 What are we doing? System Software Architecture Top-level design software system architecture We use system architecture
More informationWEB DEVELOPER BLUEPRINT
WEB DEVELOPER BLUEPRINT HAVE A QUESTION? ASK! Read up on all the ways you can get help. CONFUSION IS GOOD :) Seriously, it s scientific fact. Read all about it! REMEMBER, YOU ARE NOT ALONE! Join your Skillcrush
More informationIMGD The Game Development Process: Intro to Programming
IMGD 1001 - The Game Development Process: Intro to Programming by Robert W. Lindeman (gogo@wpi.edu) Kent Quirk (kent_quirk@cognitoy.com) (with lots of input from Mark Claypool!) Exam Flow Functional Symmetry
More informationCS4470: Intro to UI Software CS6456: Principles of UI Software. Fall 2006 Keith Edwards
CS4470: Intro to UI Software CS6456: Principles of UI Software Fall 2006 Keith Edwards Today s Agenda Introductions Me TA You Class Overview Syllabus Resources Class Policies 2 Introductions Instructor
More informationHow Can a Tester Cope With the Fast Paced Iterative/Incremental Process?
How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of
More informationMicroservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer
Microservices Smaller is Better? Eberhard Wolff Freelance consultant & trainer http://ewolff.com Why Microservices? Why Microservices? Strong modularization Replaceability Small units Sustainable Development
More informationWelcome to Python! If you re the type of person who wants to know
In This Chapter The history of Python What people use Python for Chapter 1 Introducing Python Useful concepts for Python programming Welcome to Python! If you re the type of person who wants to know what
More informationLecture 1. Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering?
Lecture 1 Introduction to course, Welcome to Engineering, What is Programming and Why is this the first thing being covered in Engineering? Welcome to ENGR 102 Syllabus review Your Time Expectations (in
More informationCSE 504: Compiler Design
http://xkcd.com/303/ Compiler Design Course Organization CSE 504 1 / 20 CSE 504: Compiler Design http://www.cs.stonybrook.edu/~cse504/ Mon., Wed. 2:30pm 3:50pm Harriman Hall 116 C. R. Ramakrishnan e-mail:
More informationPrinciples of Programming Languages. Lecture Outline
Principles of Programming Languages CS 492 Lecture 1 Based on Notes by William Albritton 1 Lecture Outline Reasons for studying concepts of programming languages Programming domains Language evaluation
More informationWelcome to CS120 Fall 2012
Welcome to CS120 Fall 2012 John Magee (jmagee@clarku.edu) 1 Welcome to CS120 Computing is ubiquitous Daily life, news, ecommerce Sciences and engineering fields Social sciences, humanity, Arts, music,
More informationAnnouncements. This week is about your term project. Meet in person, more than once. Paper prototype
Announcements This week is about your term project. Meet in person, more than once. Paper prototype John Jannotti (cs32) User Interfaces Mar 15, 2018 1 / 27 User Interfaces John Jannotti /course/cs0320/www/docs/lectures/
More informationCS 253: Intro to Systems Programming 1/21
1/21 Topics Intro to Team-Based Learning (TBL) Syllabus and class logistics What is Systems? 2/21 Team-Based Learning Evidence-based instructional practice proven to increase student motivation and comprehension.
More informationCase Study: Dodging the Pitfalls of Enterprise Ajax Applications
www.thinwire.com Case Study: Dodging the Pitfalls of Enterprise Ajax Applications A Quick Introduction: Joshua Gertzen Lead Architect of the ThinWire Ajax RIA Framework Core Technology Architect for CCS
More information