Computer Science 162 Section 1 CS162 Teaching Staff.

Slides:



Advertisements
Similar presentations
Engineering Adventures: Educator Workshop. By the end of this workshop, you will… Know what it feels like to engineer Understand what it means to lead.
Advertisements

Microsoft Virtualization Last Update Copyright 2011 Kenneth M. Chipps Ph.D.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
VoipNow Core Solution capabilities and business value.
Tietojärjestelmien peruskurssi Software engineering Malin Brännback.
1 RUP Workshop By George Merguerian Senior Partner Business Management Consultants
Team Wolf Distributed, Consistent and Secure USB Storage Final Project Review Eddie Lai Matt Dube Sean Busch Zhou Zheng.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Operating Systems and Systems Programming CS162 Teaching Staff.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
1 CMPT 275 Software Engineering Revision Control.
MCTS Guide to Microsoft Windows Server 2008 Network Infrastructure Configuration Chapter 7 Configuring File Services in Windows Server 2008.
CSE 486/586 CSE 486/586 Distributed Systems PA Best Practices Steve Ko Computer Sciences and Engineering University at Buffalo.
STRATEGIES INVOLVED IN REMOTE COMPUTATION
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Software Development © 2014 wheresjenny.com Software Development.
Introduction to Version Control
COMP Introduction to Programming Yi Hong May 13, 2015.
CS 162 Discussion Section Week 1 (9/9 – 9/13) 1. Who am I? Kevin Klues Office Hours:
 What is an operating system? What is an operating system?  Where does the OS fit in? Where does the OS fit in?  Services provided by an OS Services.
1 CMPT 471 Networking II DHCP Failover and multiple servers © Janice Regan,
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Distributed Systems: Concepts and Design Chapter 1 Pages
Object-Oriented Software Engineering Using UNIX groups and Subversion Estimated Time: minutes “Unix is user-friendly. It's just very selective about.
Program Development Life Cycle (PDLC)
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
Catie Welsh January 10, 2011 MWF 1-1:50 pm Sitterson 014.
Requirements and Software Development Charles Calkins Principal Software Engineer Object Computing, Inc.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Types of Operating Systems
CS 111 – Nov. 22 Chapter 7 Software engineering Systems analysis Commitment –Please read Section 7.4 (only pp ), Sections –Homework #2.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
Operating Systems and Systems Programming CS162 Teaching Staff.
A Simple Introduction to Git: a distributed version-control system CS 5010 Program Design Paradigms “Bootcamp” Lesson 0.5 © Mitchell Wand, This.
CS 162 Discussion Section Week 2 (9/16 – 9/20). Who am I? Kevin Klues Office Hours:
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Types of Operating Systems 1 Computer Engineering Department Distributed Systems Course Assoc. Prof. Dr. Ahmet Sayar Kocaeli University - Fall 2015.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Version Control and SVN ECE 297. Why Do We Need Version Control?
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CS223: Software Engineering Lecture 16: The Agile Methodology.
What is ? ●It is a Halton District School Board term ●It is HDSB use of Google Apps for education. It includes: ■ Google Docs ■ Google Drive ■ Google Applications.
Alex Chee Daniel LaBare Mike Oster John Spann Bryan Unbangluang Collaborative Document Sharing In Conjunction With.
1 Sean Aluoto Anthony Keeley Eric Werner. 2 Project Plan Overview Project Lifecycle model Time line Deliverables Organization plan Risk management Design.
Core and Framework DIRAC Workshop October Marseille.
Software Design and Development Development Methodoligies Computing Science.
Business System Development
Netscape Application Server
Building Distributed Educational Applications using P2P
Sample Wiki Comments?.
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Chapter 4: Multithreaded Programming
Pole 3 – Dashboard Assessment COD 20 - Helsinki
Operating Systems and Systems Programming
AWS DevOps Engineer - Professional dumps.html Exam Code Exam Name.
Get Amazon AWS-DevOps-Engineer-Professional Exam Real Questions - Amazon AWS-DevOps-Engineer-Professional Dumps Realexamdumps.com
Unit 27: Network Operating Systems
Continuous Performance Engineering
What is an Architecture?
Lecture 1: Multi-tier Architecture Overview
What is an Architecture?
Project Iterations.
Presentation transcript:

Computer Science 162 Section 1 CS162 Teaching Staff

Welcome Computer systems are exciting! Thousands of engineers in industry building huge systems at scale You get to make real stuff that people can use

Projects Overview Goals of projects: – Learn to work in teams – Use good engineering practices Requirements specification Design Document Implementation Testing [Performance, reliability,...] analysis – Understand lecture concepts at the implementation level Your TA will be your guide through this process

A Good Project Lifetime Day 0: Project released on course webpage Day 1-13: Team meets, discusses and breaks up work on design and necessary prototyping Day 14: Final design document due – Team reviews the document with the TA Day 15: Implementation begins Day 20: Implementation is finished. Team switches to writing test cases. Design doc has been updated to reflect the implementation. Day 21: Iteration and performance analysis. Day 23: Team puts finishing touches on writeup and gets to bed early.

Way to Not have fun Day 0: Project design Day 13: Oops, we were busy. Throw something together and meet with the TA. Day 14: Your TA is “concerned” in your design review. Day 21: The l33t hacker in your group makes a pass on the implementation. It mostly works. Day 22: Someone else fixes some bugs Day 24: Run out of time debugging; don’t make it to analysis or updating design.

DB Clients Admission Control Admission Control Chat Group Manager Chat Group Manager User Manager User Manager Chat Group Pool Project 1 Project 4Project 3 + Security Load Balancer Distribute chat groups across machines Synchronization/caching Project 2

Project 1: Concurrency Topic: concurrency – People have wildly different experience with this – Most people cannot write correct concurrent code That’s just a fact, sorry Individual portion – Questions about POSIX API – Solve a toy synchronization problem Group portion – Design and implement the core of a parallel chat server – Define users, groups, messages – Implement message delivery respecting the desired semantics – Test your work

Project 2: Network Communication Allow clients to connect over the network – Design the protocol state machine Connection and assignment to thread Admission control and authentication Steady state Disconnection – Always “have an answer” – deal with failure – it can occur ANYWHERE in the protocol Implement most of a server, and just enough of a client to fit the testing harness

Project 3: Cloud Technologies Deploy your chat server on an EC2 instance Add user authentication and logging via MySQL Add offline message support This might be a “catch up” assignment if you have fallen behind: you will need your codebase to be relatively stable before working on #4.

Project 4: Distributed Systems Make your system scale by allowing your system to run on multiple servers Design and test a failure protocol for your chat server – This is tricky Evaluate your design using appropriate metrics and tools. – Are there any performance anomalies? Try to explain them and fix the bottlenecks – Make sure you drive your system off a cliff

Optional Extra Credit Can be added to any of assignment 2, 3, and 4 – Not worth all that much, we’re still working it out File transfer Management console Additional desktop client support Connection encryption Something else fun...

Tools You will use appropriate tools – Revision control: svn, git, etc. – Build systems: make – Test harness: (we will provide) In some cases we will ask you to implement to our interfaces so we can autotest your work – Feel free to use other tools you find useful static analysis debuggers ci tools etc... You could also consider using a software engineering methodology to structure your work, e.g. agile development; only if it helps you.

Questions about Projects?