NDuma / hacking

Under-graduate course

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Hacking

Creative Commons Licence
Hacking by TJ is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Permissions beyond the scope of this license may be available at https://iam.tj/projects/licensing/.

Please read LICENSE{.html,md}

Source Code © Copyright 2013 TJ <hacking@iam.tj> https://iam.tj
Program code and scripts licensed under the GNU General Public License version 3.0
http://www.gnu.org/licenses/gpl-3.0.html

The canonical home of this course material is https://iam.tj/projects/hacking/


[TOC]

Introduction

This is a course I am developing for under-graduate students in England.

Overview

I hope you choose Hacking because you are excited by the prospect of taking things apart, figuring out how they work, and improving them. If you have experienced the feeling of frustration when some device or software application lacks functionality that you require or desire and the developers are not interested in providing it then Hacking is going to introduce you to the ethos, culture, mind-set, tools and techniques that'll equip you to hack software and tweak hardware.

Coursework will include studying local and network applications and involve hacking on active open-source projects. You will be contributing real and valuable contributions back to the community of developers and application users world-wide for the benefit of all.

You will take away an enduring sense of empowerment to extend and fix the applications that are important to you combined with the know-how, confidence and skills to make a difference. It may well inspire you into entrepreneurship.

The course has several levels. Each level is self-contained although the higher levels assume mastery of the previous levels.

You will learn how to:

  • recognise and explain the difference between hacking and cracking
  • understand the origins and development of the hacker culture and related movements
  • evaluate applications for hacker-friendly qualities
  • read and understand source-code regardless of the programming language
  • recognise and understand common patterns
  • evaluate and recognise authoritative sources from the Internet
  • make intuitive inferences from small clues
  • use POSIX/UNIX/Linux command-line tools
  • perform basic debugging
  • analyse network traffic
  • recognise and manage bugs using bug trackers
  • use distributed version control systems
  • develop patches for real bugs
  • communicate with other developers
  • contribute to open-source projects
  • read and understand copyright licenses, end-user license agreements, and the law
  • use reverse engineering techniques

Prerequisites

  • Command of the English language, grammar, idioms and cultural references
  • Basic understanding of using command-line terminals
  • Basics of text-editing applications
  • Effective searching on the Internet
  • Some exposure to programming concepts and/or languages

References

  1. But only on Roundworld (thanks to Terry Pratchett)

About

Under-graduate course

License:Other


Languages

Language:Python 38.0%Language:Awk 37.3%Language:Shell 23.3%Language:CSS 1.4%