CSC 430 Useful Links from Fall 2013

Matt Carson   Aaron Clark   Cody Driskill   Parks Frazier   Jennifer Gross   MiGyeong Gwak   Jerad Hobgood   William Holt
Emilee King   Jinbo Lin   Jason Mallory   Keith Neer   Xulong Peng   Tyler Roberts   Christian Vargas   Wissem Zrelli

Matt Carson:
An excellent source for beginners with no ideas on Git. It is very reader friendly and doesn’t have the long drawn out explanations, but instead, uses easy to understand comments to explain what is going on.
This video is roughly an hour, however, it covers everything from the installation of Git on both Windows and Mac, why you should use it, various examples of codes, client applications, and even the various services offered through Git like GitHub or Beanstalk.
Video of JeremyBytes Clean Code: The Refactoring Bits
Presentation by Steve Freeman about TDD: How Do We Know When We’re Done
Programming Katas, this is a series. Solutions are available in the comments.
Code Kata practice using TDD.
Lets Play” Video of TDD
Comparison argument of version control softwares
Information on design patterns with java understandings.
Palindrome checker via TDD. Has a little bit of static, but is still understandable.

Aaron Clark:
This shows you what not to do by telling you how to write unmaintanable code.
Offers a brief overview of most all known available revision control software.
This blog offers a viewpoint that most coding Katas are not useful, as they are just repetative.
This blog suggests not to use design patterns, as people get too dug into them, and arn't true software engineers.
A list of Coding Katas for those who wish to try them appropriatley.
The first in a series about how to use Git.
Video for tutorial on using TortoiseSVN
Written tutortial on the usage of TortoiseSVN in windows.
While giving some helpful advice about how to tell if code is done correctly, of strongest note is the first large comment below the question.
This talks about the root cause of singletons, which they call an "anti" pattern, and why Singletons are bad.

Cody Driskill:
Contains some pretty basic, but still important tips that apply to pretty much any language.
Breaks down different clean code techniques into karate style belts to indicate importance. Helps to clarify basics and even more advanced techniques to keep in mind.
Has some tips to help write PHP code and could double up and helps a bit in the web programming class too.
A video series that covers code refactoring. I found the guy who does the videos a bit long winded but maybe some people can relate to him.
A write up of refactoring techniques that pertain to VB. It also has some good tips that can apply to any OOP language.
This is an article about refactoring in the Perl language, and good practices to employ there. This is particularly useful because Perl, I feel generally doesn’t get too much individual coverage.
This covers C# and the best part is that it actually has examples of before and after code.
Gives a good overview on how to write good code in general.
Powerpoint slides done at a London University that also give good tips.
An overview of refactoring code from the University of San Francisco, includes links to a database containing patterns to watch out for.

Parks Frazier:
-Quotes from a few leading figures in the Computer Science field on clean code.
-Interesting article that should sooth your pain a little
-Article for Java users on how to use a Finally statement to clean up code
-Some Git tutorials for beginners
-More helpful Git tutorials
-Tips and practices for writing good, readable code
-general coding standards
-10 good coding practices for Java
-great help for coding in PHP
-good powerpoint on design patterns and more coding practices

Jennifer Gross:
Personally, I love I have had a membership with them for a few years and watch as many videos as I can on their site. These videos literally walk you through everything you can possibly want to do with Git.
What I enjoyed about this document was that it was different than all the other sources I found on Git. The fact that this source started with explaining concepts in context with other concepts that I already knew was welcoming, rather than immediately throwing code at me to wade through. Also, it was surprisingly sort in comparison to other sources that I found on this topic.
There was too much information on this site for me to just choose a few. This site has information on both Clean Code and Design Patterns, including videos, pdfs, presentations, and downloadable code. Jeremy is very clear, thorough and easy to understand. This was probably my most visited site during this semester.
This page contains several TDD practice problems.
Kata practices
Agile Academy’s Agile in Practice: Test Driven Development.
Extensive list of design patterns with code examples.
Video examples of design patterns in java.
Overview of what is version control
3-hour tutorial on TDD.

