第一次系统地学习英文课程,还是Program Paradigm,需要扎实的专业知识和较高的英文水平,蛮艰难的。Lecture反复听至少六遍:3遍理解内容,1遍解决神经中枢系统跑飞问题,2遍理解英文;Assignment反复读至少七遍:2遍熟悉单词,3遍理解句子,2遍提炼内容。希望这一套课程(27次课+30左右Handout+10左右Assignment+1 Final+1 Midterm)训练下来,能够有所进步。
What To Do
Assignment 1 has very little to de with C++ coding, just a smaller problem need to be solved over the next seven days. The not-so-sexy task is to parse the command line and read in specified grammar file to build a grammar object in the form of an STL map.
The High-level Outline Of How To Approach The Problem:
Read the UNIX Basics handout (distributed today as Handout 05)
Learn how to use Terman cluster (go there or use ssh into a machine)
Attend next Tuesday’s discussion section (make it a point): Unix
Use emacs to read production.h, definition.h and rsg.cc
Some Advice:
- Explore a new UNIX world
- Hang out and ask TAs for advice
- All that being said, you need to code as well……ʕ •ᴥ•ʔ
Submission Notice
- Code unification
- Clear, concise function names and compact(紧实的?) implementations (cover one algorithmic detail, or call a series of helper functions and methods)
- No global variables ever (A function that depends on global variables is like a laptop that requires a direct Ethernet connection to Internet. Functions without global variables are wireless.(O_o)TA的比喻真生动……)
- Do not make unecessary copies of large data structures
- Do not make lots of little copies of small data structures
- Do not make a dynamic memory allocation unless there is an excellent reason for doing so
- Do not orphan any memory either
- You have the responsibility to free up anything you allocate
- Documentation of particularly dense code
UNIX basics
简单介绍了以下指令
- mkdir: make directory
- cd: change directory
- ls: list pwd: present working directory
- ./filename: look into the current directory for the executable file filename
- make: compile and build the code