An Introduction to Computer Science with Java, Python and C++ Community College of Philadelphia Edition

Total Page:16

File Type:pdf, Size:1020Kb

An Introduction to Computer Science with Java, Python and C++ Community College of Philadelphia Edition An Introduction to Computer Science with Java, Python and C++ Community College of Philadelphia edition Copyright 2017 by C.W. Herbert, all rights reserved. Last edited August 28, 2017 by C. W. Herbert This document is a draft of a chapter from An Introduction to Computer Science with Java, Python and C++, written by Charles Herbert. It is available free of charge for students in Computer Science courses at Community College of Philadelphia during the Fall 2017 semester. It may not be reproduced or distributed for any other purposes without proper prior permission. Please report any typos, other errors, or suggestions for improving the text to [email protected] 01010000 01111001 01110100 01101000 01101111 01101110 01001010 01100001 01110110 01100001 01000011 00101011 00101011 Chapter 1 – Introduction Contents About the Course .......................................................................................................................................... 2 Course Materials and Instructors.................................................................................................................. 3 Chapter 1 – Introduction ............................................................................................................................... 5 Learning Outcomes ....................................................................................................................................... 5 Computing and Computer Science ................................................................................... 6 The Computer Science Accreditation Board ........................................................................................... 10 Computer Science Specializations .......................................................................................................... 11 Algorithms and Objects ................................................................................................... 12 Programming Languages ................................................................................................. 14 The Python Programming Language ............................................................................... 37 Lab 1 – Getting Started with Python ....................................................................................................... 41 Key Terms in Chapter 1 ........................................................................................................................... 47 Chapter 1 - Questions ............................................................................................................................. 48 Chapter 1 - Exercises ............................................................................................................................... 49 Intro to CSCI with Java, Python, and C++ Chapter 1 page 2 About the Course Welcome to Computer Science 111. This course, along with Computer Science 112, provides students with a solid foundation in computer programming and algorithm development, as well as associated topics from Computer Science. This course is a first course in programming for Computer Science majors and students in related majors, such as Computer Information Systems, Mathematics, Science, or Engineering. Computer Science 111 and 112 use three of the most popular computer programming languages available today: Python, Java and C++. However, many of the topics covered in this course are language independent -- such as Boolean logic, or algorithmic efficiency. Students who successfully complete the two courses should be proficient in the use of all three languages and should have sufficient experience and knowledge of programming topics and techniques to succeed independently in learning to use other programming languages. The key to success in this course is to keep up with the course material each week and to spend an appropriate amount of time each week working on course material. This is especially true for online students, who must have the discipline to allocate enough time to complete all of the coursework. Courses at Community College of Philadelphia are based on a standard 15-week semester – with 14 weeks of instruction and a week for final exams. Computer Science 111 is a 4-3-2 course, which means it is a four-credit course with each week of the course in a standard semester requiring three hours of instruction and an additional two hours to work on programming or research exercises – as well as time to complete out-of-class (homework) assignments. During shorter semesters, more time needs to be spent each week to cover the course material. For example, in a 7-week Summer semester, twice as much time must be spent each week to cover the same material as in a traditional semester’s 14 weeks of instruction. The course is primarily intended for students who wish to transfer to baccalaureate programs in Computer Science, Software Engineering, or related disciplines. The course is also a practical one, in which students will develop a set of marketable skills. The course material is relatively well-defined. It is based on the content described by the Pennsylvania Statewide Program-to-Program (P2P) Articulation Agreement in Computer Science1. These requirements are, in turn, based on requirements of the Computer Science Accreditation Board2, the professional agency responsible for accrediting baccalaureate programs in Computer Science. The content of this course is in line with state, national, and international guidelines for what should be taught in Computer Science courses and programs. 1 The agreement is available online at: http://patrac.org/Portals/6/PAFiles/PATRAC_P2P_COMPUTER_SCIENCE_Apr11_2012_rev.pdf 2 On the Web at: http://www.csab.org Intro to CSCI with Java, Python, and C++ Chapter 1 page 3 Course Materials and Instructors The course material is composed of a series of chapters with reading material, sample software, programming exercises, programing assignments, research assignments, and class discussions as appropriate for each topic. Your instructor will decode which chapters to include in the course and which exercises need to be completed for each chapter. Core lessons in programming build upon one another, so they should be completed in order. Associated topics – such as the history of programming – can be included as your instructor deems appropriate. All course material is available free of charge for students enrolled in the course at Community College of Philadelphia. It includes a combination of instructor-generated material, freely available online learning material, and freely available programming tools – including language compilers and interpreters and IDEs – Integrated Development Environments used for software development. All course material, including instructor-generated materials, are of a professional quality. The principal author, C.W. Herbert, has written text books and teaching materials for Course Technology, Cengage, Prentice Hall, Pearson, and others. He has degrees in Education, Mathematics, and Computer Science and has been teaching Computer Science and working as a consultant and professional software developer for more than 35 years. Each instructor for Computer Science 111 is a professional educator, with significant teaching experience and a degree in Computer Science, or in a closely related field with significant coursework in Computer Science. The IDEs chosen for use in CSCI 111,112 and 211 are among the most widely used by professional software developers. They include Python 3 and IDLE from the Python Software Foundation, the NetBeans IDE and Java compiler from the Oracle Corporation, and the CODE::Blocks IDE with GCC C++ from The Code::Blocks Team and the GNU Project. Please remember: We are here to begin to learn to become professional software developers who can contribute to large-scale software development projects and computer science research. We are not here to learn to build simple software, nor to learn to use quick and easy software development tools. Course materials were created with this in mind. The software languages and development tools chosen for the course were developed with this in mind. The use of formal software development techniques may seem like overkill for small projects, but we trying to develop professional habits. Course materials were written, and software development tools were chosen for the course, with cross- platform computing in mind. The software development tools chosen for the course can be used with Windows, macOS3, or Linux systems. As much as possible, all coursework can be completed using Windows, macOS, or Linux systems, and software developed for the course can be run on Windows, macOS, or Linux systems. 3 macOS is the new name for Apple’s operating system previously known as OS X. Intro to CSCI with Java, Python, and C++ Chapter 1 page 4 There are two aspects of Computer Science – things that don’t change and things that change all the time. Technology changes. The latest, greatest way to do something today will someday be old fashioned – maybe as soon as tomorrow. The fundamental math and logic underlying technology does not change. It is constant. The goal of Computer Science educators is to give students a firm foundation in those aspects of computing that are constant, and to enable them to deal with the aspects of computing that constantly change. As you study Computer Science, it helps to keep this in mind and to see how each thing you learn fits into these two realms of understanding. It also helps
Recommended publications
  • Rubyperf.Pdf
    Ruby Performance. Tips, Tricks & Hacks Who am I? • Ezra Zygmuntowicz (zig-mun-tuv-itch) • Rubyist for 4 years • Engine Yard Founder and Architect • Blog: http://brainspl.at Ruby is Slow Ruby is Slow?!? Well, yes and no. The Ruby Performance Dichotomy Framework Code VS Application Code Benchmarking: The only way to really know performance characteristics Profiling: Measure don’t guess. ruby-prof What is all this good for in real life? Merb Merb Like most useful code it started as a hack, Merb == Mongrel + Erb • No cgi.rb !! • Clean room implementation of ActionPack • Thread Safe with configurable Mutex Locks • Rails compatible REST routing • No Magic( well less anyway ;) • Did I mention no cgi.rb? • Fast! On average 2-4 times faster than rails Design Goals • Small core framework for the VC in MVC • ORM agnostic, use ActiveRecord, Sequel, DataMapper or roll your own db access. • Prefer simple code over magic code • Keep the stack traces short( I’m looking at you alias_method_chain) • Thread safe, reentrant code Merb Hello World No code is faster then no code • Simplicity and clarity trumps magic every time. • When in doubt leave it out. • Core framework to stay small and simple and easy to extend without gross hacks • Prefer plugins for non core functionality • Plugins can be gems Key Differences • No auto-render. The return value of your controller actions is what gets returned to client • Merb’s render method just returns a string, allowing for multiple renders and more flexibility • PartController’s allow for encapsualted applets without big performance cost Why not work on Rails instead of making a new framework? • Originally I was trying to optimize Rails and make it more thread safe.
    [Show full text]
  • Deploying with Jruby Is the Definitive Text on Getting Jruby Applications up and Running
    Early Praise for Deploying JRuby Deploying with JRuby is the definitive text on getting JRuby applications up and running. Joe has pulled together a great collection of deployment knowledge, and the JRuby story is much stronger as a result. ➤ Charles Oliver Nutter JRuby Core team member and coauthor, Using JRuby Deploying with JRuby answers all of the most frequently asked questions regarding real-world use of JRuby that I have seen, including many we were not able to answer in Using JRuby. Whether you’re coming to JRuby from Ruby or Java, Joe fills in all the gaps you’ll need to deploy JRuby with confidence. ➤ Nick Sieger JRuby Core team member and coauthor, Using JRuby This book is an excellent guide to navigating the various JRuby deployment op- tions. Joe is fair in his assessment of these technologies and describes a clear path for getting your Ruby application up and running on the JVM. ➤ Bob McWhirter TorqueBox team lead at Red Hat Essential reading to learn not only how to deploy web applications on JRuby but also why. ➤ David Calavera Creator of Trinidad Deploying with JRuby is a must-read for anyone interested in production JRuby deployments. The book walks through the major deployment strategies by providing easy-to-follow examples that help the reader take full advantage of the JRuby servers while avoiding the common pitfalls of migrating an application to JRuby. ➤ Ben Browning TorqueBox developer at Red Hat Deploying with JRuby is an invaluable resource for anyone planning on using JRuby for web-based development. For those who have never used JRuby, Joe clearly presents its many advantages and few disadvantages in comparison to MRI.
    [Show full text]
  • Jruby: Ruby for the Java Platform
    JRuby: Ruby for the Java Platform Charles Oliver Nutter Thomas Enebo 1 Introductions: Who are we? • Charles Oliver Nutter - [email protected] • Thomas Enebo - [email protected] • Engineers at Sun, JRuby core developers • 10+ years Java experience each > Also C/C++, Win32, C#, .NET, JavaME/CLDC, Perl, LiteStep, JINI, JavaEE • Working to make Ruby a first-class JVM language • Working to make JVM a better home for dynlangs 2 Agenda • Introduction to JRuby • IRB Demo • JRuby on Rails • Simple JRuby on Rails Demo • Conclusion and Q/A 3 What Is JRuby • Started in 2002 • Ruby for the Java Platform • Open source, GPL/LGPL/CPL • Ruby 1.8.5 compatible • Easy integration with Java > Ruby can call Java, Java can call Ruby • JRuby Extras project > ActiveRecord-JDBC, GoldSpike, Mongrel... 4 JRuby 1.0 Released! • Ready for production use • Very good compatibility with Ruby 1.8.5 • ThoughtWorks offers commercial support for JRuby • Try it today! 5 Why Ruby Users Would Want JRuby • Performance improving day by day • Better scalability with native threading • Compilation to Java bytecode • Integration with Java libraries • Easier path to enterprise Ruby 6 JRuby is fast (Java 6 Server VM) ~/work/jruby $ jruby SERVER bench_fib_recursive.rb 2.071000 0.000000 2.071000 ( 2.070000) 1.234000 0.000000 1.234000 ( 1.234000) 1.372000 0.000000 1.372000 ( 1.373000) 1.372000 0.000000 1.372000 ( 1.372000) ~/work/jruby $ ruby -v ruby 1.8.5 (2006-12-25 patchlevel 12) [i686-darwin8.8.1] ~/work/jruby $ ruby bench_fib_recursive.rb 1.670000 0.010000 1.680000 ( 1.680365) 1.660000 0.010000 1.670000 ( 1.675206) ..
    [Show full text]
  • Introducing Ruby 2.5: a Full List of Additions and Updates Table of Contents
    Introducing Ruby 2.5: A Full List of Additions and Updates Table of Contents Introduction 3 New Feature in Hash: slice 6 New Feature in Hash: transform_keys 6 Keyword arguments on Struct.new 6 Pattern argument on Enumerable methods 8 Rescue on blocks 9 Top-level constant look-up is removed 10 New Feature in Pathname: glob 11 New Feature in Dir: children and each_child 11 New Feature on Kernel: yield_self 12 Backtrace and error message 12 pp.rb is automatically loaded 12 New Feature in String: delete_prefix and delete_suffix 13 New Feature in Array: append and prepend 14 Introducing Ruby 2.5: A Full List of Additions and Updates 2 Table of Contents New Feature in KeyError: receiver and key 15 New class: FrozenError 16 New Feature in ERB: result_with_hash 17 New Feature in SecureRandom: alphanumeric 18 New Feature in Set: to_s , === 18 New Feature in Set: reset 19 New Feature in File: lutime 20 Rubygems updated to 2.7.3 21 Gemification of standard 12 ubygems.rb removed from stdlib 22 Global VM Lock enhancements 22 Ruby OpenSSL is upgraded to 2.1 22 Conclusion 23 Introducing Ruby 2.5: A Full List of Additions and Updates 3 After more than 20 years, Ruby continues to grow, thanks to a strong open source community and the fact that more businesses are deploying business-critical web applications built on Ruby. The most recent version, Ruby 2.5, was released on Christmas Day in 2017, and offers a number of new features, many of which are outlined in this e-book.
    [Show full text]
  • The Ruby Way: Solutions and Techniques in Ruby Programming
    Praise for The Ruby Way, Third Edition “Sticking to its tried and tested formula of cutting right to the techniques the modern day Rubyist needs to know, the latest edition of The Ruby Way keeps its strong reputation going for the latest generation of the Ruby language.” Peter Cooper Editor of Ruby Weekly “The authors’ excellent work and meticulous attention to detail continues in this lat- est update; this book remains an outstanding reference for the beginning Ruby pro- grammer—as well as the seasoned developer who needs a quick refresh on Ruby. Highly recommended for anyone interested in Ruby programming.” Kelvin Meeks Enterprise Architect Praise for Previous Editions of The Ruby Way “Among other things, this book excels at explaining metaprogramming, one of the most interesting aspects of Ruby. Many of the early ideas for Rails were inspired by the first edition, especially what is now Chapter 11. It puts you on a rollercoaster ride between ‘How could I use this?’ and ‘This is so cool!’ Once you get on that roller- coaster, there’s no turning back.” David Heinemeier Hansson Creator of Ruby on Rails, Founder at Basecamp “The appearance of the second edition of this classic book is an exciting event for Rubyists—and for lovers of superb technical writing in general. Hal Fulton brings a lively erudition and an engaging, lucid style to bear on a thorough and meticulously exact exposition of Ruby. You palpably feel the presence of a teacher who knows a tremendous amount and really wants to help you know it too.” David Alan Black Author of The Well-Grounded Rubyist “This is an excellent resource for gaining insight into how and why Ruby works.
    [Show full text]
  • Linh Chau Enterprise Software Architect
    Linh Chau Enterprise Software Architect/Senior Software Engineer Current Location: Austin, TX Email: [email protected] Personal public code repository: https://bitbucket.org/linhchauatl/ PROFESSIONAL QUALIFICATIONS • Twenty three years working experience as Software Developer (three years in Asia, two years in Germany and eighteen years in the United States). • Eighteen years experience of team work and leadership with local and distributed groups in Germany, United States, Japan, France, China, etc. • Eighteen years of intensive experience in configuration management, source code control, version configuration. • Twenty one years experience of Software development using OO methodologies, OOA, OOD, Design Patterns, UML visual design with Rational Rose, Agile, XP. • Good communication skills, both written and verbal. • Sixteen years experience with Enterprise Production Systems (PDM, PLM, CRM, and ERP) written in Java and Ruby. SKILLS: Operating Systems Mac OS X, iOS, Linux (RedHat, CentOS, Ubuntu, Mint) Languages Ruby, C++, C, Java, Go, Elixir, Rust, javascript UI Technologies HTML, CSS, HAML, ERB, Slim, Ajax, jQuery, ReactJS Frameworks Rails, Sinatra Web servers & App Apache, Nginx, Unicorn, Puma, Passenger, Mongrel, lighttpd, Tomcat, servers JRun, WebLogic, WebSphere, JBoss Databases MySQL, PostgreSQL, MongoDB, Oracle, DynamoDB, SQL Server Methodology Agile, Scrum, BDD, TDD, RUP, XP (Extreme Programming), OOAD, Design Patterns Tools & Utilities Git, docker, AWS services (EC2, S3, ELB, RDS, DynamoDB, ASG, Route53, SQS, SNS …etc…),
    [Show full text]
  • Licensing Information User Manual for Peoplesoft Campus Solutions 9.2 (Through Update Image 20)
    Licensing Information User Manual for PeopleSoft Campus Solutions 9.2 (through Update Image 20) April 2021 Licensing Information User Manual for PeopleSoft Campus Solutions 9.2 (through Update Image 20) Copyright © 1988, 2021, Oracle and/or its affiliates. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or “commercial computer software documentation” pursuant
    [Show full text]
  • Security Goodness with Ruby on Rails SOURCE BARCELONA 16Th November 2011
    Daniel Peláez [email protected] Security Goodness with Ruby On Rails SOURCE BARCELONA 16th November 2011 ©2011 Gotham Digital Science, Ltd AGENDA • Who Am I? • Brief Introduction to Rails • How Secure is Ruby On Rails? • Auditing Applications • Building Secure Rails WebSites Best practices, tools, security APIs. How to identify and fix common vulnerabilities. - 2 - WHO AM I? IT Security Consultant at Gotham Digital Science (GDS) o Another crazy Spaniard who recently moved to London o I have some experience with Rails & also with Security: • Pentests • Source Code Reviews • Consulting • Blablabla :) - 3 - ABOUT GDS o Gotham Digital Science (GDS) is an international security services company specializing in Application and Network Infrastructure security, and Information Security Risk Management. GDS clients number among the largest financial services institutions and software development companies in the world. o Offices in London and New York City - 4 - ABOUT GDS o Tools & Papers: o Padbuster, Blazentoo, GwtEnum … etc o Publications with GDS Contributing Authors: - 5 - Overview of what is Rails BRIEF INTRODUCTION SECURITY GOODNESS WITH RUBY ON RAILS - 6 - BRIEF INTRODUCTION TO RAILS www.rubyonrails.org - 7 - BRIEF INTRODUCTION TO RAILS • WebSite Industries - 8 - BRIEF INTRODUCTION TO RAILS • Who uses Rails? . Twitter (In the early days) . Hulu . Groupon . Zendesk . Linkedin . YellowPages . Github . OneHub . Basecamp . Jobster . SlideShare . Heroku . Funny or Die . Rackspace . Scribd . Engine Yard . CrunchBase . Shopify - 9 - BRIEF
    [Show full text]
  • “Computing” Requirements for Open Source Software: a Distributed Cognitive Approach
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by AIS Electronic Library (AISeL) Journal of the Association for Information Systems (2018) 19(12), 1217-1252 doi: 10.17705/1jais.00525 RESEARCH PAPER ISSN 1536-9323 “Computing” Requirements for Open Source Software: A Distributed Cognitive Approach Xuan Xiao1, Aron Lindberg2, Sean Hansen3, Kalle Lyytinen4 1Guangzhou University, China, [email protected] 2Stevens Institute of Technology, U.S.A., [email protected] 3Rochester Institute of Technology, U.S.A., [email protected] 4Case Western Reserve University, U.S.A., [email protected] Abstract Most requirements engineering (RE) research has been conducted in the context of structured and agile software development. Software, however, is increasingly developed in open source software (OSS) forms which have several unique characteristics. In this study, we approach OSS RE as a sociotechnical, distributed cognitive process where distributed actors “compute” requirements— i.e., transform requirements-related knowledge into forms that foster a shared understanding of what the software is going to do and how it can be implemented. Such computation takes place through social sharing of knowledge and the use of heterogeneous artifacts. To illustrate the value of this approach, we conduct a case study of a popular OSS project, Rubinius—a runtime environment for the Ruby programming language—and identify ways in which cognitive workload associated with RE becomes distributed socially, structurally, and temporally across actors and artifacts. We generalize our observations into an analytic framework of OSS RE, which delineates three stages of requirements computation: excavation, instantiation, and testing-in-the-wild.
    [Show full text]
  • Ecosystems in Github and a Method for Ecosystem Identification Using
    Ecosystems in GitHub and a Method for Ecosystem Identification using Reference Coupling Kelly Blincoe, Francis Harrison and Daniela Damian Software Engineering Global InterAction Lab University of Victoria Victoria, BC, Canada Email: [email protected], [email protected], [email protected] Abstract—Software projects are not developed in isolation. To identify technical dependencies, we turn to cross- Recent research has shifted to studying software ecosystems, references on GitHub, a social code hosting service. GitHub communities of projects that depend on each other and are encourages collaboration between users both within and across developed together. However, identifying technical dependencies at the ecosystem level can be challenging. In this paper, we projects through its transparent interface and built-in social 1 propose a new method, known as reference coupling, for detecting features. With GitHub Flavored Markdown , when a user technical dependencies between projects. The method establishes cross-references another repository in a pull request, issue or dependencies through user-specified cross-references between commit comment a link to the other repository is automati- projects. We use our method to identify ecosystems in GitHub- cally created. This introduces a way for developers to bring hosted projects, and we identify several characteristics of the identified ecosystems. We find that most ecosystems are centered awareness across repositories. In this paper, we investigate around one project and are interconnected with other ecosystems. whether these cross-references indicate a technical dependency The predominant type of ecosystems are those that develop between the two repositories by examining a set of these tools to support software development. We also found that the cross-references.
    [Show full text]
  • Why's (Poignant) Guide to Ruby
    1. About this Book 2. Kon’nichi wa, Ruby 1. Opening This Book Pretend that you’ve opened this book (although you probably have opened this book), just to find a huge onion right in the middle crease of the book. (The manufacturer of the book has included the onion at my request.) So you’re like, “Wow, this book comes with an onion!” (Even if you don’t particularly like onions, I’m sure you can appreciate the logistics of shipping any sort of produce discreetly inside of an alleged programming manual.) Then you ask yourself, “Wait a minute. I thought this was a book on Ruby, the incredible new programming language from Japan. And although I can appreciate the logistics of shipping any sort of produce discreetly inside of an alleged programming manual: Why an onion? What am I supposed to do with it?” No. Please don’t puzzle over it. You don’t need to do anything with the onion. Set the onion aside and let it do something with you. I’ll be straight with you. I want you to cry. To weep. To whimper sweetly. This book is a poignant guide to Ruby. That means code so beautiful that tears are shed. That means gallant tales and somber truths that have you waking up the next morning in the arms of this book. Hugging it tightly to you all the day long. If necessary, fashion a makeshift hip holster for Why’s (Poignant) Guide to Ruby, so you can always have this book’s tender companionship.
    [Show full text]
  • Samuel Tesla Automation Developer Engine Yard [email protected] What Is Git? Version Control System
    DVCS and Git Samuel Tesla Automation Developer Engine Yard [email protected] What is Git? Version Control System • RCS • CVS • Subversion • Perforce • VSS • Vault Distributed Version Control System • Mercurial (hg) • Bazaar (bzr) • Git • Monticello • Darcs Subversion • Centralized repository is a single point of failure. • The repository is the only place where history is stored. • Working copies are just a snapshot. • Cannot commit offline. Git • There are only repositories. • Your “working copy” is a complete repository. • Commits are made locally. • Changes are pushed to or pulled from other repositories. • Commits can be made offline. Your Your Private Public Repo You Push Repo You Pull They Pull Their They Push Their Public Private Repo Repo Two Person Example Why use Git? Peer Pressure • Linux • KDE • Wine • Ruby on Rails • Merb • Rubinius Scalability • No central repository means no single bottleneck. • The pull model eliminates the need for a committers list, and all the politics that go with it. • The trust model is much more scalable. Safety • Every copy of the repository has a complete copy of the history. • Git uses cryptographic hashes to prove that the content you get out is the same content you put in. • You do not have to grant access to your repository to anybody. Convenience • Git is ultimately configurable. • Git can be used offline. • Branches can be made locally to manage changes. • Git is fast. • Git merges very well. Demonstration Resources • http://git.or.cz/ • http://github.com/ • http://www.selenic.com/mercurial/wiki/ • http://bazaar-vcs.org/ • http://darcs.net/ Questions?.
    [Show full text]