MiGyeong Gwak:
(This is a nice and simple beginner’s guide to design patterns. It will be good for preview on design patter textbook.)
(This is a good resource to learn design patterns in Java. There are a quick guide, useful resources, and a tutorial.)
(It explains the singleton design pattern through the Microsoft .NET framework.)
(A brief explanation of version control and guidance for a practice by University of Glasgow)
(This is a version control part in the book of “Producing Open Source Software.”)
(A brief overview of software development process by Damon Poole)
(This is a beginner’s guide to continuous integration by Gilles Querret from Riverside Software.)
(This is a lecture note about code refactoring. There are some JGuru examples to illustrate refactoring.)
(This is a tutorial for unit testing with JUnit. It includes how to run JUnit tests in Eclipse Environment.)
(This contains a definition of object oriented programming to keep code clean and a PHP OOP tutorial for beginners.)

Jerad Hobgood:
This is a great source for knowing what git is and how it works.
The man tends to get off track and can be hard to follow but is can help a beginner learn what git is.
Helps getting git setup and getting started using git for the first time.
Sort of off topic a little but can help beginners who have only taken a few programming classes get to know clean code.
Great if you like a simple written instructions on juit testing.
this is a two part video, the speaker is a little dry but is great for learning about junit testing.(help me alot).
This is a good short intro about TTD. The code samples use PHP.
This article is opinion bases but important for newbies. It talking about the difference between net-beans and Eclipse.
All new programmers need to sit down and play with both these IDE's and decide which one they prefer to use.
This link is to just open the ideas to new students about doing there own resource on the IDE's.
This is one of many in the series about Design patterns. this video is just saying what is a design pattern. there are many other videos
about different patterns.
This is .Net Design patterns. on the page is just a list of links of design patterns click them and will be taken to a tutorial of that pattern is a great place to learn about so many great things. this link is about GitHub in all its glory.
( For all your needs, Videos, Readings)

William Holt:

  1. SCRUM Development and Lean Thinking -
  2. Extreme Programming and a Simple TDD Introduction -
  3. Writing Clean Code in C# -
  4. Essential Skills for Agile Development (A free ebook!) -
  5. Simple Git (This has saved my bacon many times!) -
  6. A handy Mercurial Tutorial (some say it’s better than git!) -
  7. A great video tutorial/coding sandbox site to learn a wide variety of topics such as git, php, css3/html5/js -
  8. Getting started with Amazon AWS (easier than you think) -
  9. A free alternative to treehouse, with 100% less video.
  10. Another alternative to treehouse, though it’s free… to a point.

Emilee King:

Interesting video on the evolution important languages and how they are still used and impacted current languages
Nifty list of coding standards for different languages, just to help keep things clean and readable 

UI Mistakes: 



Awesome blog on programming.
We've been over design patterns, here's a guide on Anti-patterns
AntiPatterns provide real-world experience in recognizing recurring problems in the software industry and provide a detailed remedy for the most common predicaments. AntiPatterns highlight the most common problems that face the software industry and provide the tools to enable you to recognize these problems and to determine their underlying causes."
Tips on writing clean code
10 git tutorials for beginners
Refactoring video tutorials, I really enjoyed  this. It's easy to follow and actually fun to listen to.
The Principles of Good Programming
Beginner's Guide to Design patterns. It gives examples of design patterns and how to use them
Test Driven Design by Example
This is really cool, this is an online course on TDD.

Jinbo Lin:  
  1. JUnit

this website contains every single topic of JUnit, and they provide code sample for every topic. Cons: too much details in all topics.

  1. JUnit

This video was uploaded 3 years ago. Although this is old technology, indeed this person use notepad to wrote the program instead of using IDE, this video still provide a clear view of JUnit.

  1. Strategy Pattern

This video demonstrate the concept of strategy pattern. He explained this concept very well in his presentation. Cons: no captions in this video.

  1. Strategy Pattern

