Building Java Programs 3rd Edition Exercise Solutions Stamford
Enter, save, compile and run Listing 1.2. We will explore additional online resources including the student material available for the classroom textbook. During this year we will be using instructional videos, PowerPoint presentations, YouTube, online lab programming assignments, posters created by Mr. Connally (including Classes, syntax, key words, etc.), groups activities designed to reinforce lesson concepts, team competitions, textbook reading assignments (see sidebar on right side of this webpage), online PDF presentations (e.g.
) as well as direct instruction where appropriate or needed.
Learn To Code Learn To Code Resources for budding developers Introduction to Programming Curated list of resources for budding developers Table of contents • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Introduction Goals Programming and computer science are becoming more popular than ever – major initiatives like the are popularizing learning programming across the world. As a consequence, there are an increasingly huge number of resources and tutorials being produced for beginners who want to learn to code, ranging from books to online tutorials to interactive websites to massive open online courses (MOOCS) like and. While this is great, it can also be overwhelming for beginners – there are almost too many resources available, and it’s difficult to figure out where to start. This page is meant to help solve that problem – to present a curated list of resources for people who are either new to programming, new to a particular topic, or want to advance their skills past the beginner stage. This page doesn’t try and list every single resource available, but instead links to resources that are guaranteed to be high-quality.
Download Cracking the SSAT & ISEE, 2018 Edition: All the Strategies, Practice, and Review You Need to Help Get a Higher Score (Private Test Preparation) online Download Crime and the Media: Headlines vs. Reality ebook Download Culturally Responsive Teaching and The Brain: Promoting Authentic Engagement. Building Java Programs, 3rd Edition Self-Check Solutions. Using our Exercises or Programming. About messy formatting // of Java programs.
Where do I start? If you know what you want to learn about, great! Jump to that section, start browsing the links, and find something which works for you.
If you’re not sure where to start and which language to learn, some good beginner languages are: • (general-purpose; scientific and mathematical computing) • (general-purpose; Android development) • (websites and webapps) • (for younger children) Python and Java are both languages that are to teach programming to beginners in schools and universities, and there are a wide variety of resources available to help you learn. They’re also widely used in the industry which makes them useful languages to have in your toolbelt. Web development has been very popular lately, so there are many resources for learning HTML, CSS, and JavaScript, also making it suitable for learning. It requires little to no installation and configuration on your computer. All you need is a text editor to write code – the code will run on your web browser.
Is a little different from other languages. It was designed from the ground up to be easy to use and learn – instead of typing text, you drag and connect together “blocks” to form programs, making it a very visual language. As a result, Scratch is a good language especially for younger children (elementary schoolers, middle school) or for people who dislike typing. How this page is organized This page is subdivided into three parts – first, a “General resources” section that links to sites that tend to deliver high-quality content about a variety of topics, and a “Specific resources” section that provides resources on specific programming languages or topics. In general, most resources available will fall between two categories – online courses, and books + tutorials.
Online courses tend to teach using video lectures, try and be more interactive, and try and emulate the structure of a course similar to ones you might take in college. In contrast, books and tutorials teach via written text and allow you to set your own pace.
Where should I start? Whether you prefer learning by watching a video or reading text is really a matter of personal preference. I personally prefer visual, but your learning style might be completely different.
You may need to explore and browse several different resources before you discover how you best learn. In addition, you’ll find that most links, whether they’re online courses, tutorials, or books, tend to focus on either one of three things: • Some resources focus on programming, semantics, or computer science theory – in other words, how to use a programming language to write something that works. • Other resources will focus more on coding and syntax – the particular details and rules about how a programming language works. • Other resources focus on teaching idioms – teaching best practices specific to that language, the underlying philosophy of that language, or teaching you about the different libraries available to you: the broader ecosystem.
If you’re new to programming, the first model will be the best. Programming is all about applied problem solving: being able to take a problem, and break it up into smaller and smaller pieces until they’re small enough to translate into computer code. Simply memorizing a collection of rules will not be very useful to you. You also need to learn how to apply those rules. However, if you already know how to program, then you most likely already know how to do this.
In that case, you’re going to want to use the second kind since it’ll be easier to learn about the differences between the language you’re learning and ones you already know. Once you’ve moved past the beginning phase, then it would be a good idea to try and move on to the third kind of resource, which will help teach you how to actually use and apply that language on a practical and professional level. When I say that a resource is “heavy in theory” or “is rigorous”, I mean that it leans towards the first category. When I say that a resource “focuses on syntax”, I mean that it leans towards the second. And when I say a resource “focuses on idioms” or “on practical applications”, I mean that it leans towards the third. This page is still a work-in-progress! Some sections may currently be incomplete, and some links may not yet be fully vetted.
If you would like to contribute, please see for details. General resources Links to other big lists You can find a huge and utterly massive compendium of. (It used to be hosted on StackOverflow, but was moved over to Github on October 2013). You can also find a meta “list of programming resources” aggregator here: Online courses Online courses are an increasingly popular way for universities and professionals to teach programming and computer science in a structured format.
As a result, new online courses will pop up all the time, so it’s worth checking these resources periodically to see what’s new. • - offers free online courses in several different languages. However, Codecademy does have a tendency to teach only basic syntax, so you may need work through more tutorials after finishing Codecademy. Focuses mainly on web development, Ruby, and Python. • - offers free online courses in many different fields from several different well-known universities. New courses are added every quarter, and content from old courses is typically archived. Because many courses appear to be new/may be a one-time thing, this page will not link to courses on Coursera unless it appears to be stable.
• - offers free computer science courses taught by industry experts. Udacity offers two kinds of courses – regular courses and nanodegrees. Regular courses are free. Regular courses with one-on-one tutoring/code review requires a monthly fee. Nanodegrees are typically for people with some prior coding experience, and cost more money.
• - a joint effort between MIT, Harvard, and Berkeley to provide free online versions of some of their courses. • - similar to all of the above. Video lectures are typically available on iTunes or Youtube. Typically does not require you to complete assignments, unlike many other online courses.
• - static course materials taught at MIT. Unless otherwise noted, most content from this website tends to be very rigorous and fast-paced.
• - contains a few courses on programming and computer science; does contain many more courses on all kinds of topics (especially math). • - static course materials taught at Stanford. The following websites also contain a wide variety of tutorials for many different topics, but require payment and registration before you can access their courses. • - focuses on web and iOS development. • - also includes courses on design, animation, video, business, and more.
• - similar to Lynda, but with a focus on developer and IT courses. • - also includes courses on design, animation, video, business, and more. In general, edX, OpenCulture, MIT OpenCourseware, and Stanford Engineering Everywhere tend to contain more rigorous, thorough, and demanding courses, whereas Codecademy and Khan Academy tend to focus on giving a more gentle introduction to programming. Coursera and Udacity tend to vary between these two extremes.
Programming Languages C Note: C can be a difficult-to-teach language. Although the online courses and books are a good starting point and can take you a long way, the general consensus is that the best way to learn is through reading an actual book. • Online courses: • MIT Open Courseware has a few: • For beginners. • Geared towards people with prior experience in a programming language that is not C or C++. • Similar to the above. • Video tutorials: N/A • Interactive tutorials: • An interactive online guide that teaches you basic C step-by-step. • Books and tutorials (online): • Part of the “Learn X the Hard Way” series.
Assumes you have prior programming experience. Currently incomplete, in progress. • One of Wikibooks’ featured books. Tends to focus on teaching mainly syntax.
A good starting point and reference. • Walks you through how to write a Lisp interpreter in C, teaching both languages simultaneously. • • Books (paper): • The definitive guide to C. Also known as K&R, after the authors. • A very well-maintained list of recommended books and resources on StackOverflow. Every book listed on this page is highly-recommended. • Exercises: N/A C++ Note: Similar to C, C++ can be a difficult-to-teach language.
Although the online courses and books are a good starting point and can take you a long way, the general consensus is that the best way to learn is through reading an actual book. • Online courses: • MIT Open Courseware has a few: • For beginners, is fast-paced. • Geared towards people with prior experience in a programming language that is not C or C++.
• Similar to the above. • Stanford’s 3-part “Introduction to Computer Science” series for beginners. The first course teaches Java, the latter two teaches C and C++. • • • • Coursera’s May also be helpful for programmers with prior experience in another language besides C or C++. • Interactive tutorials: • An introduction to basic C++.
Is a cross between an interactive tutorial and an online book. • Video tutorials: N/A • Books and tutorials (online): • A good introduction to basic C++. • Tends to focus more on syntax, and less on programming.
Might be useful for beginners, but as a reference, not a tutorial. • A tutorial on C++ for people with some prior programming experience.
Teaches by presenting and explaining a series of programs. • • Books (paper): • A very well-maintained list of recommended books and resources on StackOverflow. Every book listed on this page is highly-recommended. • Exercises: N/A C-Sharp (pronounced as see sharp) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines. • Online courses: • Microsoft Virtual Academy has a few free courses: • A series of videos produced by Microsoft on learning C#. For beginners. • Another series of videos produced by Microsoft.
Assumes some prior knowledge of C#. • Interactive tutorials: N/A • Video tutorials: N/A • Books and tutorials (online): • One of Wikibook’s featured books.
For beginners. Tends to focus on syntax, and would also make a good reference. • The introductory text used by the University of Hull. • An introductory text on C#.
Also includes information on Windows Forms, Visual Studios, and making GUIs. • Microsoft’s official series of tutorials and guides on C# and.NET. • • Books (paper): • by Scott Dorman A good introduction for beginners. • Very comprehensive, and intended more for intermediate programmers/programmings coming from another language. • Also very comprehensive, and covers how to write idiomatic and clean C# code.
Assumes the reader already knows some C#. • and A collection of tips and tricks to improve your C# code. Not for beginners.
• Exercises: N/A Haskell Haskell is a, language, quite different from most other programming languages. The language is named for, whose work in mathematical logic serves as a foundation for functional languages. Haskell is based on the, hence the lambda they use as a logo. • Online courses: • edX’s Assumes familiarity with a non-functional programming language (Java, Python, C#, C++, etc). • Interactive tutorials: • An interactive guide that teaches basic Haskell.
• Video tutorials: N/A • Books and tutorials (online): • A comprehensive meta-guide that suggests the recommended order for following Haskell tutorials from beginning to advanced. • A beginner’s introduction to Haskell. Tends to focus on syntax. • One of Wikibook’s featured books. Covers basic to advanced Haskell.
El Croquis Mvrdv Pdf To Excel here. Very comprehensive. •: Covers how to use Haskell for practical applications. This is a good second book to read, after completing one of the above tutorials. • • Books (paper): N/A • Exercises: • A collection of 99 problems designed to increase your proficiency in Haskell.
HTML, CSS, and JavaScript Note: HTML, CSS, and JavaScript are the three core technologies that runs on every web browser and makes up every webpage. HTML is a language used to describe the structure and content of a webpage. CSS is used to describe the style and appearance.
JavaScript is used to add behavior and interactivity. The recommended learning order is typically to start with HTML and CSS, then move on to learning JavaScript once you feel you’ve acquired a basic understanding of the previous two. Also note that HTML and CSS are examples of “markup languages”, not “programming languages” and so will feel fairly different from JavaScript. If your goal is to learn just programming, you might want to jump straight ahead to JavaScript (or pick a different programming language!). However, since the main way to actually use JavaScript is through the web browser, you do need to learn HTML and CSS at one point or another. • Online courses: • Dash teaches HTML, CSS, and Javascript through fun projects you can do in your browser.
• • Codecademy has several courses related to web development. • • • • • • So does Udacity: • • Does require some prior programming experience.
• Open Culture’s Hosted by Harvard, and covers a wide variety of topics. • Khan Academy has a series of on introductory Javascript that focuses on drawing graphics and animations, and making games.
• Team Treehouse has a series of courses on,, and Allows a free 14-day trial, but later requires payment. • Interactive tutorials: • An interactive website that lets you dynamically change CSS rules to style an element on-screen. Not for beginners, but is a good way to discover advanced applications of CSS. • Video tutorials: N/A • Books and tutorials (online): • (MDN) A series of tutorials covering HTML, CSS, JavaScript, and more.
Some tutorials are appropriate for beginners while other tutorials will be more advanced. • Similar to the above, but targeted more specifically to beginners. • A book that teaches you how to write idiomatic and clean JavaScript.
Assumes prior experience with JavaScript/another programming language. • A guide which gives a thorough and detailed overview of JavaScript. • Currently features Angular.js, Backbone.js, D3.js, Dojo, Ember.js, Express.js, jQuery, Knockout.js, and Meteor.
• More free books: • • • Books (paper): • A short book that covers the core aspects of JavaScript as well as info on writing idiomatic and clean JavaScript. • Exercises: • A series of exercises on using CSS selectors effectively.
Lisp (Scheme, Common Lisp, Clojure, etc) • Online courses: • Brought to you by the Toronto Lisp User Group • I nteractive tutorials: • An interactive tutorial for basic Clojure. • Video tutorials: • videos from MIT open courseware • Books and tutorials (online): • Not really a tutorial on Lisp, but is instead an article on why so many people advocate Lisp and claim it will fundamentally change how you view code. Very good at explaining the philosophy of Lisp. • SICP is the canonical introduction to Lisp, and used to be part of MIT’s introduction to CS course (before they switched to Python).
• An amended version of SICP which uses Clojure instead of Scheme. • A competing book and philosophy of teaching to SICP. SICP tends to focus more on CS theory whereas HTDP tends to focus more on writing how to go about writing programs/analyzing problems. • Walks you through how to write a Lisp interpreter in C, teaching both languages simultaneously.
• An introductory book on Common Lisp. Covers practical and real-world applications of Common Lisp. • An aggregation of books and resources on effectively using Common Lisp for programmers coming from an imperative world. • A website collecting many links related to learning Lisp. • More free books: • • in general • • Books (paper): • A book that teaches Lisp (specifically Common Lisp) via making games. For beginners.
• Exercises: • A series of 99 problems designed to increase your proficiency in Lisp. • A series of exercises geared around learning Clojure. Java Java is a programming language designed to build secure, powerful applications that run across multiple operating systems, including Linux, Mac OS X, and Windows. The Java language is known to be flexible, scalable, and maintainable. • Online courses: • Udacity’s An objects-first introduction to Java. • MIT Open Courseware: • • For beginners, emphasizes practical application of Java. • Stanford’s 3-part “Introduction to Computer Science” series for beginners.
The first course teaches Java, the latter two teaches C and C++. • • • • The University of Helsinki’s “Object-Oriented programming with Java” series for beginners. • • • Interactive tutorials: • An interactive tutorial that teaches basic Java. • Video tutorials: N/A • Books and tutorials (online): • An introductory text on Java. Moves a bit slowly, but covers everything in great detail (including setup). • An introductory text on Java.
The tutorial is exercise-driven. • Another introductory text on Java.
The content is based on the “How to think like a Computer Scientist” series. • Note: the fourth edition is the latest one, but currently is not free. The website can also be a little hard to navigate – the direct download link is. Assumes some basic prior programming experience. • An introduction to Java.
Tends to focus mainly on syntax. May also make a good reference. • The official Java tutorial, produced by Oracle. Tends to focus on language features and syntax. • • Books (paper): • A beginner’s introduction to Java.
• Exercises: • A series of exercises hosted by the University of Washington, starting with basic Java and finishing with data structures and algorithms. Download Film Captain America The Winter Soldier Sub Indo 3gp. Requires (free) registration first before you can view or work on the exercises. Perl Businesses talk about Perl 5 when talking Perl, but on a far-far land, beyond deep-thinking island, the design-by-committee tribe is still cooking a hefty slab of Perl 6 (and it’s almost ready, with an engine written in Haskell and powered by the tears of the gods) Ok, that said, what is Perl 5 used for, today? • legacy web systems / intrawebs - some just won’t die • data mining / statistical analysis - the perl regex engine, even if slightly outdated, (PCRE, a spinned off library, tops it up in any possibile way and it’s the default PHP engine) is still good for simple analysis • **UNIX system administration **- Perl shall always be installed on UNIX.
You can count on it being readily available even on Mac OS X. • **Network Prototyping **- many core network experts learned Perl when it was all the rage; and they still do their proofs-of-concept with it. • Security - many security experts, too, need fast prototyping. (and fast automated fixes) Perl can, and does, cover for that.
The extensive CPAN collection is very handy, when dealing with prototypes. (Batteries may not be included, but they’re still right there, on the shelf) Remember drawbacks, though: • Object support in Perl sucks hard, you bless references and do unholy stuff in the name of objects, then wonder why you took all the trouble in the first place. • Reading other people’s Perl is more than a craft, it’s science, and a painful one, too. • Perl is nifty, it makes you think nifty, it makes you feel nifty, you become a programming rockstar. Now, think about getting up, and going to work in a office full of rockstars: it’s a “boat that rocks” hard. Expect wild fluctuations. • Online courses: N/A • Interactive tutorials: N/A • Video tutorials: N/A • Books and tutorials (online): • A comprehensive and thorough introduction to Perl.
• A guide on writing clean and idiomatic Perl code. Very good for teaching the philosophy and fundamentals of Perl.
Comprehensive and thorough. • An accelerated guide for impatient people or people with prior programming experience. • Another accelerated guide for the impatient. Geared towards people who have prior experience in another programming language.
• • Perl.org also hosts a, many of which are available online for free. • Books (paper): • An introductory text on Perl. Teaches on focusing syntax/the details of Perl, and not so much on how to program.
Pragmatic and practical. • Exercises: • A mailing list which sends out a new quiz/prompt once a week. Archives of past prompts are also available.
PHP Note: while PHP can be very convenient, quick, and easy to use, it’s also a language viewed negatively by many programmers. If you do decide to learn PHP and adopt it as your language of choice, just be aware of the fact that people will probably make fun of you at one point or another. Also, it’s important to first learn before attempting to learn PHP. PHP is a language which attempts to “extend” and work with HTML, so may not fully make sense if you try and learn it before picking up basic web development. • Online courses: • Codecademy’s • Team Treehouse’s - allows a free 14-day trial, but later requires payment.
• Interactive resources: • An interactive guide that teaches basic PHP. • Exercises: • Video tutorials: N/A • Books and tutorials (online): • The official tutorial on PHP. Tends to focus on language features and syntax.
• An introduction to PHP. Tends to focus on syntax. May make a good reference. • A comprehensive guide that covers modern best practices in PHP and attempts to address common flaws, misconceptions, and errors that many beginners (and many tutorials) seem to possess. Assumes some prior knowledge of PHP.
• Books (paper): • An introductory text on PHP. • An example-driven introduction to PHP. Python Note: there are currently two versions of Python that are commonly taught and used – Python 2, and Python 3.
Python 3 is the most recent version, but for a variety of reasons Python 2 still is fairly popular among many developers. If you’re not sure which version to pick, my recommendation would be to pick the resource which looks like the best fit for you, and just use whatever version they’re recommending. Luckily, the differences between the two are very minor (at least from the perspective of the beginner), so there’s really no difference if you learn using Python 2 vs Python 3. • Online courses: • edx’s The companion book can be.
The course is designed for beginners, part of a 2-part series, is self-paced, and has an emphasis on computation and data science. • MIT Open Courseware also offers a gentler “lead-in” course designed for those with no programming background that you can take before taking the above:.
• MIT Open Courseware’s A gentler version of the above. • Coursera’s For beginners; requires registration. • Codecademy’s For beginners; tends to focus primarily on syntax.
• Udacity’s Requires some prior programming experience; focuses on object-oriented programming. • Team Treehouse’s Allows a free 14-day trial, but later requires payment. • Interactive resources: • An interactive online guide that teaches basic Python. • Another interactive online guide. • Video tutorials: N/A • Books and tutorials (online): • Part of the “Learn X the Hard Way” series. Despite its name, this is one of the easiest introductions to Python available. • A book for complete beginners.
It is aimed at office workers, students, administrators, and hobbyists who want to learn how to write useful, practical programs rather than necessarily become software engineers. From the author.
• How to Think Like a Computer Scientist ( and ) A comprehensive introductory text on Python. • Another comprehensive introductory text on Python. • The official Python tutorial (for and ). Moves a little quickly, but is very comprehensive and thorough. • A fantastic introduction to data structures and algorithms and other traditional computer science concepts using Python. While it does briefly cover Python syntax, it assumes that you already have some basic prior experience.
• An accelerated introduction to Python. Warning: do NOT use “Dive into Python 2”. It’s very outdated. • A fantastic and thorough introduction to Python via making games. For beginners. • Teaches programming through the creation of computer games with Python and Pygame. For beginners.
• A comprehensive introduction to the Python ecosystem. Covers how to properly configure and set up a development environment in Python, best practices, writing idiomatic code, what the best 3rd party libraries are for different tasks, and shipping your code. Useful for both beginners and experts (however, the guide does not actually teach Python itself). • A huge list of many useful articles, tutorials, and snippits on Python, ranging from basic to advanced.
• • A tour of the Python standard library through short examples. • Books (paper): • A catalog of Python books (some are free) • Exercises: • Exercises and challenges in Python.
Challenges require (free) registration. Golang The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient.
Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It’s a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
In addition to the resources available there are a range of community-driven initiatives: • Books (online): • The Little Go Book is a free introduction to Google’s Go programming language. It’s aimed at developers who might not be quite comfortable with the idea of pointers and static typing. It’s longer than the other Little books, but hopefully still captures that little feeling. • Books (paper): •: Go in Action introduces the Go language, guiding you from inquisitive developer to Go guru.
The book begins by introducing the unique features and concepts of Go. Then, you’ll get hands-on experience writing real-world applications including websites and network servers, as well as techniques to manipulate and convert data at speeds that will make your friends jealous. •: Pros - Book is very relevant and up-to-date, well-structured (maybe too well-structured at times), covers virtually everything in Go language, has a myriad of useful code examples. Cons - Author is not a native speaker and it shows.
At times it is a bit hard to understand his writing - proofreading was definitely needed. •: Perfect for beginners familiar with programming basics, this hands-on guide provides an easy introduction to Go, the general-purpose programming language from Google. Author Caleb Doxsey covers the language’s core features with step-by-step instructions and exercises in each chapter to help you practice what you learn. •: The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems.
The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. • Videos • - A collection of videos and articles for learning Go. • - Video learning path for Go programming.
• Learn the go programming language in one hour. • - a multi-part video training class. • Exercises: • - Online code exercises for Go for practice and mentorship. • - Jump right into Go with a tour, helpful examples, sample app, and common pitfalls. • - A member of the family, offering a complete set of free Go training materials with the goal of bringing Go to under-served communities.
• - A collection of annotated Go code examples. • - A free online class. • is a top-to-bottom walk-through of the language.
• - Go by Example is a hands-on introduction to Go using annotated example programs. Check out the first example or browse the full list below.
• - A growing collection of (paid) online classes. • Workshops: • Framework Training is running regular free BYOD workshops in London, UK • - Startup Slam Go Workshop - examples and slides. • Learning resources for specific topics: • outlines a course of study of Go’s concurrency model and patterns. • links to resources about error handling in Go. • links to resources about testing in Go. • links to resources about server programming in Go.
• Further reading: • • is a topic based newsfeed for slack. Built on Go Ruby Note: Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It was designed and developed in the mid-1990s by Yukihiro “Matz” Matsumoto in Japan. According to its creator, Ruby was influenced by Perl, Smalltalk, Eiffel, Ada, and Lisp.
• Online courses: • Codecademy’s For beginners. Tends to focus on syntax.
• Team Treehouse’s Allows a free 14-day trial, but later requires payment. • Interactive tutorials: • A collection of interactive tutorials to help you learn basic and advanced Ruby. • An interactive online guide that teaches you basic Ruby step-by-step.
• A downloadable set of interactive tutorials. • Video tutorials: N/A • Books and tutorials (online): • Part of the “Learn X The Hard Way” series. Despite its name, this is one of the easiest introductions to Ruby available.
• A little quirky, but still very good. • • Books (paper): • A comprehensive and thorough introduction to Ruby. For beginners. • A guide on how to write Ruby idiomatically and cleanly. This book assumes that you already know Ruby or some other programming language. • Exercises: • A series of exercises on writing programs in Ruby. New exercises are no longer being written, but the existing exercises are still very good.
Scratch Scratch is a language wherein you create programs by dragging together and connecting “blocks”. Unlike other programming languages, Scratch is very visual, making it a very good first programming language, especially for children and younger teens. Because not many people may be familiar with Scratch, this section will contain resources that are helpful both for learning Scratch, and teaching Scratch. There are two • Online courses: • edX’s - for beginners. • edX’s - a course designed to help teachers design an engaging computer science curriculum for middle-schoolers using Scratch. • Interactive tutorials: N/A • Video tutorials: • from Scratch’s website A collection of video tutorials on Scratch for absolute beginners.
Very comprehensive. • Books and tutorials (online): • An introductory text on Scratch.
For beginners. • A short tutorial that takes a more formalized approach to teaching Scratch. Best suited for those with some prior experience.
• A thorough introduction to Scratch. For beginners. • A collection of resources and guides on advanced usage of Scratch. Not for beginners.
• Reference guides: for and (a variant of Scratch) Contains comprehensive descriptions of all language features. The Scratch reference will be useful for all levels, and the Snap reference will be particularly useful for those who are already proficient at programming in another language.
• Scratch’s official portal and collection of resources for teaching using Scratch. • • Books (paper): • - Scratch cards provide a quick way to learn new Scratch code. • - In Learn to Program with Scratch, author Majed Marji uses Scratch to explain the concepts essential to solving real-world programming problems.
The labeled, color-coded blocks plainly show each logical step in a given script, and with a single click, you can even test any part of your script to check your logic. • - In Super Scratch Programming Adventure!, kids learn programming fundamentals as they make their very own playable video games. They’ll create projects inspired by classic arcade games that can be programmed (and played!) in an afternoon. Patient, step-by-step explanations of the code and fun programming challenges will have kids creating their own games in no time. • Exercises: • - LTPWS Studio of Exercises Other topics TODO: EXPAND AND POLISH Developing on specific platforms Please see our for more information. Android • • • - also contains tutorials on other Google technologies. • - via Udacity.
Assumes prior programming experience. • Team Treehouse’s - allows a free 14-day trial, but later requires payment. • Mac and iOS • • • Apple’s • Apple’s • - via Udacity. Assumes prior programming experience. • Team Treehouse’s - allows a free 14-day trial, but later requires payment. • Windows and Windows phones • Microsoft’s • Microsoft’s - resources for mobile and XNA game development. • More free books: • • TODO: Expand?
Don’t want to duplicate too much existing content. Data structures and algorithms Unless otherwise noted, all of the resources in this category assume prior programming experience. • Online courses: • Udacity’s - assumes proficiency in math up to the Algebra 2 level. • • - Explore Data Science with this selection of courses to help you analyze and gain insight on your business data for improved performance and results. • - The class will focus on breadth and present the topics briefly instead of focusing on a single topic in depth. This will give you the opportunity to sample and apply the basic techniques of data science. • Coursera’s - lectures are archived.
Assumes some familarity with proofs. • Open Culture has several good video playlists (mostly on YouTube) • - hosted by UCDavis (University of California, Davis) • - hosted by UCBerkeley (University of California, Berkeley). • - Hosted by the University of New South Wales • MIT Open Courseware’s and • Khan Academy’s • Interactive tutorials: N/A • Exercises: • Contains Java and Python exercises. For beginners and intermediate-level programmers. • Similar to Codingbat. • Contains a large collection of exercises, from basic up to the competitive level. Good for both beginners and advanced programmers.
Also holds their own online competition. • Similar to HackerRank. • A collection of programming problems and solutions from multiple programming competitions. • A collection of programming exercises. The exercises are more math-oriented, and are not always CS-oriented. • Video tutorials: N/A • Books and tutorials (online): • A very thorough introduction to data structures and algorithms.
Although it uses Python, the main concepts taught should be applicable to every language. Starts with a quick overview of Python for those unfamiliar to the language. • which is in Java and accompanies on Coursera. • - a comprehensive reference of many different data structures and algorithms. • - a cheat sheet containing links and condensed information about the top most commonly-used/commonly-taught data structures and algorithms. • Books (paper): • - the canonical guide to algorithms and is very comprehensive.
The book is language agnostic, moves at an accelerated pace, and is accompanied by lectures. • - the first half of the book emphasizes the design and analysis of algorithms, and the second half is a catalog of the 75 most important algorithmic problems for reference.
• - If you’re an experienced programmer interested in crunching data, this book will get you started with machine learning. • - contains links to various recommended books and suggestions for improvement. • - Succeeding with data isn’t just a matter of putting Hadoop in your machine room, or hiring some physicists with crazy math skills. Tools Version control Git • Online courses: • - via Udacity.
• Interactive tutorials: • - a very visual interactive tutorial starting from the absolute basics with a high emphasis on understanding the internals/what each git command really means. • - an interactive tutorial that teaches basic Git. • Exercises: N/A • Video tutorials: N/A • Books and tutorials (online): • - an introduction to Git for the absolute beginner (via git-tower). • Git has an • • Books (paper): N/A Mercurial • Online courses: N/A • Interactive tutorials: N/A • Exercises: N/A • Video tutorials: N/A • Books and tutorials (online): • - a basic introduction to Mercurial.
• • • Books (paper): N/A TODO: Expand, add info on Subversion is maintained. This page was generated.