On 3/6/19 at 10:30am, I attended the North Carolina Computer Instructor Association Conference Session Introduction to Git and GitHUB at East Carolina University’s SCITech Building in Greenville, NC. This was presented by Michael Schore of Wake Technical Community College.
Introduction to Git and GitGUB
- Without VCS (a version control system), there are problems when you overwrite a file.
- Why is it good, why use it and what is it?
- Who should use it?
What is a version control system
- It Tracks changes to files, especially text files
- Source code for every piece of software or code library is written or has been written in some form of text
- VCS is also called source code management (SCM)
A version control system is really just a way to take care of added text and then to catalog and understand what text was added, when, and by whom.
History of GIT
Version Control Systems really got their start as coding back in 1972 – SCCS (AT&T). Any participants in the class working then? A few. At the time, attendants were using fortran or punch cards.
1982 RCS much higher performance.
1986 –cvs concurrent use was an issue though
2000 – apache tracked as a subdirectory
2005 – linus torval. Replaced proprietary bitkeeper SCM
What is a version control system (VCS) Good For?
Think about the tracking required for software or web environment. How many files might be in a basic bootstrap environment? 10? 30?
Initializer.com will assist you in making a basic website with GRID, BOOTSTRAP, etc. Choose one, and it will spit out the basics needed to begin that type of website. Easy, but if you don’t know how to code this, not helpful. Many students may feel initially that using a system like this is smart, helpful, and saves them time, but unfortunately if they do not understand the coding it takes to see, use, change, and adjust this material, they don’t really know how to upkeep the websites they’ve started. In the end, they feel disheartened, upset, and as if they’ve wasted valuable time. Many will choose to have failed rather than put in the time end effort to learn what they have missed.
Without version control in the classroom, students do not always have the steps that many employers would like to have from new employees. Students with an understanding of version control software can quickly and easily move into a software or coding environment, while those without the experience may find themselves having to learn on the job.
Students have excuses, but an online version control system bypasses many of these. If the dog ate their flash drive, the computer fell from the table, etc., anecdotal evidence notwithstanding, having versions of materials available online allow them to go anywhere. They can go to the school lab and work on their materials. They can go directly to the classroom and begin working on it without pause.
Are Our Students Prepared? Are We Preparing Them?
Modern workflow options require us to ask: Are we really preparing students for jobs in the workplace? If we are teaching students to work on local machines, is this really the industry standard anymore? This opens us up to problems like those noted above. Transportation issues, mechanical and electronic failure, home wi-fi or general connection issues, windows and software updates, etc., can all be blamed without a cloud-based server or version control system. If the students cannot produce the class files at class time, its a real problem
Using GIT and GITHUB is something which can be used to assist students in job availability and preparedness. Employers in coding or web design & development can learn a great deal from a GitHUB. They can see how many updates the students have made, how many active files students are using, how many adjustments they’ve made to existing pieces and how timely the responses are to requests. It allows them to see the technical writing and explanations shown, and many other pieces of material. Imagine the increase in employability this could bring to the table.
Its not all a bed of roses though. An issue with this can be some learned helplessness on the part of our younger, or online students. We need to generate students who break out of their shells and learn to solve problems for themselves. If students don’t feel they have been given a number-by-number, step-by-step approach, many will check out and simply say that they cannot fulfill the project. We need to teach them to rely on themselves and prepare themselves to solve real-world solutions.
Watch this learned helplessness video at: youtube https://www.youtube.com/watch?v=TU7RBqTndJ8
What is GIT
Starting in the fall this will be taught in the classrooms at Wake Technical Community College. Git is distributed version control available via the internet or any online connection.
- No communication requirement with a central server
- No single point of failure
- Encourages programmer involvement and “forking” of projects
- Developers can work independently
- Can submit change sets for inclusion or rejection
This allows us (both workers such as students and observers such as faculty, bosses, and the general public) to see who checked out individual files, how many lines of code were removed, as well as how many lines of code were added into the environment. It adds accountability into the online group project environment, because there is no way to mask the amount of work done, and code from one update can be checked against code from earlier updates (avoiding duplication and/or copying) as well as against later versions (avoiding duplication and reprinting materials, or having useless code removed later by others..
Who Should Use Git?
- Anyone needing to track edits in text files
- Anyone working with appropriate files in a collaborative setting
- Anyone not afraid to use command-line tools
- Types of files being worked on
- Web files (html, css, JS…)
- Web Programming (PHP, Python, Ruby,Perl, ASP…)
- Programming (JAVA, C, C++, C#, Objective C…)
- Offshoots of web languages (like coffeeScript, ActionScript…)
- Can track other types of files, but not as useful- think images, sound files, etc.
Nothing difficult about installation. It runs anywhere.
Bash, Apple and unix flavors come with Bash. Windows version installation is an option (GitBash). Having the right-click option to open GitBash from any windows explorer location is a great thing.
Systems have all been going to GUI over the years. Students are afraid of command line. This really allows us to go back to basics and add in another level of professionalism and base-level working knowledge into our classes earlier. Configuring Git is as easy as using the .gitconfig file in the configuration folder.
- Local Git config file… request slides
Visual studio code can be used as the visual editor for github. You can also use color output of git.
What is a repository? How do you create one? A repository is a place to save and store files. In a VCS, you’re trying to have a backup in case something stupid happens. If you have set up GITHUB and a repository, you can give it some information and choose a day and time to commit to those changes.
How safe is my data? How easily is it destroyed?
At its most basic, its just a file location, created on your development system.
Local repository can be set up, where your development is taking place so you can monitor and record its history.
Remote repository can also be set up, a place where your files can be saved as above, but offsite.
Creating A Repository
There is no free lunch. Once git is installed on your computer, its pretty simple to do. Looking at a typical website:
- Using Git, initialize the project
- Looking at the directory, we now see a .git file added and a (master) line added.
At this point in the lecture, we did some hands-on work with GIT to use the materials firsthand. It was a little technical, so I have included the slides as I was not able to type during this time.
- Commit chmessage in example was very simple
- Commit messages should be a descriptive message about the changes
- Start with simple single line – 40 to 50 characters
- Add more lines as needed but less than 70 characters
- Keep messages in the present tense, not past tense
- Bullet points using asterisks
- Add bug number and tracking numbers in the material to be ready for business standards
Understanding GIT Architecture
Repository >> working >> git add file.html ?? staging >> git commit file.html >> repository
Again, this example was pretty hands-on, so I didn’t have much time for notes and notation.
Find some introductory GIT training and walk though it a few times. Teacher training to master GIT and Git GUB training via https://education.github.com
Push the workflow ideas on the students. A student who understands GIT can easily understand and pickup the other repository functions. Whatever system suits the company Is the one they’ll use. Think it might be a passing phase? Microsoft bought GITHUB for 7.5 Billion last year.
Where will this go? We’ve recently added in educational contracts with GITHUB and Wake Tech. This allows us a bit of flexibility but can be difficult as it requires schools to work alongside an entity like Microsoft which is itself incredibly large.
GITHUB Campus Advisor program
- As a Github Campus Advisor, you’re not only a master, but a champion of real-world tools at the School.
- Unlock benefits provided by Github, including a free Github package to meet the needs of your school?
- Event support, workshop kits and fresh swag delivery every semester
- Early access to new education features and materials from GitHub education
- Special invitations to github education events
- Github camps advisors-only gear and special swag
At a 3:15pm session in the East Coast Gaming Conference held in the Raleigh Convention Center, Ken Turner spoke to the Serious Games Track audience about Quality Assurance: QA Practices and their role within the gaming industry.
ECGC Conference: Quality Assurance: QA Practices and their role within the gaming industry
What is quality assurance? Quality assurance is the testing portion of the development cycle. One of the biggest assets of being a QA Professional. Flexibility. CHanges occur day-to-day, hour to hour minute to minute. You’ll need a plan b, c, and d.
What else beside play games does QA do? I made “such-and-such” game. You may not create the pieces but you help to make it better by pointing out successes and failures. A certain level of quality must exist in the game. to obtain this is where the group comes in. QA makes sure that the game runs well.
Testing if a game works in black and white. but there are functioning grey areas as in which QA does the majority of their work. Does multiplayer work? does that mean can I get IN to a multiplayer game. Do the characters spawn in? can they see each other? can I win/lose the game? will I have a report after the game? can the players interact with one another? How well does it work? to what extent does it work? Thats the QA Dilemma.
Sometimes QA is looked down on because there isn’t much of a postive effect. More artists makes great art. More programming is adding features. Adding QA only finds more bugs. So when should it be used and when not? its the most expensive portion of dev process.
Should QA happen at the beginning or the end? Beginning is nice, becasue iterations can be effected agile fashion. however, its expensive because you’ll be running at the beginning and end. At the end, many bugs will exist, and may cause massive reworks or rewrites. Its cheaper at the end though, because you only test one lump.
Often, the QA job is to focus on budget and throw red flags up. It means checking the budget, knowing the types of programmers you have, the features and quality that you need, and what you have the time to do.
Students seem to want to test only at Beta Stage, because they seem to fear that they won’t like the game at alpha. The tech definition of Alpha is that all features should be present. Beta should be near shippable quality. if you had a gun to your head.
Most materials in programming with a game company stops automation because proprietary software would not allow it. IOS based automation tools do exist, but the best testing and the best tools are made by humans and humans make mistakes. So don’t forget to test and test your testing device. Don’t forget that partners will not share their software.
Does it work, and does it work well. Get those testers. Gameplay testing. Interview them and feel them out to decide whether they like the game. Its scary because the majority of the work is done. Again, this comes back to the idea of testing early or testing later.
For smaller companies, QA test as often as possible.
QA testing needs to test AFTER the product ships. On release, everyone goes on vacation except QA. Cartridge had no chance to fix bugs. Now with broadband, that info is pushed directly to you and you cannot play without it. Updates are certainly patchable.
Now, release dates are vague: “fall”, because QA is no longer in control of when the game drops. Marketing has been telling people when the game will drop, and the public needs to get the materials on the dates/times promised. QA’s job is to get the product out in quality. Marketing wants it out on time. In the end, decisions need to be made and priorities must be made.
QA is great to get in. It is the gateway department because you get to interact with every other department. YOu have to explain the bugs to them, and they’ll tell you why it happened. QA is hard work. Start there, ask for advice, work hard, and you have a great chance to move into the company by taking the initiative. QA role is to enforce that level of quality and let the other departments understand.
Ken Turner is a Faculty member of the Simulation and Video Game Development team at Wake Tech Community College
After achieving a certification last month in Software Business Analysis with BrainBench, I felt I might be able to achieve this certification. Boning up on the materials I used last month to prepare, I was able to run through this examination with an excellent time/score rating.
Having come from a background in project management, building whitepapers and presentations for Business Analysis and Software Development Life Cycle collateral through ASPE, and working in the field has really prepped me pretty well for this designation. With only a few days of mior enrichment and study, I was able to achieve this certification with only 30 minutes of the 40 minutes allowed through BrainBench testing.
At 6pm On December 18th, 1998 I attended the 1998 Winter Commencement Ceremonies presented by The University of North Carolina at Greensboro at the Greensboro Convention Center in Greensboro, NC.
Received my BFA in Design from the University of North Carolina at Greensboro!
Today I received my Bachelor of Fine Arts degree in Design with a specialization in Graphic Design and Mutlimedia. Hooray!
The Bachelor of Fine Arts degree is the highest undergraduate degree that you can receive in the arts, with the Bachelor of Arts as a lesser degree requiring no foreign language or upper-tier courses. In short:
How Fine Arts Degrees Stack Up
Here is the breakdown of visual arts to liberal arts credits that you will encounter in a BFA or BA program:
- Bachelor of Fine Arts: A BFA requires that approximately two thirds of the course work focus on the creation and study of visual arts, and one third of the course work focus on liberal arts (history, literature, psychology, etc.).
- Bachelor of Arts: For a BA, the course work ratios are flipped, with a two thirds focus on liberal arts and one third focus on visual arts.
These ratios hold true across all establishments of higher learning. The type of degree, not the institution, determines the amount of visual arts to liberal arts you will study.
I chose to take the BFA degree track in design because I want to teach graphic design at the collegiate or university level. To do this, I would have to really get into the field and get to know all facets of design. The BFA program at UNC-G ( http://www.uncg.edu will open in another window) has a focus on both the traditional design methodologies such as drawing, sculpture, color theory, painting, etc., coupled with an emphasis on software and multimedia design. This dual-emphasis on the old and the new will really give me a boost in the workplace (hoping).
Software I learned in school
- Adobe Photoshop 3.0
- Adobe Illustrator 2.0
- Adobe Premiere
- Adobe Pagemaker
- Quark XPress
- Aldus Freehand 5.0
- Macromedia Flash 2.0
- Macromedia Director
- Some HTML
Where did you go to school, and what did you learn? Let me know in the comments area!