Last link talks about the concept of strategy pattern and the condition it fit, so this video demonstrate the pattern by the sample code. Also, he provide his codes which people can download for the entire project.

  1. Design Pattern

This book talks about the design pattern in Javascrpit.

  1. Version Control

This video talks about the concept of version control.

7. Version Control

This is the next episode of last video, in this video he use Git as example to demonstrate how version control system works. And he use his code to show you the function of almost all git command.

  1. Version Control

A visual guide to Version Control System.

  1. Clean Code

A presentation about clean code from Google Tech. However this guy is so familiar.


A Online video tutorial website about software.

Jason Mallory:  

(1)  Quick explanations with examples for template method, strategy, factory method, abstract factory, facade, and command patterns

(2)  Short post on why you should learn and use design patterns.

(3)  Game development patterns focused on solving specific game related problems.
 Main page
 Main listing of pattern articles

(4)   Similar to (3).

(5)  Short post on not letting readability affect maintainability.

(6)  Article about cleaning bad code.

(7)  List of things to help grow as a programmer. Comments were informative.

(8)  Developing defined goals and understanding what you should be working toward.

(9)  Description of how agile works in the game development industry. Where it works, where it doesn't and how some aspects are modified.

(10)  Article about how Scrum can help great game development teams form.

Keith Neer:  

   This link summarizes the important clean code practices found in the Clean Code book
    This link explains how to use Subversion from installing it to using the basic features.
    Useful link for understanding OO design.
     This link provides some tutorials on how to write cleaner code.
     A walk-through tutorial of JUnit testing in Eclipse.
     This link is an introductory tutorial for JUnit.
      This article gives some interesting reasons why you shouldn't comment your code.
       List practices for writing clean code
     More on Clean Code practices.

Xulong Peng: 
//1. This website has summary of version control and good for beginner to know the basic concepts:

//2. this article outlines the fundamentals of version control. I really like it, clear and neat.

//3. This review article introduces several top open-source version control systems and tools.
//Good reference as it has reference links after each VCS tool!

//4. eBook on Git, free download!

//5. this is a good website shows details how to use Git.

//6. This is from NetBeans about versional control: CVS, Subversion, Mercurial and ClearCase

//7. a good site for introducing TDD: What is TDD, Why use TDD and How to use.

//8. Good slides show for TDD tutorial!

//9. Good site introduces Design Patterns and including
//Principles, Creational/Behavioral/Structural Patterns as well as Forum!

//10. This site introduces Design Patterns and Refactoring

//11. Java Design Patterns

//12. Wikipedia website outlines software development: good introduction

//13. About Testing for software construction

//14. 12 Unit Testing Tips for Software Engineers

//15. How to write good unit tests

//16. This is from MSDN for patterns and practices.

//17. How to write a clean code without comments

//18. How to write a readable source code

//19. Good article for cleaning bad code.

//20. Really good post/comments to avoid bad coding habits for beginner

Tyler Roberts:  
Using design patterns in places where they aren't needed (hello world)

Changing design patterns to fit your coding needs

Taken from our Clean Code book, refractoring functions

Clean code cheat sheet

Short clean code lesson

Refractoring code (35 minutes long)

Site for using code kata's

Another site to practice code kata's

Robert C Martin's bowling game kata

Introduction to test driven development

Learning the basics of GitHub (1 hour long)

Intro to Learning TDD

Christian Vargas:  
1. this site contain tools and management for software construction.

2. this is a google software toolkit site with downloads

3. A Github site that contains an outline of a software construction 2012-13. It contians link to slides that are apart of the course.

4. this link contains a software construction and testing powerpoint that might be very helpful

5. Link that contain another powerpoint that will help in software construction. Give information about software construction.

6. Link that contains seven tips pn how to construct software successfully

7. This is a short pdf of some tips to write clean code. its only two pages and is a very short read that wont take up anytime

8. Link to a detail report of 12 principles for keeping clean code along with examples

9. Tips for a clean programming code

10. link to a blog where "7 reasons why clean code matter" is discussed and debated

Wissem Zrelli:

Wissem's Links