Skip to content

Proposal for 'Emacs and Advanced Tools in Unix' course

Notifications You must be signed in to change notification settings

drkmrin78/EATU-Proposal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Emacs and Advanced Tools in Unix

Traditional Proposal

  • Overview
  • Introduction
  • Research
  • Recommendation
  • Conclusion

Overview

The purpose of this course is to allow students to build and experience an environment that increases workflow and is tailored to the needs of the individual. Topics and material that will be covered in this course will teach students how to use and adapt to innovative tools that computer scientists use daily. These tools include the Unix command-line, Emacs and Vim text-editors, Git version control system, LaTeX typesetting system, and Shell scripting. Not only will the students learn how to use these tools, but practice using them in meaningful projects and assignments that will carry with them past the course and in their day to day lives as computer scientists.

EATU in detail

The Primary focus of this course will be to use the GNU Emacs text editor to complete various tasks that would normally require multiple environments and work-spaces. Emacs is a powerful tool that goes beyond simple text editing for various languages. In this course students will learn to use Emacs as a word processor, interactive presentation display manager, excel-like spreadsheet manager, organization tool, extended Git version controller, and programming environment for all programming languages. In learning to use them students will also learn other Unix tools such as Git and shell scripting.

Emacs as a Workspace

Emacs has built-in tools that make it easy to use at a note taking enviornment, organized agenda calendar and todo list, and can be used to make spread sheets all in one file. Learning to use Emacs as a replacement for Office programs like Word and Excel is preferable because it has the added benefit of working as an agenda tool that increases workflow.

Every language has an IDE and each one works differently; short-cuts, auto-completion, etc., but in Emacs any project of any language can be developed in one editor with little to no configurations eneded. Students will learn to add new languages to their environment and be able to keep up workflow because Emacs will operate the same way they expect.

Unix Tools

Students will have an opportunity to learn and use Git, Vim, Sed, and Shell scripting to complete assignments. These tools will be taught in collaboration with the Emacs content so that they can 1) see the tools in action and 2) begin to build a customized work environment that is tailored to their needs.

Git will be used to version control their configuration. In learning this, students will gain the knowledge to effect version control with git for any project in the future. Version control is a vital tool to use in the real world, especially when working in a team setting.

Students will also have an opportunity to learn how to use the stream editor Sed and the commandline in order to quickly edit and run code. The commandline is a powerful that is very important to learn early, while Sed is a powerful tool that makes editing via scripts very easy. These will both be taught while learning the organization tool, Org-mode, in Emacs. The reason for teaching these together is so that students can learn how to rapidly test and document their code and scripts in a highly efficient environment.

Presentations

Toward the end of the course, students will be required to present a package that they have used in their workflow that they have enjoyed. In their presentation they will be require to used the ‘demo-it’ package that is used to develop interactive presentations. The same file they use to write their descriptions, code, and spreadsheets will be automatically turned into a slide show, where they will learn to add interactive shells and buffers. Learning to create a presentation in this manner makes it really easy, fast, and keeps everything organized.

Final Project

The final project will be a small research assignment of the students choosing. The assignment can be anything from exploring the complexity of an algorithm to comparing languages side by side. Minimum requirements for this project is that it should two pages long, customized latex export via org-mode, one code block, and one spreadsheet with auto-generated cells. This project will give students a chance to write a paper about something they explored on their own, many computer scientist have blogs about personal projects and tutorials.

Conclusion

This course is designed to teach students how to develop and build a work environment that is personalized and familiar. All craftsmen from chefs to carpenters have dependable tools that get the job done well, as programmers our tools need to be the same way. Emacs is an amazing environment for everything that a computer scientists creates. Not only are the students going to learn how to use Emacs but other tools to create a complete tool belt for a variety of projects and needs.

Schedule Outline

Week #Content/MaterialsExercises
0Intro to Editors: ed, vi/vim, Emacs, third partyed exercise, discussion about editors as tools and the ideal editor
1Vim basics, Using the cmd lineEmacs copy/paste exercise
2Emacs basics, Setting up a Git repoCreating first repo for version controlling configuration
3Emacs customizing and package installingUsing menus and installing first package in Emacs
4Org-mode, LaTeX, Shell ScriptingHW: Math review Exported to Latex
5More customization, Org-mode continuedIntroduce Presentation assignments
6Using Latex in an IDE, Midterm review
7MidTerm on Emacs commands, git, latex, cmdMidterm
8Presentation Day 1Student presentation on packages they are using
9Elisp/Lisp more in depth
10Break
11Presentation Day 2Student presentation on packages they are using
12
13
14Discussion Day: thoughts and feedback, other commentsFinal Project Due

About

Proposal for 'Emacs and Advanced Tools in Unix' course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published