├── CZ1003 ├── README.md ├── dynamic_pattern.py └── hangman.py ├── CZ2003 ├── Assignment1.wrl ├── Assignment2.wrl └── readme.txt ├── CZ4024 └── CZ4024CheatSheet.docx ├── CZ8003 └── HRMSummary.md ├── LICENSE └── README.md /CZ1003/README.md: -------------------------------------------------------------------------------- 1 | # Dynamic Pattern 2 | 3 | Dynamic Pattern, assignment 1 for CZ1003 Introduction to Programming 2012-2013 Semester 1, offered by School of Computer Science and Engineering, Nanyang Technological University, Singapore. 4 | 5 | To run the code: 6 | 7 | ```Shell 8 | $ python3 dynamic_pattern.py 9 | 10 | # input pattern size: 3 11 | # x.x 12 | # .x. 13 | # x.x 14 | # 15 | # xx. 16 | # ..x 17 | # xx. 18 | # 19 | # .xx 20 | # x.. 21 | # .xx 22 | # 23 | # x.x 24 | # .x. 25 | # x.x 26 | # 27 | # xx. 28 | # ..x 29 | # xx. 30 | ``` 31 | 32 | # Hangman 33 | 34 | Hangman game, assignment 2 for CZ1003 Introduction to Programming 2012-2013 Semester 1, offered by School of Computer Science and Engineering, Nanyang Technological University, Singapore. 35 | 36 | To run the code 37 | 38 | ```Shell 39 | $ python3 hangman.py 40 | 41 | # OO OO OOOOO OO OO OOOOO OO OO OOOOO OO OO 42 | # OO OO OOO OOO OOOO OO OOO OOO OOO OOO OOOOOOOOO OOOO OO 43 | # OO OO OO OO OO OO OO OO OOOO OOOO OO OO OO OO OO 44 | # OOOOOOO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO 45 | # OO OO OOOOOOOOO OO OO OO OO OOOOO OO OOOO OO OOOOOOOOO OO OO OO 46 | # OO OO OO OO OO OOOO OO OO OO OO OO OO OO OO OOOO 47 | # OO OO OO OO OO OOO OOO OOO OO OO OO OO OO OOO 48 | # OO OO OO OO OO OO OOOOO OO OO OO OO OO OO 49 | # 50 | # 51 | # Scope: colour 52 | # 53 | # 54 | # 55 | # 56 | # 57 | # _ _ _ _ _ 58 | # you have guess: 59 | # you have 9 more chance 60 | # You may enter 'hint' for a hint 61 | # Please enter an alphabet: 62 | ``` -------------------------------------------------------------------------------- /CZ1003/dynamic_pattern.py: -------------------------------------------------------------------------------- 1 | #import the time function so time.sleep can be use to "hold" the while loop before it print out the next pattern. 2 | import time 3 | 4 | 5 | #the user is asked to input the pattern size 6 | #assumption: user input is always integers 7 | n = int (input("input pattern size: ")) 8 | 9 | 10 | #If user entered a value less than 3, 11 | #ask the user to enter a value which is greater than 3 until a value greater than 3 is entered 12 | while n<3: 13 | print("warning: pattern size should be at least 3!") 14 | n = int (input("input pattern size: ")) 15 | 16 | 17 | #this is the coordinate that tell when a "x" string is needed to be printed out 18 | firstx = 0 19 | lastx = n - 1 20 | 21 | 22 | #initialize the coordinate 23 | #this value will be updated though out the whole process 24 | #this is needed so that selection can be made to print either "x" or "." 25 | col = 0 26 | row = 0 27 | 28 | 29 | #number of pattern,i.e. 1st pattern, 2nd pattern..... 30 | number = 0 31 | 32 | 33 | #for this code, it is an infinte loops of selection. 34 | #i.e, make a selection in the first loop, make a selection in the second loop and so on. 35 | #so, the while loop need to be always true. 36 | #there are lines to track the values of variables before they are updated. 37 | while True: 38 | 39 | #whether there is a need to go to the next row 40 | #APPENDIX A 41 | if col == n: 42 | #print("firstx: ", firstx,"lastx: ",lastx,"column: ",col,"row: ",row,end="") 43 | col = 0 44 | row += 1 45 | firstx += 1 46 | lastx -=1 47 | print() 48 | 49 | 50 | 51 | #whether there is a need to go to the next pattern 52 | #APPENDIX B 53 | elif row == n: 54 | #print("firstx: ", firstx,"lastx: ",lastx,"column: ",col,"row: ",row,end="") 55 | number += 1 56 | firstx = 0 57 | lastx = n - 1 58 | col = 0 59 | row = 0 60 | print() 61 | time.sleep (0.5) 62 | 63 | 64 | #choose whether print x or . 65 | #APPENDIX C 66 | elif col == (firstx + number) % n or col == (lastx + number) % n: 67 | print("x",end="") 68 | #print("firstx: ", firstx,"lastx: ",lastx,"column: ",col,"row: ",row,end="") 69 | col += 1 70 | else: 71 | print(".",end="") 72 | #print("firstx: ", firstx,"lastx: ",lastx,"column: ",col,"row: ",row,end="") 73 | col += 1 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | ################### APPENDIX A ################################################# 83 | #if column is equal to n 84 | #it means the coordinate is out of the n*n pattern 85 | # 86 | #e.g:when n=3 87 | # 88 | # col=0 col=1 col=2 col=3 89 | #row=0 x . x (here, the coordinate is out of the pattern) 90 | #row=1 91 | #row=2 92 | #row=3 93 | # 94 | #now, the coordinate need to be updated 95 | #column value return to the original value, which is col=0 96 | #add one to current row value, so that coordinate will now located at the next row 97 | #Beside that, there are two "x" in every row, except for the odd value of n 98 | #When the coordinate move to the next row, the coordinate of first and second "x" also change. 99 | #these coordinates need to be update 100 | #by add 1 to first "x" coordinate (because it now move to right) 101 | #and subtract 1 to the second "x" coordinate (because it now move to the left.) 102 | ####################################################################################################### 103 | 104 | 105 | ################### APPENDIX B ################################################# 106 | #else if row is equal to n 107 | #e.g:n=3 108 | # col=0 col=1 col=2 col=3 109 | #row=0 x . x print() 110 | #row=1 . x . print() 111 | #row=2 x . x print() 112 | #row=3 print() 113 | #a pattern is finish. The next pattern should be printed now 114 | #a print() is included so that there is a space between two pattern. 115 | #a one is plused to number of pattern because it need move on the the next type of pattern. 116 | #the "number" variable will be use in the later part, so that we can "shift" the last row to the first row. 117 | #other variables' value is initialize. 118 | ####################################################################################################### 119 | 120 | 121 | ################### APPENDIX C ################################################# 122 | #there are two condition that are used to choose whether to print 'x' or '.' 123 | #the first condition is 'col == (firstx + number) % n ' 124 | #the second condition is 'col == (lastx + number) % n ' 125 | #the following example will show how to get these formula 126 | # 127 | #let say I have a long strip of paper that has these patterns 128 | #e.g: n=3 and number=0 129 | # 130 | # 131 | # x . x x . x x . x x . x x . x x . x x . x x . x 132 | # . x . . x . . x . . x . . x . . x . . x . . x . 133 | # x . x x . x x . x x . x x . x x . x x . x x . x 134 | # (!!!!!!) 135 | # (let say this is my first pattern that I wan to print out) 136 | # 137 | # x . x x . x x . x x . x x . x x . x x . x x . x 138 | # . x . . x . . x . . x . . x . . x . . x . . x . 139 | # x . x x . x x . x x . x x . x x . x x . x x . x 140 | # (!!!!!!!) 141 | # (second pattern) 142 | # 143 | # 144 | # 145 | # 146 | # x . x x . x x . x x . x x . x x . x x . x x . x 147 | # . x . . x . . x . . x . . x . . x . . x . . x . 148 | # x . x x . x x . x x . x x . x x . x x . x x . x 149 | # !!!(^)!(^) 150 | # (original first col) (original last col) 151 | # 152 | #when I want to print out the second pattern, when number = 1 153 | #the first col will move to the middle, 154 | #so (firstx + 1) 155 | #and the last col will move to the first. 156 | #If (lastx + 1) is written, the last row is out of the pattern size, 157 | #that is why a '% n' is added because the value of (lastx + 1) cannot execced or equal to the value of n 158 | #col == (lastx + 1) % n 159 | #In here, lastx = n-1, n = 3 160 | #so (lastx + 1) % n = 0 161 | #this implied that, the 'lastx' now go to the first column. 162 | # 163 | #The general condition that need to print a 'x' is 164 | #col == (firstx + number) % n or \ 165 | #col == (lastx + number) % n 166 | ####################################################################################################### 167 | 168 | 169 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /CZ1003/hangman.py: -------------------------------------------------------------------------------- 1 | #Andy Chong Chin Shin 2 | 3 | def welcome(): 4 | """hangman welcome graphic""" 5 | print(""" 6 | OO OO OOOOO OO OO OOOOO OO OO OOOOO OO OO 7 | OO OO OOO OOO OOOO OO OOO OOO OOO OOO OOOOOOOOO OOOO OO 8 | OO OO OO OO OO OO OO OO OOOO OOOO OO OO OO OO OO 9 | OOOOOOO OO OO OO OO OO OO OO OO OO OO OO OO OO OO OO 10 | OO OO OOOOOOOOO OO OO OO OO OOOOO OO OOOO OO OOOOOOOOO OO OO OO 11 | OO OO OO OO OO OOOO OO OO OO OO OO OO OO OO OOOO 12 | OO OO OO OO OO OOO OOO OOO OO OO OO OO OO OOO 13 | OO OO OO OO OO OO OOOOO OO OO OO OO OO OO 14 | 15 | """) 16 | 17 | def dictionary(): 18 | """define a dictionary with 4 scope and five words for each scope""" 19 | MakeDictionary = { "computer science" : ["python","prolog","computer","program","internet"], 20 | "colour" : ["violet","blue","green","yellow","purple"], 21 | "mathematics" : ["probability","differentiation","addition","subtraction","division"], 22 | "science" : ["biology","chemistry","physics","zoology","quantum"]} 23 | return MakeDictionary 24 | 25 | def select_word(FromDictionary): 26 | """ select a word randomly from the dictionary 27 | print the scope and return WordChosen """ 28 | #make all keys in dictionary to be a list 29 | #select a key in the list randomly, make all values of the key to be a list 30 | #select a value randomly from the list 31 | ScopeAvailable = list(FromDictionary.keys()) 32 | import random 33 | ScopeChosen = random.choice (ScopeAvailable) 34 | ListOfWordChosen = FromDictionary[ScopeChosen] 35 | WordChosen = random.choice(ListOfWordChosen) 36 | print("{:^40s}".format("Scope: "+ScopeChosen)) 37 | return WordChosen 38 | 39 | def ShowGraphic(chance): 40 | """graphic of hangman""" 41 | if chance == 9: 42 | print("{:^40s}".format(" ")) 43 | print("{:^40s}".format(" ")) 44 | print("{:^40s}".format(" ")) 45 | print("{:^40s}".format(" ")) 46 | print("{:^40s}".format(" ")) 47 | elif chance == 8: 48 | print("{:^40s}".format(" ")) 49 | print("{:^40s}".format(" ")) 50 | print("{:^40s}".format(" ")) 51 | print("{:^40s}".format(" ")) 52 | print("{:^40s}".format("__________")) 53 | elif chance == 7: 54 | print("{:^40s}".format(" ")) 55 | print("{:^40s}".format(" | ")) 56 | print("{:^40s}".format(" | ")) 57 | print("{:^40s}".format(" | ")) 58 | print("{:^40s}".format("__|_______")) 59 | elif chance == 6: 60 | print("{:^40s}".format(" ____ ")) 61 | print("{:^40s}".format(" | ")) 62 | print("{:^40s}".format(" | ")) 63 | print("{:^40s}".format(" | ")) 64 | print("{:^40s}".format("__|_______")) 65 | elif chance == 5: 66 | print("{:^40s}".format(" ____ ")) 67 | print("{:^40s}".format(" | O ")) 68 | print("{:^40s}".format(" | ")) 69 | print("{:^40s}".format(" | ")) 70 | print("{:^40s}".format("__|_______")) 71 | elif chance == 4: 72 | print("{:^40s}".format(" ____ ")) 73 | print("{:^40s}".format(" | O ")) 74 | print("{:^40s}".format(" | | ")) 75 | print("{:^40s}".format(" | ")) 76 | print("{:^40s}".format("__|_______")) 77 | elif chance == 3: 78 | print("{:^40s}".format(" ____ ")) 79 | print("{:^40s}".format(" | O ")) 80 | print("{:^40s}".format(" | /| ")) 81 | print("{:^40s}".format(" | ")) 82 | print("{:^40s}".format("__|_______")) 83 | elif chance == 2: 84 | print("{:^40s}".format(" ____ ")) 85 | print("{:^40s}".format(" | O ")) 86 | print("{:^40s}".format(" | /|\\ ")) 87 | print("{:^40s}".format(" | ")) 88 | print("{:^40s}".format("__|_______")) 89 | elif chance == 1: 90 | print("{:^40s}".format(" ____ ")) 91 | print("{:^40s}".format(" | O ")) 92 | print("{:^40s}".format(" | /|\\ ")) 93 | print("{:^40s}".format(" | / ")) 94 | print("{:^40s}".format("__|_______")) 95 | 96 | elif chance == 0: 97 | print("{:^40s}".format(" ____ ")) 98 | print("{:^40s}".format(" | O ")) 99 | print("{:^40s}".format(" | /|\\ ")) 100 | print("{:^40s}".format(" | / \\ ")) 101 | print("{:^40s}".format("__|_______")) 102 | 103 | def ShowCurrentStatus(CurrentStatus): 104 | """input a list of word in 'list', output a list of word in 'string'""" 105 | print("{:^40s}".format(" ".join(CurrentStatus))) 106 | 107 | def ShowGuessedWord(alphabet_guess_already): 108 | """show all word in the list of alphabet_guess_already""" 109 | print("{:^40s}".format("you have guess: "+" ".join(alphabet_guess_already))) 110 | 111 | def ShowChance(chance): 112 | """show how many chances are left""" 113 | print("{:^40s}".format("you have {} more chance".format(chance))) 114 | 115 | def AskForInput(): 116 | print("{:^40s}".format("You may enter 'hint' for a hint")) 117 | print("{:^40s}".format("Please enter an alphabet: ")) 118 | 119 | def GetInput(): 120 | """Get player inputs and lower-case the input""" 121 | Input = str(input("{:>20s}".format(""))) 122 | print("\n \n \n \n \n") 123 | return Input.lower() 124 | 125 | def CheckInput(Input): 126 | """check for player input. 127 | If it is 'hint' or a alphabet, 128 | return True""" 129 | if Input.lower() == "hint": 130 | return True 131 | elif len(Input) == 1 and Input.islower(): 132 | return True 133 | else: 134 | return False 135 | 136 | def MultipleSameInput(Input,alphabet_guess_already): 137 | """if Input is in alphabet_guess_already, return True""" 138 | if Input in alphabet_guess_already: 139 | return True 140 | else: 141 | return False 142 | 143 | def GiveHint(CurrentStatus,word): 144 | """ if player ask for a hint 145 | select an alphabet that is correct and has not been guessed by player 146 | print out the hint""" 147 | ListOfHint =[] 148 | #iterate through CurrentStatus to check for alphabets that haven't been guessed by player 149 | #make all the alphabets to be a list 150 | for n in range (0, len(CurrentStatus)): 151 | if CurrentStatus[n] == "_": 152 | ListOfHint.append(n) 153 | import random 154 | #choose an alphabets randomly from the list 155 | ChosenHint = random.choice(ListOfHint) 156 | ChosenHint = word[ChosenHint] 157 | print("you hint is: ",ChosenHint) 158 | 159 | def CorrectOrWrong(Input,word): 160 | """Check if Input is inside word""" 161 | if Input in word: 162 | return True 163 | else: 164 | return False 165 | 166 | def UpdateVariable(Input,word,CurrentStatus,chance): 167 | """if Input is correct, update CurrentStatus. 168 | If input is wrong, update chance 169 | return CurrentStatus,chance """ 170 | if CorrectOrWrong(Input,word): 171 | for n in range (0,(len(word))): 172 | if Input == word[n]: 173 | CurrentStatus[n] = Input 174 | else: 175 | chance -= 1 176 | return CurrentStatus,chance 177 | 178 | def UpdateGuessWord(Input, alphabet_guess_already): 179 | """update new Input to alphabet_guess_already""" 180 | alphabet_guess_already.append(Input) 181 | return alphabet_guess_already 182 | 183 | def Win(CurrentStatus,word): 184 | """check if player win""" 185 | if CurrentStatus == word: 186 | return True 187 | else: 188 | return False 189 | 190 | def Lose(chance): 191 | """check if player lose""" 192 | if chance == 0: 193 | return True 194 | else: 195 | return False 196 | 197 | def game(): 198 | """whole game process""" 199 | welcome() 200 | 201 | MyDict = dictionary() 202 | word = list(select_word(MyDict)) 203 | CurrentStatus = list("_"*len(word)) 204 | chance = 9 205 | alphabet_guess_already=[] 206 | 207 | while True: 208 | ShowGraphic(chance) 209 | ShowCurrentStatus(CurrentStatus) 210 | ShowGuessedWord(alphabet_guess_already) 211 | ShowChance(chance) 212 | AskForInput() 213 | Input = GetInput() 214 | if CheckInput(Input): 215 | if MultipleSameInput(Input,alphabet_guess_already): 216 | print("{:^40s}".format("You have guess this alphabet already, please guess another alphabet")) 217 | continue 218 | elif Input =="hint": 219 | GiveHint(CurrentStatus,word) 220 | continue 221 | elif CorrectOrWrong(Input,word): 222 | print("{:^40s}".format("you guess the correct alphabet")) 223 | CurrentStatus,chance = UpdateVariable(Input,word,CurrentStatus,chance) 224 | else: 225 | print("{:^40s}".format("you guess the wrong alphabet")) 226 | CurrentStatus,chance = UpdateVariable(Input,word,CurrentStatus,chance) 227 | alphabet_guess_already = UpdateGuessWord(Input, alphabet_guess_already) 228 | else: 229 | print("{:^40s}".format("Please enter a alphabet only")) 230 | 231 | if Win(CurrentStatus,word): 232 | print("{:^40s}".format("you win!")) 233 | print("{:^40s}".format("the correct word is: "+"".join(word))) 234 | break 235 | elif Lose(chance): 236 | ShowGraphic(chance) 237 | print("{:^40s}".format("you lose")) 238 | print("{:^40s}".format("the correct word is: "+ "".join(word))) 239 | break 240 | 241 | def PlayAgain(): 242 | """ask if player wants to play again""" 243 | print("{:^40s}".format("Do you want to play again? y or n ?")) 244 | again = str(input("{:>20s}".format(""))) 245 | again = again.lower() 246 | 247 | # when it is not the case that "y" XOR "n" 248 | while not ((again != "y" and again == "n") or (again == "y" and again != "n")): 249 | print("{:^40s}".format("Please enter y or n")) 250 | print("{:^40s}".format("Do you want to play again? y or n ?")) 251 | again = str(input("{:>20s}".format(""))) 252 | again = again.lower() 253 | 254 | if again == "y": 255 | return True 256 | elif again == "n": 257 | return False 258 | 259 | while True: 260 | game() 261 | if PlayAgain(): 262 | continue 263 | else: 264 | print("{:^40s}".format("Thank For Playing!")) 265 | break -------------------------------------------------------------------------------- /CZ2003/Assignment1.wrl: -------------------------------------------------------------------------------- 1 | #VRML V2.0 utf8 2 | # Copyright by Liu Qi and Alexei Sourin 3 | EXTERNPROTO FGeometry [ 4 | exposedField SFString definition 5 | exposedField MFFloat parameters 6 | exposedField MFInt32 resolution 7 | exposedField SFVec3f bboxCenter 8 | exposedField SFVec3f bboxSize 9 | exposedField SFString type 10 | exposedField MFNode parents 11 | exposedField SFVec2f timeSpan 12 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FGeometry" 13 | EXTERNPROTO FMaterial [ 14 | exposedField SFString diffuseColor 15 | exposedField SFString type 16 | exposedField MFColor patternColor 17 | exposedField MFFloat patternKey 18 | exposedField SFString ambientIntensity 19 | exposedField SFString emissiveColor 20 | exposedField SFString shininess 21 | exposedField SFString specularColor 22 | exposedField SFString transparency 23 | exposedField MFFloat parameters 24 | exposedField MFNode parents 25 | exposedField SFVec2f timeSpan 26 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FMaterial" 27 | EXTERNPROTO FTexture3D [ 28 | exposedField SFString definition 29 | exposedField SFString type 30 | exposedField MFFloat parameters 31 | exposedField MFNode parents 32 | exposedField SFVec2f timeSpan 33 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FTexture3D" 34 | EXTERNPROTO FAppearance [ 35 | exposedField SFNode material 36 | exposedField SFNode texture 37 | exposedField SFNode textureTransform 38 | exposedField SFNode texture3D 39 | exposedField MFNode parents 40 | eventIn SFBool refresh 41 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FAppearance" 42 | EXTERNPROTO FShape [ 43 | exposedField SFNode geometry 44 | exposedField SFNode appearance 45 | exposedField SFString polygonizer 46 | exposedField MFNode parents 47 | exposedField SFTime startTime 48 | exposedField SFTime stopTime 49 | exposedField SFTime cycleInterval 50 | exposedField SFBool loop 51 | exposedField SFBool enabled 52 | eventOut SFTime cycleTime 53 | eventIn SFFloat set_fraction 54 | field SFInt32 frames 55 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FShape" 56 | EXTERNPROTO FTransform [ 57 | exposedField SFString operation 58 | exposedField SFString type 59 | exposedField SFString polygonizer 60 | exposedField MFFloat parameters 61 | exposedField SFString center 62 | exposedField SFString rotation 63 | exposedField SFString scale 64 | exposedField SFString scaleOrientation 65 | exposedField SFString translation 66 | exposedField MFNode children 67 | exposedField MFNode parents 68 | eventIn SFBool refresh 69 | exposedField SFVec2f timeSpan 70 | exposedField SFTime startTime 71 | exposedField SFTime stopTime 72 | exposedField SFTime cycleInterval 73 | exposedField SFBool loop 74 | exposedField SFBool enabled 75 | eventOut SFTime cycleTime 76 | eventIn SFFloat set_fraction 77 | field SFInt32 frames 78 | ] "http://www3.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FTransform" 79 | 80 | NavigationInfo {type [ "EXAMINE", "ANY"] } 81 | Background { 82 | skyColor 0 0 0 83 | } 84 | Viewpoint { 85 | fieldOfView 1.3 86 | position 0 0.5 3.5 87 | orientation 0 0 0 0 88 | } 89 | 90 | DEF body FShape { 91 | polygonizer "analytical" 92 | loop FALSE 93 | cycleInterval 1 94 | appearance FAppearance { 95 | material FMaterial { 96 | diffuseColor " 97 | r = fabs(sin(u*pi*200)/8)+0.494117; 98 | g = 0.345098; 99 | b = 0.203921;" 100 | patternKey [0.3, 0.7] 101 | patternColor [0 1 0, 1 0 0] 102 | timeSpan 0 1 103 | } 104 | texture3D FTexture3D { 105 | definition "0" 106 | timeSpan 0 1 107 | type "displacement" 108 | } 109 | } 110 | geometry FGeometry { 111 | definition "function frep(x1,y1,z1,t){ 112 | x=x1; 113 | y=y1; 114 | z=z1; 115 | 116 | circle_btm = 0.7*0.7-x*x-((y+0.5)/(0.95*0.95))*((y+0.5)/(0.95*0.95)); 117 | disk1 = min(min(circle_btm,0.2-z),z+0.2); 118 | circle_top = 0.5*0.5-x*x-((y-0.3)/(0.95*0.95))*((y-0.3)/(0.95*0.95)); 119 | disk2 = min(min(circle_top,0.2-z),z+0.2); 120 | body = max(disk1,disk2); 121 | 122 | mid = min(0.2*0.2-x*x-(y-0.3)*(y-0.3),z+0.15); 123 | fun = min(body,-mid); 124 | return fun; 125 | }" 126 | parameters [-1, 1, -1, 1, -1, 1] 127 | bboxSize 1.41 2.1 0.41 128 | bboxCenter 0 -0.2 0 129 | resolution [70, 70, 20] 130 | timeSpan 0 1 131 | } 132 | } 133 | 134 | DEF board FShape { 135 | polygonizer "analytical" 136 | loop FALSE 137 | cycleInterval 1 138 | appearance FAppearance { 139 | material FMaterial { 140 | diffuseColor " 141 | r = fabs(sin(v*pi*100)/4)+0.321568; 142 | g = 0.17254; 143 | b = 0.02745;" 144 | patternKey [0.3, 0.7] 145 | patternColor [0 1 0, 1 0 0] 146 | timeSpan 0 1 147 | } 148 | texture3D FTexture3D { 149 | definition "0" 150 | timeSpan 0 1 151 | type "displacement" 152 | } 153 | } 154 | geometry FGeometry { 155 | definition " 156 | function frep(x1,y1,z1,t){ 157 | x=x1; 158 | y=y1; 159 | z=z1; 160 | 161 | board = min(min(min(min(min(0.2-x,0.2+x),y-0.3),1.8-y),0.225-z),z-0.2); 162 | mid = min(0.2*0.2-x*x-(y-0.3)*(y-0.3),z); 163 | board = min(board,-mid); 164 | top = min(min(min(min(min(0.25-x,0.25+x),2.4-y),y-1.8),0.225-z),z-0.2); 165 | return max(board,top); 166 | 167 | }" 168 | parameters [-1, 1, -1, 1, -1, 1] 169 | bboxSize 0.51 2.71 0.43 170 | bboxCenter 0 1.05 0.0125 171 | resolution [30, 100, 25] 172 | timeSpan 0 1 173 | } 174 | } 175 | 176 | DEF saddle FShape { 177 | polygonizer "analytical" 178 | loop FALSE 179 | cycleInterval 1 180 | appearance FAppearance { 181 | material FMaterial { 182 | diffuseColor " 183 | r = 0.321568; 184 | g = 0.17254; 185 | b = 0.02745;" 186 | patternKey [0.3, 0.7] 187 | patternColor [0 1 0, 1 0 0] 188 | timeSpan 0 1 189 | } 190 | texture3D FTexture3D { 191 | definition "0" 192 | timeSpan 0 1 193 | type "displacement" 194 | } 195 | } 196 | geometry FGeometry { 197 | definition " 198 | function frep(x1,y1,z1,t){ 199 | x=x1; 200 | y=y1; 201 | z=z1; 202 | 203 | bottom = min(min(min(min(min(0.2-x,0.2+x),y+0.6),-(0.55+y)),0.25-z),z-0.2); 204 | return bottom; 205 | }" 206 | parameters [-1, 1, -1, 1, -1, 1] 207 | bboxSize 0.45 0.055 0.055 208 | bboxCenter 0 -0.575 0.225 209 | resolution [15, 5, 5] 210 | timeSpan 0 1 211 | } 212 | } 213 | 214 | DEF nut FShape { 215 | polygonizer "analytical" 216 | loop FALSE 217 | cycleInterval 1 218 | appearance FAppearance { 219 | material FMaterial { 220 | diffuseColor " 221 | r = 0.494117; 222 | g = 0.345098; 223 | b = 0.203921;" 224 | patternKey [0.3, 0.7] 225 | patternColor [0 1 0, 1 0 0] 226 | timeSpan 0 1 227 | } 228 | texture3D FTexture3D { 229 | definition "0" 230 | timeSpan 0 1 231 | type "displacement" 232 | } 233 | } 234 | geometry FGeometry { 235 | definition " 236 | function frep(x1,y1,z1,t){ 237 | x=x1; 238 | y=y1; 239 | z=z1; 240 | 241 | top = min(min(min(min(min(0.2-x,0.2+x),1.80-y),y-1.76),0.25-z),z-0.225); 242 | return top; 243 | }" 244 | parameters [-1, 1, -1, 1, -1, 1] 245 | bboxSize 0.41 0.05 0.028 246 | bboxCenter 0 1.78 0.238 247 | resolution [15, 5, 5] 248 | timeSpan 0 1 249 | } 250 | } 251 | 252 | DEF string FShape { 253 | polygonizer "analytical" 254 | loop FALSE 255 | cycleInterval 1 256 | appearance FAppearance { 257 | material FMaterial { 258 | diffuseColor " 259 | r = 1; 260 | g = 1; 261 | b = 1;" 262 | patternKey [0.3, 0.7] 263 | patternColor [0 1 0, 1 0 0] 264 | timeSpan 0 1 265 | } 266 | texture3D FTexture3D { 267 | definition "0" 268 | timeSpan 0 1 269 | type "displacement" 270 | } 271 | } 272 | geometry FGeometry { 273 | definition " 274 | function frep(x1,y1,z1,t){ 275 | x=x1; 276 | y=y1; 277 | z=z1; 278 | 279 | string1 = min(min((0.01*0.01-(x+0.126)*(x+0.126)-(z-0.26)*(z-0.26)),y+0.6),2-y); 280 | string2 = min(min((0.01*0.01-(x+0.042)*(x+0.042)-(z-0.26)*(z-0.26)),y+0.6),2.2-y); 281 | string3 = min(min((0.01*0.01-(x-0.042)*(x-0.042)-(z-0.26)*(z-0.26)),y+0.6),2.2-y); 282 | string4 = min(min((0.01*0.01-(x-0.126)*(x-0.126)-(z-0.26)*(z-0.26)),y+0.6),2-y); 283 | return max(max(max(string1,string2),string3),string4); 284 | }" 285 | 286 | parameters [-1, 1, -1, 1, -1, 1] 287 | bboxSize 0.275 2.85 0.021 288 | bboxCenter 0 0.8 0.26 289 | resolution [30, 50, 5] 290 | timeSpan 0 1 291 | } 292 | } 293 | 294 | DEF tuning FShape { 295 | polygonizer "analytical" 296 | loop FALSE 297 | cycleInterval 1 298 | appearance FAppearance { 299 | material FMaterial { 300 | diffuseColor " 301 | r = 1; 302 | g = 1; 303 | b = 1;" 304 | patternKey [0.3, 0.7] 305 | patternColor [0 1 0, 1 0 0] 306 | timeSpan 0 1 307 | } 308 | texture3D FTexture3D { 309 | definition "0" 310 | timeSpan 0 1 311 | type "displacement" 312 | } 313 | } 314 | geometry FGeometry { 315 | definition " 316 | function frep(x1,y1,z1,t){ 317 | x=x1; 318 | y=y1; 319 | z=z1; 320 | tune1 = 1.5*1.5-(x+0.1)*(x+0.1)/(0.05*0.05)-(y-2)*(y-2)/(0.03*0.03)-(z-0.13)*(z-0.13)/(0.05*0.05); 321 | tune2 = 1.5*1.5-(x-0.1)*(x-0.1)/(0.05*0.05)-(y-2)*(y-2)/(0.03*0.03)-(z-0.13)*(z-0.13)/(0.05*0.05); 322 | tune3 = 1.5*1.5-(x+0.1)*(x+0.1)/(0.05*0.05)-(y-2.2)*(y-2.2)/(0.03*0.03)-(z-0.13)*(z-0.13)/(0.05*0.05); 323 | tune4 = 1.5*1.5-(x-0.1)*(x-0.1)/(0.05*0.05)-(y-2.2)*(y-2.2)/(0.03*0.03)-(z-0.13)*(z-0.13)/(0.05*0.05); 324 | tune = max(max(max(tune1,tune2),tune3),tune4); 325 | 326 | return tune; 327 | }" 328 | parameters [-1, 1, -1, 1, -1, 1] 329 | bboxSize 0.4 0.3 0.15 330 | bboxCenter 0 2.1 0.13 331 | resolution [20, 20, 20] 332 | timeSpan 0 1 333 | } 334 | } 335 | 336 | DEF tuning_head FShape { 337 | polygonizer "analytical" 338 | loop FALSE 339 | cycleInterval 1 340 | appearance FAppearance { 341 | material FMaterial { 342 | diffuseColor " 343 | r = 1; 344 | g = 1; 345 | b = 1;" 346 | patternKey [0.3, 0.7] 347 | patternColor [0 1 0, 1 0 0] 348 | timeSpan 0 1 349 | } 350 | texture3D FTexture3D { 351 | definition "0" 352 | timeSpan 0 1 353 | type "displacement" 354 | } 355 | } 356 | geometry FGeometry { 357 | definition " 358 | function frep(x1,y1,z1,t){ 359 | x=x1; 360 | y=y1; 361 | z=z1; 362 | 363 | tune_head1 = min(min(((z-0.22)*(z-0.22)-(y-2)*(y-2)-(x+0.1)*(x+0.1)),z-0.22),0.27-z); 364 | tune_head2 = min(min(((z-0.22)*(z-0.22)-(y-2)*(y-2)-(x-0.1)*(x-0.1)),z-0.22),0.27-z); 365 | tune_head3 = min(min(((z-0.22)*(z-0.22)-(y-2.2)*(y-2.2)-(x+0.08)*(x+0.08)),z-0.22),0.27-z); 366 | tune_head4 = min(min(((z-0.22)*(z-0.22)-(y-2.2)*(y-2.2)-(x-0.08)*(x-0.08)),z-0.22),0.27-z); 367 | tune_head = max(max(max(tune_head1,tune_head2),tune_head3),tune_head4); 368 | return tune_head; 369 | }" 370 | parameters [-1, 1, -1, 1, -1, 1] 371 | bboxSize 0.3 0.3 0.06 372 | bboxCenter 0 2.1 0.25 373 | resolution [20, 20, 10] 374 | timeSpan 0 1 375 | } 376 | } 377 | 378 | DEF ribbon FShape { 379 | polygonizer "analytical" 380 | loop FALSE 381 | cycleInterval 1 382 | appearance FAppearance { 383 | material FMaterial { 384 | diffuseColor " 385 | r = 1; 386 | g = 0; 387 | b = 0;" 388 | patternKey [0.3, 0.7] 389 | patternColor [0 1 0, 1 0 0] 390 | timeSpan 0 1 391 | } 392 | texture3D FTexture3D { 393 | definition "0.05*sin(y*2*pi)*sin(z*4*pi)" 394 | timeSpan 0 1 395 | type "displacement" 396 | } 397 | } 398 | geometry FGeometry { 399 | definition "0.3/sqrt((x-0.3-0.1)^2+(y+0.3-2.5)^2+(z-0.2)^2+0.001)+0.3/sqrt((x-0.1)^2+(y-2.5)^2+(z-0.2)^2+0.001)-2.5" 400 | parameters [-1, 1, -1, 1, -1, 1] 401 | bboxSize 0.7 0.7 0.7 402 | bboxCenter 0.25 2.35 0.2 403 | resolution [40, 40, 30] 404 | timeSpan 0 1 405 | } 406 | } -------------------------------------------------------------------------------- /CZ2003/Assignment2.wrl: -------------------------------------------------------------------------------- 1 | #VRML V2.0 utf8 2 | 3 | EXTERNPROTO FGeometry [ 4 | exposedField SFString definition 5 | exposedField MFFloat parameters 6 | exposedField MFInt32 resolution 7 | exposedField SFVec3f bboxCenter 8 | exposedField SFVec3f bboxSize 9 | exposedField SFString type 10 | exposedField MFNode parents 11 | exposedField SFVec2f timeSpan 12 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FGeometry" 13 | EXTERNPROTO FMaterial [ 14 | exposedField SFString diffuseColor 15 | exposedField SFString type 16 | exposedField MFColor patternColor 17 | exposedField MFFloat patternKey 18 | exposedField SFString ambientIntensity 19 | exposedField SFString emissiveColor 20 | exposedField SFString shininess 21 | exposedField SFString specularColor 22 | exposedField SFString transparency 23 | exposedField MFFloat parameters 24 | exposedField MFNode parents 25 | exposedField SFVec2f timeSpan 26 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FMaterial" 27 | EXTERNPROTO FTexture3D [ 28 | exposedField SFString definition 29 | exposedField SFString type 30 | exposedField MFFloat parameters 31 | exposedField MFNode parents 32 | exposedField SFVec2f timeSpan 33 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FTexture3D" 34 | EXTERNPROTO FAppearance [ 35 | exposedField SFNode material 36 | exposedField SFNode texture 37 | exposedField SFNode textureTransform 38 | exposedField SFNode texture3D 39 | exposedField MFNode parents 40 | eventIn SFBool refresh 41 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FAppearance" 42 | EXTERNPROTO FShape [ 43 | exposedField SFNode geometry 44 | exposedField SFNode appearance 45 | exposedField SFString polygonizer 46 | exposedField MFNode parents 47 | exposedField SFTime startTime 48 | exposedField SFTime stopTime 49 | exposedField SFTime cycleInterval 50 | exposedField SFBool loop 51 | exposedField SFBool enabled 52 | eventOut SFTime cycleTime 53 | eventIn SFFloat set_fraction 54 | field SFInt32 frames 55 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FShape" 56 | EXTERNPROTO FTransform [ 57 | exposedField SFString operation 58 | exposedField SFString type 59 | exposedField SFString polygonizer 60 | exposedField MFFloat parameters 61 | exposedField SFString center 62 | exposedField SFString rotation 63 | exposedField SFString scale 64 | exposedField SFString scaleOrientation 65 | exposedField SFString translation 66 | exposedField MFNode children 67 | exposedField MFNode parents 68 | eventIn SFBool refresh 69 | exposedField SFVec2f timeSpan 70 | exposedField SFTime startTime 71 | exposedField SFTime stopTime 72 | exposedField SFTime cycleInterval 73 | exposedField SFBool loop 74 | exposedField SFBool enabled 75 | eventOut SFTime cycleTime 76 | eventIn SFFloat set_fraction 77 | field SFInt32 frames 78 | ] "http://www.ntu.edu.sg/home/assourin/FVRML/FVRML.wrl#FTransform" 79 | 80 | Viewpoint { 81 | fieldOfView 1.3 82 | position 2 0 2 83 | orientation 0 1 0 0.7 84 | } 85 | 86 | DEF morph FShape { 87 | appearance FAppearance { 88 | material FMaterial { 89 | diffuseColor " 90 | r=fabs(sin(fabs(1-2*t)*u)); 91 | b=fabs(cos(fabs(1-2*t)*u)*cos(u)); 92 | g=fabs(cos(fabs(1-2*t)*u)*sin(u));" 93 | timeSpan 0 1 94 | } } 95 | geometry FGeometry { 96 | resolution [70 70] 97 | parameters [0.00001 6.283185307 0.00001 3.1415926] 98 | definition " 99 | x=(1.6*(cos(v))^3)*(fabs(1-2*t)) 100 | + (1.5*(v/pi)*(cos(u)))*(1-fabs(1-2*t)); 101 | 102 | y=(1.6*(cos(u)*sin(v))^3)*(fabs(1-2*t)) 103 | + (1.5*(v/pi)*sin(u)*cos(u))*(1-fabs(1-2*t)); 104 | 105 | z=(1.6*sin(u)*cos(v))*(fabs(1-2*t)) 106 | + (1.5*(v/pi)*(sin(2*(v/pi)))^5)*(1-fabs(1-2*t)); 107 | " 108 | 109 | } 110 | 111 | } 112 | 113 | DEF time TimeSensor { 114 | cycleInterval 10 115 | loop TRUE 116 | } 117 | ROUTE time.fraction_changed TO morph.set_fraction -------------------------------------------------------------------------------- /CZ2003/readme.txt: -------------------------------------------------------------------------------- 1 | Name: Andy Chong Chin Shin 2 | Group number: SS1 3 | Attendance list number: 1 4 | 5 | Assignment 1: Implicit Fantasies 6 | Filename: Assignment1.wrl 7 | The Object is a ukulele. I separate ukulele shape into 8 FShape nodes 8 | 9 | The shapes were cylinders (the body of the ukulele and the strings), boxes (the board, saddle and nut), ellipsoids (tuning), cones (tuning_head), and blobby shape (the ribbon). 10 | 11 | The body of the ukulele was created using two cylinders. Cylinder has to be created using intersection operation. The cylinders were union together. Next, part of the top cylinder was removed by using difference operation. 12 | 13 | Fancy color was defined by using parametric function. It was applied to the body and the board of the ukulele. 14 | 15 | 3D Texture was applied to the ribbon to change the blobby object so that it looks like a ribbon. 16 | 17 | Assignment 2: Parametric Metamorphoses 18 | File name: Assignment2.wrl 19 | Morphing objects: Shape 1 and Shape 2 20 | -------------------------------------------------------------------------------- /CZ4024/CZ4024CheatSheet.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Andyccs/ntucs-repo/b403fb8b55b927cf11f7c6bc4d237e46b5043450/CZ4024/CZ4024CheatSheet.docx -------------------------------------------------------------------------------- /CZ8003/HRMSummary.md: -------------------------------------------------------------------------------- 1 | Human Resource Management and Entrepreneurship 2 | ============== 3 | 4 | **Table of Content** 5 | 6 | [TOC] 7 | 8 | *Those sections with stars are important!* 9 | 10 | ---------- 11 | 12 | 13 | 1. Entrepreneurship 14 | ============== 15 | 16 | ## 1.1 Core Element of Entrepreneurship 17 | Entrepreneurship is a human, creative act that *builds something* of value from practically nothing. It is the pursuit of opportunity regardless of the resources, or lack of resources, at hand. It requires a *vision and the passion* and *commitment to lead others* in the pursuit of that vision. It also requires a willingness to *take calculated risk*. 18 | 19 | * **Creativity**: The ability to develop new ideas and to discover new ways of looking at problems and opportunities 20 | * **Innovation**: The ability to apply creative solutions to those problems and opportunities 21 | * **Entrepreneurship**: Thinking and doing new things or old things in new ways 22 | 23 | What it takes to be an entrepreneur: 24 | 25 | * **Traits**: Dare to fail 26 | * **Skills**: Conceptual, technical, and human 27 | * **Behaviours**: Strategic and tactical 28 | 29 | ## 1.2 Business Concept Innovation* 30 | Finding a business approach that *changes the very basis* for competition within an industry. It is not a way of going against competitors, but of *going around* them. It is based on *avoidance*, not attack. 31 | 32 | ## 1.3 Creative Thinking Concepts 33 | Constructive Thinking: 70% Creative Thinking, 30% Critical Thinking. Looking at the ordinary, seeing at the extraordinary. 34 | 35 | Boundaries are accepted summary of past experience. 3 ways to *break out from the boundary of reasonable*: 36 | 37 | 1. Take a chance 38 | 2. Look at mistake 39 | 3. Accept provocation 40 | 41 | ## 1.4 Sources of Business and Technology Ideas* 42 | 43 | 2 *approaches to business idea*: 44 | 45 | 1. **Inside out**: applying your own skills and capabilities 46 | 2. **Outside in**: recognising / creating a market need 47 | 48 | 8 *sources of ideas*: 49 | 50 | 1. Be aware of everything 51 | 2. Recognise a need 52 | 3. Recognise trends 53 | 4. Improve or substitute existing products 54 | 5. Challenging assumptions 55 | 6. Combining Industries 56 | 7. Adapting new technology to an old product 57 | 8. Giving a new twist to an old type of business 58 | 59 | ## 1.5 Business Model 60 | Business Model: a method for making money using the creative idea / concept. Based on 5 *elements of business model*: 61 | 62 | 1. Who it serves? 63 | 2. What is provides? 64 | 3. How it makes more money? 65 | 4. How it differentiates and sustains competitiveness? 66 | 5. How it provides its product / service? 67 | 68 | ## 1.6 Process of Innovation 69 | 5 steps *from ideas to products*: 70 | 71 | 1. Screening ideas in search of opportunities 72 | 2. Assess the window of opportunity 73 | 3. Develop product specifications and production process 74 | 4. Estimate initial costs for the new venture 75 | 5. Estimate the degree of risk for the venture 76 | 77 | 78 | ## 1.7 Business Plan* 79 | 3 Purpose of *business plan*: 80 | 81 | 1. Explain the vision 82 | 2. Demonstrates strategies for starting and long-term operations 83 | 3. Serves as financing proposal or investment prospectus 84 | 85 | 3 Type of *resources*: 86 | 87 | 1. Tangible Resources 88 | 2. Intangible Resources 89 | 3. Organisation Capabilities 90 | 91 | ## 1.8 Competitive Advantages* 92 | *Competitive Advantages* is an advantage gained over competitors by delivering greater value through lower prices or higher benefits than competitors. 93 | 94 | 4 characteristics of *sustainable competitive advantages*: 95 | 96 | 1. Valuable 97 | 2. Rare 98 | 3. Hard to copy 99 | 4. Non-substitutable 100 | 101 | ## 1.9 Market Segmentation and Targeting 102 | *Market Targeting*: selecting a particular segment to focus on 103 | *Market Segmentation*: breaking up the market into segments 104 | 105 | 1. Exclusive segment 106 | 2. Mid-range segment 107 | 3. Budget segment 108 | 109 | ## 1.10 Porter Five Forces Industry Analysis* 110 | 111 | 5 elements to be analysed: 112 | 113 | 1. Treat of new entrants 114 | 2. Bargaining power of buyers 115 | 3. Threat of sustitues 116 | 4. Bargaining power of suppliers 117 | 5. Rivalry among existing firms 118 | 119 | ## 1.11 Environment Scanning* 120 | 121 | Internal environment: 122 | 123 | * Structure 124 | * Culture 125 | * Resources 126 | 127 | Task environment: 128 | 129 | * Shareholder 130 | * Suppliers 131 | * Employees 132 | * Competitor 133 | * Customer 134 | * Government 135 | 136 | Societal environment: 137 | 138 | * Economic forces 139 | * Technological forces 140 | * Political-Legal forces 141 | * Socialculture forces 142 | 143 | ---------- 144 | 145 | 146 | 2. Management 147 | ============= 148 | **Management** is about getting work done through others. 149 | 150 | **Efficiency**: getting work done with a minimum effort, waste, or expense 151 | 152 | **Effectiveness**: accomplishing tasks that help fulfil organisational objectives 153 | 154 | ## 2.1 Four Functions of Management* 155 | 156 | 1. **Planning**: Determine goals and ways to achieve them 157 | 2. **Organising**: Assign tasks and assign supervisors 158 | 3. **Leading**: Inspiring and motivating workers 159 | 4. **Controlling**: Monitoring progress and taking corrective actions 160 | 161 | ## 2.2 Four Kinds of Managers 162 | 163 | **Top Managers** responsible: 164 | 165 | * Overall direction 166 | * Create positive culture 167 | * Monitoring the business environment 168 | 169 | **Middle Managers** responsible: 170 | 171 | * Implement subunit strategies 172 | * Plan and allocate resources 173 | * Monitoring and manage subunits 174 | 175 | **First-Line Managers** responsible: 176 | 177 | * Train and supervise the performance of non-managerial 178 | * Encourage, monitor and reward employees' performance 179 | * Make detailed schedules and operating plans 180 | 181 | **Team Lead** responsible: 182 | 183 | * Facilitate team activities 184 | * Help team members 185 | * Manage internal and external relationships 186 | 187 | 188 | ## 2.3 Mintzberg's Managerial Roles* 189 | 190 | **Interpersonal Roles** 191 | 192 | * Figurehead: ceremonial duties 193 | * Leader: motivate and encourage workers 194 | * Liaison: deal with externals 195 | 196 | **Informational Roles** 197 | 198 | * Monitor 199 | * Disseminator: share information internally 200 | * Spokesperson: share information externally 201 | 202 | **Decisional Roles**: 203 | 204 | * Entrepreneur: adapt themselves to change 205 | * Disturbance Handler: respond to problem with immediate action 206 | * Resource Allocator 207 | * Negotiator 208 | 209 | ## 2.4 Four Skills of Manager* 210 | 211 | 1. Technical skills 212 | 2. Human skills 213 | 3. Conceptual skills 214 | 4. Motivation to manage 215 | 216 | ## 2.5 Ten Mistakes of Managers 217 | 218 | 1. Insensitive to others 219 | 2. Cold, aloof, arrogant 220 | 3. Betray trust 221 | 4. Overly ambitious 222 | 5. Specific performance problems 223 | 6. Overmanaging 224 | 7. Unable to staff effectively 225 | 8. Unable to think strategically 226 | 9. Unable to adapt to boss with different style 227 | 10. Overdependent on advocate or mentor 228 | 229 | ## 2.6 Transition to Management 230 | 231 | **Initial expectation**: job is not managing people 232 | 233 | **After six month**: job is problem solvers and troubleshooter 234 | 235 | **After one year**: job is people development 236 | 237 | ## 2.7 Seven Ways Create Competitive Advantage through People 238 | 239 | 1. Employment security 240 | 2. Selective hiring 241 | 3. Self-managed teams and decentralisation 242 | 4. High wage contingent on organisation performance 243 | 5. Training and skill development 244 | 6. Reduction of status differences 245 | 7. Sharing information 246 | 247 | 248 | ---------- 249 | 250 | 251 | 3. Corporate Culture 252 | ================= 253 | 254 | **Organisational Culture** is the shared values, principles, traditions, and ways of doing things 255 | 256 | ## 3.1 Three Level of Organisation Culture 257 | 258 | 1. **Artifact**: ceremonial events 259 | 2. **Values**: common belief hold 260 | 3. **Basic Assumption**: deep-seated values 261 | 262 | ## 3.2 Seven Dimensions of Organisational Culture* 263 | 264 | 1. Attention to Detail 265 | 2. Outcome Orientation 266 | 3. People Orientation 267 | 4. Team Orientation 268 | 5. Aggressiveness 269 | 6. Stability 270 | 7. Innovation and Risk Taking 271 | 272 | ## 3.3 Strong vs Weak Cultures 273 | 274 | Strong Cultures | Weak Cultures 275 | ----------------|--------------- 276 | Values widely shared | Values limited to a few people 277 | Convey consistent messages | Convey contradictory messages 278 | Can tell stories | Have little knowledge of company history 279 | Strongly identify with culture | Little identification with culture 280 | Strong connection between shared values and behaviours | Little connection between shared values and behaviours 281 | 282 | ## 3.4 Five Basic Functions of Culture* 283 | 284 | 1. Defines boundaries 285 | 2. Conveys a sense of identity 286 | 3. Generates commitment beyond oneself 287 | 4. Enhances social stability 288 | 5. Sense-making and control mechanism 289 | 290 | ## 3.5 Five Sources of Culture 291 | 292 | 1. Founders 293 | 2. Vision and Mission 294 | 3. Past Practices 295 | 4. Top Management Behavior 296 | 5. Socialisation 297 | 298 | ## 3.6 Four Ways to Learn Culture 299 | 300 | 1. **Stories**: Narratives of significant events or people 301 | 2. **Rituals**: Sequenes of activities that express and reinforce the important value and goals of organisation 302 | 3. **Material Artifacts and Symbols**: Convey the kinds of behaviour that are expected 303 | 4. **Language**: Acts as common denominator that bonds members 304 | 305 | ## 3.7 Three Liability of Culture* 306 | 307 | 1. Barrier to Change 308 | 2. Barrier to Diversity 309 | 3. Barrier to Acquisitions and Mergers 310 | 311 | ## 3.8 Creating Culture 312 | 313 | Three ways for founders to *create culture*: 314 | 315 | 1. Hiring and keeping those with same thinking 316 | 2. Indoctrinating and socialising employees 317 | 3. Acting a role model 318 | 319 | Three emphasises of *positive culture*: 320 | 321 | 1. Building on employee strengths 322 | 2. Rewarding more than punishing 323 | 3. Emphasising vitality and growth of employee 324 | 325 | ---------- 326 | 327 | 4. Managing Teams 328 | ================ 329 | 330 | ## 4.1 Good and Bad of Teams* 331 | 332 | Five *advantages of team*, improve: 333 | 334 | 1. Customer satisfaction 335 | 2. Product and service quality 336 | 3. Product development speed and efficiency 337 | 4. Employee job satisfaction 338 | 5. Decision making 339 | 340 | Four *disadvantages of teams*: 341 | 342 | 1. Initially high turnover 343 | 2. Social loafing 344 | 3. Group think 345 | 4. Minority domination 346 | 347 | ## 4.2 Three Special Kinds of Teams 348 | 349 | 1. **Cross-functional team**: composed of employees from different functional areas 350 | 2. **Virtual team**: groups of geographically dispersed coworkers who use a combination of telecommunications and information technologies to accomplish an organisational task 351 | 3. **Project team**: created to complete specific, one-time projects within limited time 352 | 353 | ## 4.3 Characteristic of Work Teams* 354 | 355 | **Team Norms**: informally agreed on standards that regulate team behaviour 356 | 357 | **Team Cohesiveness**: team members are attracted to a team and 358 | motivated to remain in it 359 | 360 | **Team Size**: large team difficult to know team members, small team lacks of diversity 361 | 362 | ### 4.3.4 Team Conflict* 363 | **Conflict** is the perceived incompatible differences resulting in opposition among team members 364 | 365 | **Functional conflict**: constructive and support team goals 366 | 367 | **Disfunctional conflict**: destructive and prevent team from achieving its goals 368 | 369 | ### 4.3.5 Four Stages of Team Development* 370 | 371 | 1. **Forming stage**: first meet up and initial impressions 372 | 2. **Storming stage**: conflicts and disagreements 373 | 3. **Norming stage**: positive team norm and understand expectation 374 | 4. **Performing stage**: fully functioning team 375 | 5. **Adjourning**: job done 376 | 377 | ## 4.4 Five Ways to Enhance Work-Team Effectiveness* 378 | 379 | 1. Setting team goals and priorities 380 | 2. Stretch goals: extremely ambitious goals that workers don't know the way to achieve 381 | 3. Selecting People: with team work, team level, and team diversity 382 | 4. Team training 383 | 5. Team Compensation* 384 | 385 | > Team Compensation: 386 | > 387 | > * Skill-based pay: pay employees for learning addiEonal skills or knowledge 388 | > * Gainsharing: companies share the financial value of performance gains with their workers 389 | > * Nonfinancial reward: vacations, T-shirts, awards, certificate 390 | 391 | ---------- 392 | 393 | 5. Managing Human Resources 394 | ========================= 395 | 396 | ## 5.1 Three Importance of Human Resource Management* 397 | 398 | 1. Source of competitive advantage 399 | 2. Important strategic tool 400 | 3. Improve organisational performance 401 | 402 | ### 5.1.1 High Performance Work Practices* 403 | Work practices that lead to both high individual and high organizational performance 404 | 405 | * Self-managed team 406 | * Decentralised decision making 407 | * Training program 408 | * Flexible job assignment 409 | * Open communication 410 | * Performance-based compensation 411 | * Staffing based on person job and person organisation fit 412 | * Extensive employee involvement 413 | * Giving employee more control over decision making 414 | * Increase employee access to information 415 | 416 | ## 5.2 External Influences 417 | 418 | 1. **Economy**: economic downturn, employees have lowered their career and retirement expectations 419 | 2. **Employee Labor Union**: an organisation that represents workers and seeks to protect their interests through collective bargaining 420 | 3. **Legal**: country laws that enhance the status of protected groups 421 | 4. **Demographic Trends**: change in racial and ethnic composition, aging of baby boom generation, expanding cohort of Geny Y workers 422 | 423 | ## 5.3 Identify and Select Competent Employees* 424 | 425 | Tasks to identify and select competent employee: 426 | 427 | 1. **Human Resource Planning**: to ensure organisation has the right number and kinds of people in the right place at the right times 428 | 2. **Recruitment**: locate, identify, and attract capable applicants 429 | 3. **Decruitment**: reducing workforce 430 | 4. **Selection**: screening job applicants to ensure that the most appropriate candidates are hired. A reliable selection device measures the something consistently. 431 | 432 | ### 5.3.1 Recruitment Sources* 433 | 434 | Source | Advantages | Disadvantages 435 | -------|------------|-------------- 436 | Internet | Reaches large number of people; can get immediate feedback | Generate many unqualified candidate 437 | Employee Referrals | can generate strong candidates because a good referral reflect on the recommender | May not increase the diversity and mix of employee 438 | Company Website | Wide distribution; can be targeted to specific groups | Generate many unqualified candidate 439 | College recruiting | Large centralised body of candidates | Limited to entry-level positions 440 | Professional recruiting organisations | Good knowledge of industries challenges and requirements | Little commitment to specific organisation 441 | 442 | ## 5.4 Orientation and Training 443 | Two types of training: 444 | 445 | 1. **General training**: communication skills, computer system application and programming, customer service 446 | 2. **Specific training**: customer education, managing change, leadership, public speaking, sexual harassment 447 | 448 | ## 5.5 Retaining Competent, High-performing Employees 449 | 450 | **Performance management system** establishes performance standards used to evaluate employee performance 451 | 452 | **Skill-based pay**: rewards employees based on job skills 453 | 454 | **Variable pay**: compensation is contingent on performance 455 | 456 | ## 5.6 Contemporary Issues in Human Resource Management 457 | 458 | **Downsizing**: planned elimination of jobs 459 | 460 | **Sexual harassment**: unwanted action of a sexual nature that affect employment performance and work environment 461 | 462 | **Family-friendly benegits**: benefits that accommodate employees' needs for work-life balance 463 | 464 | ---------- 465 | 466 | 6. Motivating Employees 467 | ==================== 468 | 469 | ## 6.1 Introduction* 470 | **Motivation** is the process by which a person's efforts are *energised*, *directed*, and *sustained* toward attaining goal. 471 | 472 | **Need** is a discomfort that need to be fulfill 473 | 474 | Two types of **reward**: 475 | 476 | 1. **Extrinsic reward**: tangible and visible rewards for achievement of tasks or behaviors 477 | 2. **Intrinsic reward**: Natural reward associated with performing a task for its own sake 478 | 479 | > Use extrinsic rewards to satisfy lower order needs 480 | > 481 | > Use intrinsic rewards to satisfy higher order needs 482 | 483 | ## 6.2 Maslow's Hierarchy of Needs* 484 | *Needs-based approaches to motivation* 485 | 486 | **Hierarchy of needs theory**: human needs form a sort of hierarchy 487 | 488 | 1. **Physiological needs**: food, drink, shelter, sexual satisfaction, and other physical needs 489 | 2. **Safety needs**: security and protection from physical and emotional harm 490 | 3. **Social needs**: affection, belongingness, acceptance, and friendship 491 | 4. **Esteem needs**: internal factors (self-respect, autonomy, achievement) and external factors (status, recognition, attention) 492 | 5. **Self-actualisation needs**: a person's need to become what he or she is capable of becoming 493 | 494 | ## 6.3 McGregor's Theories X and Y 495 | 496 | **Theory X**: employees dislike work, lazy, avoid responsibility, and must be coerced to perform 497 | 498 | **Theory Y**: employees are creative, enjoy work, seek responsibility, and can exercise self-direction 499 | 500 | 501 | ## 6.4 Herzberg's Two-Factor Theory* 502 | *Needs-based approaches to motivation* 503 | 504 | **Motivation-Hygiene Theory**: intrinsic factors are related to job satisfaction and motivation, extrinsic factor are associated with job dissatisfaction. 505 | 506 | **Hygience factors**: factors that eliminate job dissatisfaction, but don't motivate 507 | 508 | **Motivators**: factors that increase job satisfaction and motivation 509 | 510 | ## 6.5 McClelland's Three Needs Theory 511 | *Needs-based approaches to motivation* 512 | 513 | **Three-needs Theory**: three acquired needs as major motives in work. 514 | 515 | 1. **Need for achievement**: the drive to succeed and excel in relation to a set of standards 516 | 2. **Need for power**: make others behave in a way that they would not have behaved otherwise 517 | 3. **Need for affiliation**: friendly and close interpersonal relationships 518 | 519 | ## 6.6 Goal-Setting Theory* 520 | *Process approaches to motivation* 521 | 522 | **Goal-Setting Theory**: Specific goals increase performance. When difficult goals are accepted, it results higher performance than easy goals. 523 | 524 | **Self-efficacy**: self belief about capability to perform a task. People with high self-efficacy will try harder to master a challenge in difficult situations. 525 | 526 | Four component of Goal-Setting Theory: 527 | 528 | 1. Challenging ask 529 | 2. Accepted task 530 | 3. Specific task 531 | 4. Constant feedback 532 | 533 | 534 | ## 6.7 Reinforcement Theory* 535 | *Learning approaches to motivation* 536 | 537 | **Reinforcement Theory**: behaviour is a function of its consequences. 538 | 539 | **Reinforcers**: consequences immediately following a behaviour which increase the probability that the behaviour will be repeated 540 | 541 | ## 6.8 Designing Motivating Jobs* 542 | **Job design**: the way tasks are combined to form complete jobs 543 | 544 | **Job scope**: the number of different tasks required in a job and the frequency with which those tasks are repeated 545 | 546 | **Job enlargement**: horizontal expansion of a job that occurs as a result of increasing job scope 547 | 548 | **Job enrichment**: vertical expansion of a job that occurs as result of additional planning and evaluation of responsibilities 549 | 550 | **Job depth**: the degree of control employees have over their work 551 | 552 | ### 6.8.1 Five Core Job Dimensions* 553 | Five core job dimensions of Job Characteristic Model: 554 | 555 | 1. **Skill Variety**: job requires a variety of activities 556 | 2. **Task identity**: job requires completion of a whole and identifiable piece of work 557 | 3. **Task significance**: job has impact on the lives or work of other people 558 | 4. **Autonomy**: job provides freedom, independence and discretion to the individual 559 | 5. **Feedback**: down work results in obtaining direct and clear information about the his performance 560 | 561 | ## 6.9 Equity Theory* 562 | *Process approaches to motivation* 563 | 564 | **Equity Theory**: employee compares his job input-outcome ratio with others (aka. *referents*) and then corrects any inequality 565 | 566 | **Distributive justice**: perceive fairness of the amount and allocation of rewards 567 | 568 | **Procedural justice**: perceive fairness of the process used to determine the distribution of rewards 569 | 570 | ## 6.10 Expectancy Theory* 571 | *Process approaches to motivation* 572 | 573 | **Expectancy Theory**: an individual tends to act based on the expectation that the act will be followed by a given outcome 574 | 575 | **Expectancy**: effort-performance linkage 576 | 577 | **Instrumentality**: performance-reward linkage 578 | 579 | **Valence**: attractiveness of reward 580 | 581 | ## 6.11 Issues in Motivation 582 | 583 | 1. **Motivating in tough economic** 584 | 2. **Managing cross-cultural motivational challenges**: most motivation theories were developed in US 585 | 3. **Motivating unique groups of workers**: compressed workweek, flexible work hours, job sharing, telecommuting 586 | 4. **Motivating professionals**: do not have regular workweek, need to regular update their knowledge 587 | 5. **Motivating contingent workers**: opportunity for training and permanent employee 588 | 6. **Motivating low-skilled, minimum wage employees**: recognition programs 589 | 590 | Reward Programs: 591 | 592 | 1. Open-book management 593 | 2. Employee recognition programs 594 | 3. Pay for performance programs 595 | 596 | ---------- 597 | 598 | 7. Leadership* 599 | =========== 600 | 601 | **Leadership**: one person influencing another to willingly work toward an objective. Effective management and leadership are inseparable. 602 | 603 | **Trait**: the unchanging characteristics of a person that predisposes someone to act in a particular way 604 | 605 | * Assertive 606 | * Persistent 607 | * Tolerate of stress 608 | 609 | **Skill**: the ability to do something in an effective manner 610 | 611 | * Conceptually skilled 612 | * Diplomatic and tactful 613 | * Fluent in speaking 614 | 615 | Foundation of leadership: 616 | 617 | 1. Power 618 | 2. Traits 619 | 3. Behavior 620 | 621 | ## 7.1 Two Types of Individual Power* 622 | 623 | 1. Position Power 624 | 625 | * Legitimate power 626 | * Reward power 627 | * Creative power 628 | * Information power 629 | 630 | 2. Individual Power 631 | 632 | * Rational persuasian 633 | * Referent power: develop out of admiration of a person and the desire to be like that person 634 | * Expert power 635 | 636 | ## 7.2 The Driving Forces of Leader Behaviour* 637 | 638 | Two driving forces: 639 | 640 | 1. Concern for people 641 | 2. Concern for production 642 | 643 | The leadership grid (production, people): 644 | 645 | * (1,1) - impoverished leadership 646 | * (9, 1) - task leadership 647 | * (1, 9) - country club leadership 648 | * (9, 9) - team leadership 649 | 650 | ## 7.3 Hersey and Blanchard’s Situational Leadership Styles* 651 | 652 | The most effective *style of leadership* depends on the extent to which followers require *guidance, direction, and emotional support*. 653 | 654 | Four leadership style: 655 | 656 | 1. **Telling**: provides specific instructions about roles and goals, then closely supervises performance 657 | 2. **Selling**: explains directions, solicits suggestions and praises appropriate behaviour 658 | 3. **Participating**: make decisions together 659 | 4. **Delegating**: turns over task accomplishment to the follower 660 | 661 | | - | Low Task Focus | High Task Focus | 662 | |-----------------------------|----------------|-----------------| 663 | | **High Relationship Focus** | Participating | Selling | 664 | | **Low Relationship Focus** | Delegating | Telling | 665 | 666 | ## 7.4 Employee Readiness* 667 | 668 | **Level 1**: Low ability, but high level of drive 669 | 670 | **Level 2**: Ability improving, but drive falls 671 | 672 | **Level 3**: Ability risen to good level, but drive still lacking 673 | 674 | **Level 4**: Employee has developed high level of both ability and drive 675 | 676 | ---------- 677 | 678 | 679 | 8. Managing Organisational Change 680 | ============================= 681 | 682 | ## 8.1 Change* 683 | 684 | **Strategic change** is a change in a firm's strategy. It is: 685 | 686 | * triggered by external factors 687 | * required for survival 688 | * implemented under crisis conditions 689 | 690 | Other changes: 691 | 692 | 1. **Technological change** 693 | 2. **Structural change** 694 | 3. **Cultural change** 695 | 696 | 697 | ## 8.2 Resist change* 698 | 699 | People resist change because: 700 | 701 | * lack of information over the facts concerning change 702 | * personal and emotional fear of loss of job, relationship, and status 703 | * personality traits: poor self-image, low tolerance for ambiguity and risk 704 | * change creates competing commitments 705 | 706 | Six methods for dealing with resistance to change: 707 | 708 | 1. Education + communication 709 | 2. Participation + involvement 710 | 3. Facilitation + support 711 | 4. Negotiation + agreement 712 | 5. Manipulation + cooptation 713 | 6. Coercion 714 | 715 | ## 8.3 Kurt Lewin's Model of Change* 716 | 717 | **Unfreezing**: reducing the forces for the status quo, get people to recognise the need for change 718 | 719 | **Moving**: altering the behaviours, values and attitudes of the individuals 720 | 721 | **Refreezing**: prevent a return to old ways of doing things 722 | 723 | Manager's Role in Leading Change: 724 | 725 | * Transactional role, for routine tasks 726 | * Transformational role, for managing change 727 | 728 | ## 8.4 Conflict Handling Style* 729 | 730 | **Conflict**: a perceived difference between two or more parties resulting in mutual opposition 731 | 732 | Five conflict handling styles: 733 | 734 | 1. Collaborative: solve the problem together 735 | 2. Competitive: get your way 736 | 3. Accommodative: don't upset the others 737 | 4. Compromising: reach an agreement quickly 738 | 5. Avoidant: avoid having to deal with conflict 739 | 740 | 741 | ---------- 742 | 743 | 744 | 9. Service Operations Management 745 | ============================= 746 | 747 | ## 9.1 Distinctive Characteristics of Services* 748 | 749 | 1. **Simultaneity**: interaction creates customer perceptions of quality 750 | 2. **Perishability**: cannot inventory, need to match supply with demand 751 | 3. **Intangibility**: creative advertising, no patent protection, importance of reputation 752 | 4. **Heterogeneity**: customer involvement in delivery process results in variability 753 | 5. **Customer Participation in the Service Process**: attention to facility design, opportunities for coproduction, concern for customer and employee behaviour 754 | 755 | ## 9.2 The Service Package* 756 | 757 | 1. **Supporting Facility**: The physical resources that must be in place before a service can be sold. 758 | 2. **Facilitating Goods**: The material consumed by the buyer or items provided by the consumer. 759 | 3. **Information**: Operations data or information that is provided by the customer to enable efficient and customized service 760 | 4. **Explicit Services**: Benefits readily observable by the senses 761 | 5. **Implicit Services**: Psychological benefits which the consumer may sense only vaguely 762 | 763 | ## 9.3 Dimension of Service Quality* 764 | 765 | 1. **Reliability**: perform promised service dependably and accurately 766 | 2. **Responsiveness**: willingness to help customers promptly 767 | 3. **Assurance**: ability to convey trust and confidence 768 | 4. **Empathy**: ability to be approachable 769 | 5. **Tangibles**: physical facilities and facilitating goods 770 | 771 | ## 9.4 Service Quality Gap Model* 772 | 773 | 1. Customer Satisfaction Gap: different between perception and expectation 774 | 2. Customer / Marketing Research Gap: not knowing what customer expect 775 | 3. Service Design Gap: not selecting the right service design and standards 776 | 4. Conformance Gap: not delivering to service standards 777 | 5. Communication Gap: not matching performance to promise 778 | 779 | ## 9.5 Cost of Service Quality 780 | 781 | 1. **Failure Cost**: legal judgement, negative word-of-mouth 782 | 2. **Detection Cost**: process control, peer review 783 | 3. **Prevention Cost**: quality planning, training program 784 | 785 | ## 9.6 Approached to Service Recovery 786 | 787 | Each customer contact is called a *moment of truth*. You have the ability to either satisfy or dissatisfy them when you contact them. 788 | 789 | A service recovery is satisfying a previously dissatisfied customer and making them a loyal customer. 790 | 791 | 1. Case-by-case 792 | 2. Systematic response 793 | 3. Early intervention 794 | 4. Substitude service 795 | 796 | 797 | ---------- 798 | 799 | 800 | 10. Productivity and Total Quality Management 801 | ====================================== 802 | 803 | ## 10.1 Productivity 804 | 805 | ### 10.1.1 Measuring Productivity 806 | 807 | 808 | $Total\ Productivity = \frac{Total\ Output}{Total\ Input}$ 809 | 810 | $Partial\ Productivity = \frac{Total\ Output}{Single\ Input}$ 811 | 812 | ### 10.1.2 Purpose of Measuring Productivity 813 | 814 | * To compare performance with past, other departments and company. 815 | * Measure the effect of change 816 | * Provide input to other function 817 | 818 | ### 10.1.3 Operations Strategy* 819 | 820 | **Efficiency** in managing resource and **effectiveness** to meet customer needs are keys to improve productivity 821 | 822 | Efficiency and Effectiveness Matrix: 823 | 824 | ~ | Low efficiency | High efficiency 825 | -----------------------|----------------|---------------- 826 | **High effectiveness** | Survice | Thrive 827 | **Low effectiveness** | Death | Slow Death 828 | 829 | Can be achieved by: 830 | 831 | * Right product & process design 832 | * Right facilities layout 833 | * No unnecessary inventories 834 | * No quality rejects / reworks 835 | * No work disruptions 836 | * Right employee attitudes 837 | * Right forecasting and scheduling 838 | 839 | ## 10.2 Just-In-Time* 840 | 841 | * Producing only what is needed, when it is needed. 842 | * Eliminate waste and cut cost by managing inventories on time 843 | * It is a philosophy for effectiveness in management that drives manager to do the right things. 844 | 845 | Best condition for JIT inventory management: 846 | 847 | * Stable demand 848 | * Standard product 849 | * Smooth, continuous production 850 | * Defect-free material 851 | * Reliable suppliers 852 | * Efficient production control 853 | * Motivated workforce 854 | 855 | ## 10.3 Total Quality Management* 856 | 857 | Encompasses *entire organisation*. Stresses a *commitment by management* to have a continuing company-wide drive toward excellence in *all aspects of products and services* that are important to the customer. 858 | 859 | Key concepts: 860 | 861 | 1. Customer defined quality 862 | 2. Top management leadership has direct responsibility 863 | 3. Quality as a strategic issue 864 | 4. All employees responsible for quality 865 | 5. Continuous improvement 866 | 6. Shared problem solving 867 | 7. Statistical quality control 868 | 8. Training & education for all employees 869 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Andy Chong Chin Shin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NTU Computer Science Repository 2 | 3 | Collections of all codes, past year paper solutions, cheat sheets, and summaries for Computer Science at Nanyang Technological University. 4 | 5 | Summaries: 6 | 7 | - [CZ4013 Distributed System](https://github.com/Andyccs/CZ4013-distributed-system-summary) 8 | - [CZ4024 Cryptography and Network Security](https://github.com/Andyccs/ntucs-repo/blob/master/CZ4024/CZ4024CheatSheet.docx) 9 | - [CZ4032 Data Analytics and Mining](https://github.com/Andyccs/data-mining-summary) 10 | - [CZ4034 Information Retrieval](https://github.com/Andyccs/CZ4034-information-retrieval-summary) 11 | - [CZ4041 Machine Learning](https://github.com/Andyccs/CZ4041-machine-learning-summary) 12 | - [CZ4042 Neural Network](https://github.com/Andyccs/neural-network-summary) 13 | - [CZ8003 Human Resource Management and Entrepreneur](https://github.com/Andyccs/ntucs-repo/blob/master/CZ8003/HRMSummary.md) 14 | 15 | Projects: 16 | 17 | - [CZ1003 Introduction to Programming, hangman](https://github.com/Andyccs/ntucs-repo/blob/master/CZ1003/hangman.py) 18 | - [CZ1003 Introduction to Programming, dynamic pattern](https://github.com/Andyccs/ntucs-repo/blob/master/CZ1003/dynamic_pattern.py) 19 | - [CZ2002 Object-oriented Design and Programming, Movie Booking and Listing Management Application](https://github.com/Andyccs/CZ2002-moblima) 20 | - [CZ2003 Computer Graphic, Implicit Fantasies](https://github.com/Andyccs/ntucs-repo/tree/master/CZ2003/Assignment1.wrl) 21 | - [CZ2003 Computer Graphic, Parametric Metamorphoses](https://github.com/Andyccs/ntucs-repo/tree/master/CZ2003/Assignment2.wrl) 22 | - [CZ2006 Software Engineering, eProctor Online Invigilation](https://github.com/Andyccs/cz2002-eproctor) 23 | - [CZ3002 Advance Software Engineering, PYP Solutions, Backend](https://github.com/Andyccs/PYP_Cloud) 24 | - [CZ3002 Advance Software Engineering, PYP Solutions, Android](https://github.com/Andyccs/PYP_Android) 25 | - [CZ3003 System Analysis and Design, Lynnux Crisis Management System](https://github.com/soelynn/LynnuxCMS) 26 | - [CZ3003 System Analysis and Design, Lynnux Android Client](https://github.com/soelynn/LynnuxFOS_Android) 27 | - [CZ3004 Multi-displinary Project, Robot Simulator](https://github.com/imdreamrunner/RobotSimulator) 28 | - [CZ3004 Multi-displinary Project, Arduino](https://github.com/Andyccs/MDP_Arduino) 29 | - [CZ3004 Multi-displinary Project, Rasberry Pi](https://github.com/Andyccs/rpicomm) 30 | - [CE3005 Computer Network, Programming Network Applications using Sockets](https://github.com/Andyccs/rfc865udp) 31 | - [CZ3007 Compiler Technique, Compiler for PL3007](https://github.com/Andyccs/PL3007Compiler) 32 | - [CZ4013 Distributed System, Remote File System](https://github.com/cly753/CX4013-Remote-File-System) 33 | - [CZ4024 Cryptography and Network Security, Attack on RC4 Protocol](https://github.com/Andyccs/CZ4024AttackRC4) 34 | - [CZ4034 Information Retrieval Assignment, Sport Tweets](https://github.com/Andyccs/sport-news-retrieval) 35 | - [CZ4041 Machine Learning Project, CIFAR-10](https://github.com/Andyccs/cifar10) 36 | - [CZ4041 Machine Learning Project, Sentiment Analysis on Movie Review](https://github.com/soelynn/SAM) 37 | - [CZ4042 Neural Network Assignment, Housing Price prediction and Spam Emails Prediction](https://github.com/Andyccs/Neural-Network-Assignment) 38 | - [DM2008 Programming for Arts and Games](https://github.com/Andyccs/Programming-for-Art-and-Games) 39 | 40 | Past Year Paper Solutions: 41 | 42 | - [CZ4013 Distributed System](https://github.com/Andyccs/ntucs-pyp) 43 | - [CZ4034 Information Retrieval](https://github.com/Andyccs/ntucs-pyp) 44 | - [CZ4041 Machine Learning](https://github.com/Andyccs/ntucs-pyp) 45 | 46 | Final Year Project: 47 | 48 | - [Software Quality Analysis Tool](https://github.com/Andyccs/sqat) 49 | - [Software Quality Analysis Tool Report](https://github.com/Andyccs/sqat-report) 50 | - [Software Quality Analysis Tool Presentation](https://github.com/Andyccs/sqat-presentation) 51 | - [Software Quality Analysis Tool, by previous students](https://github.com/Andyccs/sqat-archived) 52 | - [Gamification for E-commerce Android Application, Server Side](https://github.com/Andyccs/nwk_mall) 53 | - [Gamification for E-commerce Android Application, Android Client](https://github.com/Andyccs/nwk_android) 54 | 55 | --------------------------------------------------------------------------------