\documentclass[11pt]{article}

\usepackage{fullpage}
\usepackage{epic}
\usepackage{eepic}
\usepackage{psfig}

%\newcommand{\proof}[1]{
%{\noindent {\it Proof.} {#1} \rule{2mm}{2mm} \vskip \belowdisplayskip}
%}


%\newtheorem{lemma}{Lemma}[section]
%\newtheorem{theorem}[lemma]{Theorem}
%\newtheorem{claim}[lemma]{Claim}
%\newtheorem{definition}[lemma]{Definition}
%\newtheorem{corollary}[lemma]{Corollary}

%Theorems and likes 
\newtheorem{assumption}{Assumption}[section]
\newtheorem{theorem}{Theorem}[section]
\newtheorem{fact}{Fact}[section]
\newtheorem{claim}{Claim}[section]
\newtheorem{lemma}{Lemma}[section]
\newtheorem{definition}{Definition}[section]
\newtheorem{corollary}{Corollary}[section]


\newcommand{\bproof}{\noindent{\it Proof}}
%\newcommand{\eproof}{\hspace*{\fill}$\Box$~~~~~\bigskip}
\newcommand{\eproof}{\hspace*{\fill}\rule{2mm}{2mm}~~~~~\bigskip}
\newenvironment{proof}{\bproof: }{\eproof}

% symbols and notation
\newcommand{\defeq}{\stackrel{\rm def}{=}}


\setlength{\oddsidemargin}{0in}
\setlength{\topmargin}{0in}
\setlength{\textwidth}{6in}
\setlength{\textheight}{8in}

\begin{document}

\setlength{\fboxrule}{.5mm}\setlength{\fboxsep}{1.2mm}
\newlength{\boxlength}\setlength{\boxlength}{\textwidth}
\addtolength{\boxlength}{-4mm}
\begin{center}\framebox{\parbox{\boxlength}{\bf
CS 681: Computational Number Theory and Algebra \hfill 
Lecture 1
\\
Lecturer: Manindra Agrawal
\hfill
Notes by: Zahir Koradia
%\\
\begin{flushright}
%date
August 2, 2005.
\end{flushright}
}}\end{center}
\vspace{5mm}

\section{References for the Course}
1. Modern Computer Algebra by Von Zur Gathen and Jurgen Gerhard.\\
2. Introduction to Copmutational Number Theory by Victor Shoup (Available on author's website)\\
3. Writeups and papers on the web.\\

\section{Basic Operations}
\subsection{1. In Number Theory}
a.Addition, subtraction.\\
b.Multiplication, division, modulo, factorization, testing primality.\\
c.LCM,GCD.\\

\subsection{2. In Algebra}
\subsubsection{A. Linear Algebra}
a.Matrix Operations.\\
b.Solving system of linear equations.\\
c.Finding eigen values.\\
\subsubsection{B. Polynomial Algebra}
a.Addition, Multiplication.\\
b.Finding roots, factorization.\\
c.Checking irreducibility.\\
\subsubsection{C. Abstract Algebra}
a.Finding inverse of a group element.\\
b.Finding non-trivial homomorphisms.\\
c.Finding a generator set in a group.\\
d.Finding cosets.\\
e.Finding order of an element.\\

\section{Tools for Designing Algorithms}
1. Chinese remaindering.\\
2. Fast Fourier Transform.\\
3. Divide and Cnquer Technique.\\
4. Short vectors in a Lattice.\\
5. Elliptical curves.\\
6. Smooth numbers.\\
6. Hensel Lifting.\\

\section{Reed-Solomon Code(Error correcting code)}

Let $I$ be the entire data to be stored in a cd. Break I into chunks of $b*k$ bits.\\
Let $F$ be the finite field of size %
\begin{math}2^{b}%
\end{math}.\\
Each chunk is coded seperately.\\

\subsection{Coding one chunk of b*k bits}
Break the chunk into k blocks of b bits.\\
Let these be %
\begin{math} d_{0},d_{1},\ldots,d_{k-1} \end{math}\\
Treat each $d_{i}$ as an element of $F$\\
Let polynomial $P(x)=\sum_{i=0}^{k-1} d_{i}*x^{i}$\\
Let $e_0,e_1,\ldots,e_{n-1}$ be $n$ distinct elements of $F , n\leq2^b$\\
Let $f_j=P(e_j)$\\
Then codeword corresponding to $d_0,d_1,\ldots,d_{k-1}$ ($k*b$ bits) is \mbox{$f_0,f_1,\ldots,f_{n-1}$ ($n*b$ bits)}\\
Note that $n>k$. This is where the redundancy comes in.\\
\end{document}


