-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcode.tex
More file actions
173 lines (172 loc) · 4.8 KB
/
code.tex
File metadata and controls
173 lines (172 loc) · 4.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
\documentclass[hyperref={pdfpagelabels=false}]{beamer}
%%% workaround: http://tex.stackexchange.com/questions/4436/beamer-undefined-control-sequence
\providecommand\thispdfpagelabel[1]{}
%%%
\usepackage{beamerthemesplit}
\usepackage{lmodern}
\title{Working with Code}
\author{UIC Linux Users Group}
\date{\today}
\begin{document}
\frame{\titlepage}
\section[outline]{}
\frame{\tableofcontents}
\section{editors}
\subsection{what you use}
\frame
{
\frametitle{beginner logic}
\begin{itemize}
\item{concept: programing is hard and scary. we should give beginers tools with limited capabilites}
\item{problem: beginners don't want to stay beginners}
\item{learn to use a decent IDE with a decent debugger, decent code prediction, syntax highlighting as soon as you are able}
\end{itemize}
}
\subsection{nano/pico}
\frame
{
\frametitle{nano}
\begin{itemize}
\item{familiar interface}
\item{included in almost every linux distribution}
\end{itemize}
}
\frame
{
\frametitle{example}
nano -w hello.txt
}
\subsection{vim}
\frame
{
\frametitle{vim}
\begin{itemize}
\item{Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set.}
\item{Also included in almost every linux distribution}
\end{itemize}
}
\frame
{
\frametitle{vim basics}
\begin{itemize}
\item{arrows/mouse : move around the file}
\item{i : insert a : append}
\item{d : delete/cut}
\item{y : yank/copy}
\item{wq : save and quit}
\item{w : save}
\item{u : undo}
\item{redo : ctrl+r}
\end{itemize}
}
\frame
{
\frametitle{more vim}
\begin{itemize}
\item{sp : splits the window}
\item{m[letter] : assigns a macro}
\item{v : visual mode}
\item{ctrl+v : visual block}
\item{gD : takes you to a variable/method declaration}
\item{ctrl+n : auto-completion}
\end{itemize}
}
\frame
{
\frametitle{configuring vim}
\begin{itemize}
\item{set autoindent}
\item{set smartindent}
\item{set number : displays line numbers in the left margin}
\end{itemize}
}
\subsection{eclipse}
\frame
{
\frametitle{eclipse}
\begin{itemize}
\item{advanced and powerful IDE (Integrated Development Enviornment)}
\item{Primarily used for Java development, however can be used for C/C++, PHP, Android development as well}
\end{itemize}
}
\section{compiling}
\subsection{g++}
\frame
{
\frametitle{g++}
\begin{itemize}
\item{g++ myprogram.cpp -o myprogram}
\item{./myprogram}
\end{itemize}
}
\subsection{javac}
\frame
{
\frametitle{javac}
\begin{itemize}
\item{javac myprogram.java}
\item{java -cp myprogram}
\end{itemize}
}
\subsection{makefiles}
% \frame
% {
% \frametitle{C/C++}
% \begin{itemize}
% \item{ sample makefile }
% \end{itemize}
% }
\section{debugging}
\subsection{introduction}
\frame
{
\frametitle{introduction}
\begin{itemize}
\item{debugging is the process of identifying the root cause of an error and correcting it}
\item{debugging can take up to 50 percent of development time and can be the hardest part}
\item{forces you to read and understand your code}
\end{itemize}
}
\subsection{tools}
\frame
{
\frametitle{tools}
\begin{itemize}
\item{gdb: (GNU Project Debugger)}
\item{ddd: graphical front end for gdb}
\item{compiler!!}
\item{eclipse has a very good debugger for your java code}
\end{itemize}
}
\subsection{tips}
\frame
{
\frametitle{tips}
\begin{itemize}
\item{try using a binary search algorithm to find the source of the error}
\item{talk to someone about your problem a.k.a. confessional debugging}
\item{take a break from the problem (go for a walk, get some coffee, etc)}
\item{make sure to save the original source (version control?)}
\item{well formatted and organized code makes debugging a lot easier}
\end{itemize}
}
\section{resources}
\subsection{resources}
\frame
{
\frametitle{resources}
\begin{itemize}
\item{download eclipse: http://www.eclipse.org/downloads/}
\item{VIM cheatsheet: http://www.zalas.eu/uploads/wp/2010/05/vi-vim-cheat-sheet.gif}
\item{Guide to Faster, Less Frustrating Debugging: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/Debug.html}
\item{Guide to Makefiles: http://www.delorie.com/djgpp/doc/ug/larger/makefiles.html}
\end{itemize}
}
%tell story
%work on some code, its beutiful
%add feature, it doesn't work
%rollback
\subsection{getting started}
\subsection{adding code}
\subsection{recovering changes}
\end{document}