Extravagant Life Alterations

    As time moves irreversibly forward, I am slowly accepting my fate as a future member of the civilian world – a normal, average college student. While I have found that a career in the military is not a proper fit for either my personality or my ‘life goals’, I am still somewhat unaccustomed to any variety of ‘normal’ life – the notion of ‘free time’ is lost within my psyche, and I find myself frequently inquiring as to the lives of the friends I had made in my previous life. 

    While I am infinitely excited for this radical life alteration, I cannot fully repress the ideas of what may have come, if I had continued the previous path. Either way, I have no regrets. 

Accept everything about yourself – I mean everything, You are you and that is the beginning and the end – no apologies, no regrets.
 – Henry Kissinger

 

Advertisements

Tic-Tac-Python?

Below is the final code for implementing a game of “Tic-Tac-Toe” utilizing PyGame and Python Code.

import pygame, sys
from pygame.locals import *
import random

def optionsmenu(cpu):
  DISPLAYSURF = pygame.display.set_mode((600,800)) #This line establishes the size of the playing window.
  BLACK = (0,0,0)
  DISPLAYSURF.fill(BLACK)
  running = True
  optionstitle = pygame.image.load('images/optionstitle.gif')
  titlecoord = (0,0)
  if cpu == 1:
    playcpu = pygame.image.load('images/playcpuselected.gif')
    playplay = pygame.image.load('images/playplayer.gif')
  else:
    playcpu = pygame.image.load('images/playcpu.gif')
    playplay = pygame.image.load('images/playplayerselected.gif')  
    #These lines dictate the images utilized within the program, dependent upon the mode of gameplay (P v. P, or P v. AI)
  playcpucoord = (100,600)
  playcpurect = playcpu.get_rect()
  playcpurect.center = (175,675)
  back = pygame.image.load('images/back.gif')
  backcoord = (200,400)
  backrect = back.get_rect()
  backrect.center = (275,475)
  playplaycoord = (300,600)
  playplayrect = playplay.get_rect()
  playplayrect.center = (375,675)
  DISPLAYSURF.blit(playplay,playplaycoord)
  DISPLAYSURF.blit(playcpu,playcpucoord)
  DISPLAYSURF.blit(optionstitle,titlecoord)
  DISPLAYSURF.blit(back,backcoord)
  buttonsRect = [backrect, playplayrect, playcpurect]
  #These lines establish the appearance of the options menu, and allow for the creation of the "collision rectangles" that control the actions of buttons.
  while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
          running = False
    if event.type == MOUSEBUTTONDOWN:
      if event.button == 1:
        for i in buttonsRect:
          if i.collidepoint(event.pos):
            if i == buttonsRect[0]:
              running = False
            elif i == buttonsRect[1]:              
              cpu = 0
              playcpu = pygame.image.load('images/playcpu.gif')
              playplay = pygame.image.load('images/playplayerselected.gif')
            else:
              cpu = 1
              playcpu = pygame.image.load('images/playcpuselected.gif')
              playplay = pygame.image.load('images/playplayer.gif')
            DISPLAYSURF.blit(playplay,playplaycoord)
            DISPLAYSURF.blit(playcpu,playcpucoord)
# These lines control the actions of the "options menu", when a button is "clicked". Again, "collision rectangles" are utilized, and the image loaded within the options menu to represent a choice
# is dependent upon the option selected. For instance, when the option to play with AI is selected, a different picture for that "options rectangle" than the other option ("Play with a Partner").
   
    pygame.display.flip() #This line updates the surface.
  return cpu #This line determines the mode of gameplay: either with computer AI, or with a friend.  
 
 
def playerWin(DISPLAYSURF, player): #takes game surface and player as input
  BLACK = (0,0,0)
  DISPLAYSURF.fill(BLACK)
  running = True
  win1 = pygame.image.load('images/Player1Win.gif') #Player 1 win image
  win2 = pygame.image.load('images/Player2Win.gif') #Player 2 win image
  draw = pygame.image.load('images/draw.gif') #Draw image
#########################################################################
#Coordinates and rectangles and stuff:
  wincoord = (0,0)
  back = pygame.image.load('images/backtomenu.gif')
  backcoord = (200,600)
  backrect = back.get_rect()
  backrect.center = (275,675)
  buttonsRect = [backrect]
 
  if player == 2: #if player = 2, then player 1 is the winner
    DISPLAYSURF.blit(win1,wincoord)
  if player == 3: #if player = 3, there was no winner/it was a draw
    DISPLAYSURF.blit(draw,wincoord)  
  if player == 1: #if player = 1, player 2 is the winner
  #I know it's weird that player = 2 means player 1 wins but that's just kind of how it turned out
    DISPLAYSURF.blit(win2,wincoord)    
  DISPLAYSURF.blit(back,backcoord)
  while running:
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
          running = False
      if event.type == MOUSEBUTTONDOWN: #if user clicks
        if event.button == 1:
          for i in buttonsRect:
            if i.collidepoint(event.pos): #if click is on back button rectangle
              if i == buttonsRect[0]:
                running = False #quit the function and display menu function (goes back to main menu)
    pygame.display.flip() #updates display          

    

def ticTacToe(cpu): #if cpu == 1 then it's a player vs. cpu game
 
  WHITE =    (255, 255, 255) #background color
  DISPLAYSURF = pygame.display.set_mode((600,800))
  pygame.display.set_caption('Tic-Tac-Toe')
  DISPLAYSURF.fill(WHITE)
  running = True
  player = 1 #Determines which player's turn it is
#########################################################################
#The following determines the grid coordinates of the board and their rectangles which will determine when an X and O should be placed if they are clicked on:
  buttonOne = pygame.image.load('images/Button.gif')
  buttonOnecoord = (0,0)
  b1 = buttonOne.get_rect()
  b1.center = (100,100)
  buttonTwo = pygame.image.load('images/Button.gif')
  buttonTwocoord = (200,0)
  b2 = buttonTwo.get_rect()
  b2.center = (300,100)
  buttonThree = pygame.image.load('images/Button.gif')
  buttonThreecoord = (400,0)
  b3 = buttonThree.get_rect()
  b3.center = (500,100)
  buttonFour = pygame.image.load('images/Button.gif')
  buttonFourcoord = (0,200)
  b4 = buttonFour.get_rect()
  b4.center = (100,300)
  buttonFive = pygame.image.load('images/Button.gif')
  buttonFivecoord = (200,200)
  b5 = buttonFive.get_rect()
  b5.center = (300,300)
  buttonSix = pygame.image.load('images/Button.gif')
  buttonSixcoord = (400,200)
  b6 = buttonSix.get_rect()
  b6.center = (500,300)
  buttonSeven = pygame.image.load('images/Button.gif')
  buttonSevencoord = (0,400)
  b7 = buttonSeven.get_rect()
  b7.center = (100,500)
  buttonEight = pygame.image.load('images/Button.gif')
  buttonEightcoord = (200,400)
  b8 = buttonEight.get_rect()
  b8.center = (300,500)
  buttonNine = pygame.image.load('images/Button.gif')
  buttonNinecoord = (400,400)
  b9 = buttonNine.get_rect()
  b9.center = (500,500)
 
  playerDisplay = pygame.image.load('images/Player1.gif') #Displays who's turn it is
  playercoord = (0,600)
 

 
  board = pygame.image.load('images/board.gif') #The board ohhhhh boyyyyy
  boardcoord = (0,0)
 
  countDisplay = 0
  ######################################################################
  #Below are lists of the buttons and a list of their rectangles
  buttons = [buttonOne,buttonTwo,buttonThree,buttonFour,buttonFive,buttonSix,buttonSeven,buttonEight,buttonNine]
  buttonscoord = [buttonOnecoord, buttonTwocoord,buttonThreecoord,buttonFourcoord,buttonFivecoord,buttonSixcoord,buttonSevencoord,buttonEightcoord,buttonNinecoord]
  buttonsRect = [b1,b2,b3,b4,b5,b6,b7,b8,b9]
  charPlace = [0,0,0,0,0,0,0,0,0] #each element in this list corresponds to a place on the board
 
  playerTrack = 0
  diceRoll = 0 #Initialize for CPU AI below
 
 
  while running: #condition for the game to continue running; if running = false either a winner has been determined or the player has quit the program
 
    DISPLAYSURF.fill(WHITE)
    
    for b in buttons: #displays the grid squares and "gets" the rectangles for click detection
      DISPLAYSURF.blit(b,buttonscoord[countDisplay])
      countDisplay+=1
      if countDisplay > 8:
        countDisplay = 0  
    DISPLAYSURF.blit(board,boardcoord)
    DISPLAYSURF.blit(playerDisplay,playercoord)    
    
    for event in pygame.event.get():
      if event.type == QUIT: #Player quits program
        pygame.quit()
        sys.exit()  
    if cpu == 0:  #if cpu == 0 then it is a player vs. player game  
      if event.type == MOUSEBUTTONDOWN:
        if event.button == 1:
          for i in buttonsRect:
            if i.collidepoint(event.pos): #if player clicked on a grid square
              place = buttonsRect.index(i)
              if charPlace[place] == 1 or charPlace[place] == 2: #if grid square already contains an X or an O
                break #do not change image
              if player == 1:             
                buttons[place] = pygame.image.load('images/ButtonX.gif') #replace image with an X if player 1 clicks a grid square
                charPlace[place] = 1
                place = 0
                playerTrack += 1
                break
              if player == 2:
                buttons[place] = pygame.image.load('images/ButtonO.gif')#replace image with an O if player 2 clicks a grid square
                charPlace[place] = 2
                playerTrack += 1
                break
        for b in buttons:
          DISPLAYSURF.blit(b,buttonscoord[countDisplay])
          countDisplay+=1
          if countDisplay > 8:
            countDisplay = 0  
        DISPLAYSURF.blit(board,boardcoord)
    if cpu == 1: #if cpu == 1 it's a player vs. cpu game
      if player == 1:
        if event.type == MOUSEBUTTONDOWN: #same as above: if player clicks on gridsquare replace gridsquare with an X
          if event.button == 1:
            for i in buttonsRect:
              if i.collidepoint(event.pos):
                place = buttonsRect.index(i)
                if charPlace[place] == 1 or charPlace[place] == 2:
                  break
                if player == 1:             
                  buttons[place] = pygame.image.load('images/ButtonX.gif')
                  charPlace[place] = 1
                  place = 0
                  playerTrack += 1
                  break
          for b in buttons:
            DISPLAYSURF.blit(b,buttonscoord[countDisplay])
            countDisplay+=1
            if countDisplay > 8:
              countDisplay = 0  
          DISPLAYSURF.blit(board,boardcoord)
      if player == 2: #cpu AI
        diceRoll = random.randint(0,8) #randomly select gridsquare
        while charPlace[diceRoll] != 0: #if randomly selected gridsquare already contains X or O, randomly select another gridsquare until an empty one is selected
          diceRoll = random.randint(0,8)
        buttons[diceRoll] = pygame.image.load('images/ButtonO.gif')
        playerTrack += 1
        charPlace[diceRoll] = 2
              
             
    if playerTrack == 1 or playerTrack == 3 or playerTrack == 5 or playerTrack == 7: #playerTrack tracks who's turn it is
      player = 2
      playerDisplay = pygame.image.load('images/Player2.gif')
      DISPLAYSURF.blit(playerDisplay,playercoord)
      
    else:
      player = 1  
      playerDisplay = pygame.image.load('images/Player1.gif')
      DISPLAYSURF.blit(playerDisplay,playercoord)
##############################################################################
#Below are winning conditions:    
    
    if charPlace[0] == 1 and charPlace[1] == 1 and charPlace[2] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)
    elif charPlace[3] == 1 and charPlace[4] == 1 and charPlace[5] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)
    elif charPlace[6] == 1 and charPlace[7] == 1 and charPlace[8] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)       
    elif charPlace[0] == 1 and charPlace[3] == 1 and charPlace[6] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)       
    elif charPlace[1] == 1 and charPlace[4] == 1 and charPlace[7] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)                   
    elif charPlace[2] == 1 and charPlace[5] == 1 and charPlace[8] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)       
    elif charPlace[0] == 1 and charPlace[4] == 1 and charPlace[8] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)        
    elif charPlace[2] == 1 and charPlace[4] == 1 and charPlace[6] == 1:
      player = 2
      running = False
      playerWin(DISPLAYSURF, player)  
      
    elif charPlace[0] == 2 and charPlace[1] == 2 and charPlace[2] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)      
    elif charPlace[3] == 2 and charPlace[4] == 2 and charPlace[5] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)      
    elif charPlace[6] == 2 and charPlace[7] == 2 and charPlace[8] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)       
    elif charPlace[0] == 2 and charPlace[3] == 2 and charPlace[6] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)      
    elif charPlace[1] == 2 and charPlace[4] == 2 and charPlace[7] == 2:
      player = 1
      running = False   
      playerWin(DISPLAYSURF, player)                 
    elif charPlace[2] == 2 and charPlace[5] == 2 and charPlace[8] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)
    elif charPlace[0] == 2 and charPlace[4] == 2 and charPlace[8] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)   
    elif charPlace[2] == 2 and charPlace[4] == 2 and charPlace[6] == 2:
      player = 1
      running = False
      playerWin(DISPLAYSURF, player)   
    elif 0 not in charPlace:
      running = False
      player = 3
      playerWin(DISPLAYSURF, player)
       
    pygame.display.flip() #updates the surface of the program
       
def menu():
  cpu = 0 #initialize whether cpu option is selected or not
  running = True
  while running: #while running is true the program will continue to run
    DISPLAYSURF = pygame.display.set_mode((600,800)) #sets window size
    BLACK = (0,0,0) #background color
    DISPLAYSURF.fill(BLACK)
###########################################################################
#Below are loaded images, their coordinates, and retrieving/placing their rectangles for click detection if the image is a button:    
    title = pygame.image.load('images/title.gif')
    titlecoord = (0,0)
    options = pygame.image.load('images/options.gif')
    optionscoord = (100,600)
    optionsrect = options.get_rect()
    optionsrect.center = (175,675)
    playgame = pygame.image.load('images/playgame.gif')
    playgamecoord = (300,600)
    playgamerect = playgame.get_rect()
    playgamerect.center = (375,675)
#Displays images:    
    DISPLAYSURF.blit(playgame,playgamecoord)
    DISPLAYSURF.blit(options,optionscoord)
    DISPLAYSURF.blit(title,titlecoord)
#list of the buttons on the menu    
    buttonsRect = [playgamerect, optionsrect]  
    for event in pygame.event.get():
        if event.type == pygame.QUIT: #if user clicks the 'x' in top right corner
          running = False #quit the program
    if event.type == MOUSEBUTTONDOWN: #if user clicks
      if event.button == 1:
        for i in buttonsRect:
          if i.collidepoint(event.pos): #detect if click is within a predefined rectangle
            if i == buttonsRect[0]: #if user clicks "play game"
              ticTacToe(cpu) #run tic tac toe function
            else:
              cpu = optionsmenu(cpu) #if user clicks options button, display options menu
    pygame.display.flip() #updates surface               
if __name__ == "__main__":
  menu()           

A Treatise On School Voucher Legislation

Within the era of decreasing Federal and state funding for excessive and unnecessary programs, it is logical to presume that the provision of “vouchers” may come under scrutiny for being an “excessive” government program. However, the states of Indiana, Michigan, Ohio, and the District of Columbia have deemed this political area worthy of pursuing. A controversial portion of this policy includes the fact that parents strongly desire to determine where their children attend school, and may resent government involvement in this seemingly autonomous decision. The formal governmental institutions with the largest influence on voucher policy are the Chief Executive and Congress. Additionally, the informal governmental institutions with the largest influence on this policy area are the Media and Interest groups. The current state of voucher legislation is that there exists Federal Policy on personal school choice and vouchers, which consists of state and Federal funding of private schooling in place of public schooling. However, hindering the progress of such legislation is the fact that private institutions providing schooling within a state often designate a particular subgroup of students they wish to include within the student body of their institutions, and this requires state and Federal legislatures to provide oversight of these designations; including low income families and those attending school systems with “below-average” achievement. 

Both the President and Congress have exerted a large influence over the progression of voucher legislation, along with state legislatures. For instance, during the 2009 fiscal year, both Congress and President Obama ceased funding for the Washington, D.C. Opportunity Scholarship Program, the first federally-funded voucher program. However, during the 2011 fiscal year, Congress renewed its funding for this legislation.[1] The initial support for the abovementioned voucher legislation existed abundantly and waned briefly within fiscal year 2009, and was renewed in fiscal year 2011. The voucher program implemented by Ohio is designated as the “EdChoice” program, and to ensure funding for this legislation, Ohio has expanded the budget for educational programs[2]. Indirectly, the United States Congress will control the funding options available to Ohio (through grants, grants-in-aid, etc.), and thereby dictate the extent to which Ohio is able to pursue their legislation goals. Similarly, Indiana (a state with one of the largest voucher programs[3]) is attempting to increase the amount of funding available for each child attending private school under the voucher program from $4,500 per child to $6,500 per child, and to expand the program to include “…disabled children, foster children, siblings of voucher recipients and children of active-duty military servicemembers and veterans to receive vouchers regardless of family income.”[4] Schools must meet certain educational criteria listed within the Indiana legislation to be eligible to accept voucher students.[5] The support for voucher legislation by the United States House of Representatives and Senate are dictated by economic circumstances, the political party in control of Congress, and the political affiliation of the President. Economic circumstances dictate the amounts of Congressional aid available to the states, and the willingness of the Federal Government to provide funding for non-necessary educational reform programs, such as a fledgling voucher program. Furthermore, the parties in control of the House and Senate, along with the political affiliation of the President determine the level of funding and aid available to states through the policy agenda and policy goals of that party. Congress continued to fund the D.C. Opportunity Scholarship Program in 2011 due to the political reason of a impasse in the creation of the 2011 Federal budget between the Republicans and Democrats.[6]

In the course of American educational reform and the creation of voucher programs in many states, both Interest groups and the Media have become thoroughly involved, and included in this group is the American Association of University Women. Posted on the webpage of the American Association of University Women, is a critique of Michigan’s proposed voucher legislation, within which is a noteworthy negative “slant” towards school voucher legislation. The author of this article testified before the Michigan Senate on this matter, illustrating the influence of this particular activist group.[7] Barbara Bonsignore, the director of public policy for the AAUW branch in Michigan, dictated on the blog of the Michigan branch of the AAUW “I have seen this firsthand in Michigan and know that we can have success fighting back against school voucher schemes if we remain vigilant.”[8] The methods through which the American Association of University Women attempt to influence public policy include “coalition building”, grassroots campaigns[9], advocacy, and voter education[10]. She also authored a letter to members of the AAUW to contact Senator Carl Levin to remove a portion of a bill containing voucher provisions.[11] The action of groups such as the American Association of University Women has significantly impacted the presence of voucher legislation in Michigan. The popularity of media outlets, and the tendency of citizens to consume media allows for positive and negative coverage to thoroughly influence the opinion of citizens, who elect those representatives that share their views. Therefore, the media outlets described exert a powerful influence on voucher legislation.

The intent of voucher policy is the usage of private schooling, funded by State and Federal governments, to provide assistance to those students with below-average familial income or those attending schools performing inadequately, among many other disadvantages[12]. While only marginal improvements have been noted in students attending public schools versus private schools[13], both “Informal” and “Formal” Political Actors have noticed these improvements. Amongst the “Formal” political actors described above, the most influential is the United States Congress. Political strife between the Republican and Democratic parties in the House and Senate dictate the Federal support of vouchers, due to the Republican desire to maintain voucher programs, and the overall disapproval of such programs by the Democrats.[14] Within the “Informal” political actors, the most influential are interest groups (such as the AAUW), due to their immense ability to create “grassroots” campaigns, initiate community action for political causes, and exert influence on voters through advocacy for their causes and the general release of information on these causes. To further increase the influence of interest groups such as the AAUW, media actions are taken, allowing this group to act as both an Interest group and a member of the media. Barbara Bonsignore, the woman responsible for testimony within the Michigan Senate on the detrimental effects of voucher legislation published a blog post elaborating on the major shortcomings of the very concept of school vouchers, and therefore acted as a media outlet. However, the AAUW acting as an Interest group illustrated the true power of Interest groups as informal actors; able to influence voucher legislation through testimony in a “Formal” political institution, create a “grassroots” campaign to stymie support for voucher legislation in Michigan, and attempt to instigate political supporters to contact their Senator. For these reasons, the most influential “actor” within the realm of voucher legislation is the Interest group, due to their ability to lobby, create “grassroots” campaigns, successfully advocate for issues on their political agenda, and inform likely supporters of their position on political issues.

In conclusion, the future of voucher legislation within the states of Ohio, Indiana, and the District of Columbia will be dictated by the political affiliation of the United States Congress and President, the level of success reached by the aforementioned states, and the ability of interest groups to exert influence over policymaking institutions. With regards to the political affiliations of the United States Congress and President, the United States currently exists in a state of “Divided Government”[15]. President Obama desires to improve the conditions of schools across America[16], but has little support from Democrats for voucher legislation[17] . In contrast, the Republican-controlled Congress[18] will differ greatly in their opinion on voucher legislation, with Republicans wishing to expand the program. This divide will serve to make advancement difficult, but possible. The success of the voucher programs within Indiana, Ohio, and the District of Columbia bode well for the futures of voucher legislation within those states, and it is noted that “…Nine of 10 randomly assigned studies of voucher programs show that student outcomes improve for participants.”[19] Also, it is included that thirteen states are increasing the range of schooling options available to students, and twenty-nine others are considering these increases. Generally, voucher programs are more inexpensive than the alternative public schools.[20]  Interest groups, however, are putting forth much effort to ensure the demise of voucher programs. Due to the successes encountered by states utilizing voucher programs and the promising financial information regarding the expenses of these programs, in light of a faltering economy, voucher programs will continue to slowly spread to states with extremely poor school systems, and later move to many other states wishing to realize the benefits of a voucher program.    

 

 

 

 

 

 

 

 

 

 

 

Works Cited

American Association of University Women: Michigan. “AAUW of Michigan Public Policy Principles 2010-2012.”  Accessed April 5, 2013. http://aauwmi.org/policy_priorities.html.

American Association of University Women. “What We Do.” Accessed April 5, 2013. http://www.aauw.org/what-we-do/public-policy/.

American Association of University Women. “Fighting School Vouchers in Michigan.”  Accessed April 4, 2013. http://www.aauw.org/2013/01/31/school-vouchers-in-michigan/.

Babcock, Megan CIV. Text Messages to the Author. During the dates of April 3, 2013 and April 4, 2013, Ms. Babcock read an electronic copy of my paper, and advised me on the usage and mechanics within my paper through text messaging. For instance, Ms. Babcock informed me of the portions of my paper utilizing a large amount of words such as “within” and “therefore”, and recommended that I alter those portions, allowing me to improve the overall readability of my paper. She also identified misspellings and other language errors. 3-4 Apr. 2013.

Barbara Bonsignore, “Background_Info_for_MVP_Candidate_Survey”, Unknown (2010): 1. http://aauwmi.org/state/Public%20Policy/Background_Info_for_MVP_Candidate_Survey.pdf.

“Democratic Party on Education,” OnTheIssues. “Democratic Party on Education.”  Accessed April 5, 2013. http://www.ontheissues.org/celeb/Democratic_Party_Education.htm.

Fowler HR, Aaron JE. The Little, Brown Handbook. 12th ed. Upper Saddle River: Pearson Education, 2012. Print.

GOP. “Gop.gov – The Website for the House Republican Majority.” Accessed April 5, 2013. http://www.gop.gov/.

Indiana General Assembly. House Enrolled Act. 117th Gen. Assy., 1st sess., 2011. Gen. Assy. Doc. 1003 (2011).

Kennedy, Vincent CDT A-2. Assistance given to the author, written discussion. During Lab 5, CDT Kennedy lent me his course notebook, which contained his checklist for the completion of the Policy Paper. I utilized the information about the word count maximum to complete my paper and confirm that it met the appropriate criteria. West Point, NY. 21 Mar. 2013.

Kober, Nancy and Alexandra Usher. “Keeping Informed about School Vouchers: A Review of Major Developments and Research.” Unknown (2011): 1-3. http://www.cep-dc.org/displayDocument.cfm?DocumentID=369.

Mackinac Center for Public Policy. “Time to Take School Choice in Michigan to the Next Level.” Accessed April 5, 2013. http://www.mackinac.org/15509.

Miller, Keith CDT D-4 ’15. Assistance given to the author, oral and written discussion. CDT Miller and I spoke on the topic of voucher programs on April 3, 2013 and our discussion contributed to this paper in the realm of gauging the successes and failures of voucher policy, where this policy is likely to expand to, and future roles of voucher legislation, along with the origination of this political policy area. CDT Miller proofread a printed copy of my Policy Paper on April 4, 2013, and provided feedback on both content and mechanics, dictating to me the areas in which I need to improve my paper. West Point, NY. 3-4 Apr. 2013.

Smith, Brandon. “House Committee Hears Bill to Expand School Voucher Program.” Indiana Public Media Blog (blog). February 5, 2013. http://indianapublicmedia.org/news/house-committee-hears-bill-expand-school-voucher-program-44322/.

StateImpact Indiana. “So You Want to Go to Private School? An Indiana School Voucher Guide.”  Accessed April 4, 2013. http://stateimpact.npr.org/indiana/tag/school-vouchers/.

StateImpact Ohio. “So How Does Ohio’s Voucher Program Work Anyway?”  Accessed April 4, 2013. http://stateimpact.npr.org/ohio/tag/vouchers/.

The White House. “K-12 Education.”  Accessed April 5, 2013.  http://www.whitehouse.gov/issues/education/k-12.

U.S. Congress. Senate. Scholarships for Opportunity and Results Act. 112th Cong., 1st sess. 2011. S. Doc. 471 (2011).

wiseGEEK. “What is a Divided Government?”  Accessed April 5, 2013. http://www.wisegeek.com/what-is-a-divided-government.htm#.

 

 

 

 

 

 

 

 

 


[1] Nancy Kober and Alexandra Usher. “Keeping Informed about School Vouchers: A Review of Major Developments and Research.” Unknown (2011): 1, http://www.cep-dc.org/displayDocument.cfm?DocumentID=369.

[2] “So How Does Ohio’s Voucher Program Work Anyway?” StateImpact Ohio, accessed April 4, 2013. http://stateimpact.npr.org/ohio/tag/vouchers/.

[3] “So You Want to Go to Private School? An Indiana School Voucher Guide”. StateImpact Indiana, accessed April 4, 2013. http://stateimpact.npr.org/indiana/tag/school-vouchers/.

[4] Brandon Smith, “House Committee Hears Bill to Expand School Voucher Program”. Indiana Public Media Blog (blog), February 5, 2013, http://indianapublicmedia.org/news/house-committee-hears-bill-expand-school-voucher-program-44322/.

[5] Indiana General Assembly. House Enrolled Act. 117th Gen. Assy., 1st sess., 2011. Gen. Assy. Doc. 1003 at Chapter 4 (2011)

 

[6] Nancy Kober and Alexandra Usher. “Keeping Informed about School Vouchers: A Review of Major Developments and Research.” Unknown (2011): 1, http://www.cep-dc.org/displayDocument.cfm?DocumentID=369.

[7] “Fighting School Vouchers in Michigan,” American Association of University Women, accessed April 4, 2013,http://www.aauw.org/2013/01/31/school-vouchers-in-michigan/.

 

[8] “Fighting School Vouchers in Michigan,” American Association of University Women, accessed April 4, 2013,http://www.aauw.org/2013/01/31/school-vouchers-in-michigan/.

[9]  “What We Do,” American Association of University Women, accessed April 5, 2013, http://www.aauw.org/what-we-do/public-policy/

[10] “AAUW of Michigan Public Policy Principles 2010-2012,” American Association of University Women: Michigan, accessed April 5, 2013, http://aauwmi.org/policy_priorities.html.

 

[11] Barbara Bonsignore, “Background_Info_for_MVP_Candidate_Survey”, Unknown (2010): 1. Barbara Bonsignore, “Background_Info_for_MVP_Candidate_Survey”, Unknown (2010): 1, http://aauwmi.org/state/Public%20Policy/Background_Info_for_MVP_Candidate_Survey.pdf.

 

[12] U.S. Congress. Senate. Scholarships for Opportunity and Results Act. 112th Cong., 1st sess. 2011. S. Doc. 471, at Section 2, line 3 (2011)

[13] Nancy Kober and Alexandra Usher. “Keeping Informed about School Vouchers: A Review of Major Developments and Research.” Unknown (2011): 3, http://www.cep-dc.org/displayDocument.cfm?DocumentID=369.

[14] “Democratic Party on Education,” OnTheIssues, accessed April 5, 2013, http://www.ontheissues.org/celeb/Democratic_Party_Education.htm

 

[15] “What is a Divided Government?” wiseGEEK, accessed April 5, 2013, http://www.wisegeek.com/what-is-a-divided-government.htm#.

 

[16] “K-12 Education,” The White House, accessed April 5, 2013, http://www.whitehouse.gov/issues/education/k-12.

 

[17]  “Democratic Party on Education,” OnTheIssues, accessed April 5, 2013, http://www.ontheissues.org/celeb/Democratic_Party_Education.htm.

 

[18] “Gop.gov – The Website for the House Republican Majority,” GOP, accessed April 5, 2013, http://www.gop.gov/.

 

[19] “Time to Take School Choice in Michigan to the Next Level,” Mackinac Center for Public Policy, accessed April 5, 2013, http://www.mackinac.org/15509. 

[20] “Time to Take School Choice in Michigan to the Next Level,” Mackinac Center for Public Policy, accessed April 5, 2013, http://www.mackinac.org/15509. 

 

The Theory of the Quantum Computer

       A few days ago, a friend informed me of the recent actions of Lockheed Martin and D-Wave Systems with regards to the “Quantum Computer”. This information piqued my curiosity pertaining to the topic, and I elected to do a bit of research. According to Kevin Bonsor and Jonathan Strickland at “HowStuffWorks”, the power of the “Quantum Computing” theory lies within the principle of the “superposition” of digits: all computers today rely on the numerical digits of “Base 2”, consisting of “0” and “1”. Through the utilization of Quantum Theory, Quantum Computers can utilize the superposition of “1” and “0”, including all numbers between the two aforesaid digits. This realization is incredibly powerful; instead of a simple “on” or “off” position within a transistor mandating that only one calculation be performed per cycle, millions can be performed at one time, utilizing this “Quantum Computing” principle and “superposition”. The metric for computer calculation speed is the “flop”, which is defined as “Floating Point Operations Per Second”, or the amount of calculations utilizing decimal numbers, per second. Currently, desktop computers rank in the area of “Gigaflops”, which allow for billions of calculations, per second. One of the most advanced Quantum Computers produced by D-Wave Systems can perform calculations in the realm of “Teraflops”, or trillions of floating point calculations, per second. With advancements such as those made by D-Wave Systems, the computational power of laboratories and technological corporations could grow immensely. However, as described in the “HowStuffWorks” article, the main drawback in the development of Quantum Computing is the comprehension of Quantum Mechanics, itself. While the speeds claimed by Quantum Computer production corporations are incredible, they are equally questionable. This notion aside, Quantum Computing appears to be one of the most promising computing technologies in recent news.

Image

Photo Courtesy of D-Wave Systems

http://en.wikipedia.org/wiki/FLOPS

http://computer.howstuffworks.com/quantum-computer1.htm

http://www.dwavesys.com/en/technology.html

Interesting Programs

Below, you will find one Python function, and one Python program. Once I had created them, I was amused by their combination of simplicity, efficiency, and effectiveness.

#######################
# Name: CDT Brendan Babcock
# File Name: hw6.py
#######################
# Problem 1
#
# Program Explanation: This function computes the sum of the neighboring numbers of a number in a given list, for all numbers within the list.
# The function then returns a new list (of the same length), containing the summed numbers. 
#
# Test Case 1:
# listOfNums = [10, 20, 30, 40, 50]
# newListOfNums = [30, 60, 90, 120, 90]
#
# Test Case 2:
# listOfNums = [20, 30, 40, 50, 60, 70, 80]
# newListOfNums = [50, 90, 120, 150, 180, 210, 150]

def sumOfNeighbors(old_list):
    lengthOld = len(old_list)
    new_list = []
    newNumber = 0
    newNumber2 = 0
    newNumber3 = 0
    for i in range (0, lengthOld):
        if i==0:
            newNumber = old_list[i]+old_list[i+1]
            new_list.append(newNumber)
        if i >0 and i < lengthOld-1:
            newNumber2 = old_list[i-1]+old_list[i]+old_list[i+1]
            new_list.append(newNumber2)
        if i==lengthOld-1:
            newNumber3 = old_list[lengthOld-1]+old_list[lengthOld-2]
            new_list.append(newNumber3)
    return new_list

if __name__=="__main__":
    listOfNums = [20, 30, 40, 50, 60, 70, 80]
    newListOfNums = sumOfNeighbors(listOfNums)
    print newListOfNums

# Problem 2
#
# Program Explanation: This program takes as input a file containing a phrase, and encrypts it. This is done through transcription to an intermediary list, encryption, and finally re-writing the 
# original file to contain the encrypted phrase.  
#
# Test Case 1:
# Old Phrase: THE EAGLE FLIES AT DAWN.
# New Phrase: WKH HDJOH IOLHV DW GDZQ. 
#
# Test Case 2:
# Old Phrase = the eagle flies at dawn.
# New Phrase = WKH HDJOH IOLHV DW GDZQ. 

def caesarCipher():
        userFile = ""
        userFile = raw_input("Please enter the name of the file you will be utilizing.")
        inputFile = open(userFile,"r")
        encodedList = []
        encodedList2 = []
        overLength = 0
        for lines in inputFile:
                for char in lines:
                    encodedList.append(char.capitalize())
        for chars in encodedList:
                if char == " ":
                    encodedList2.append(chars)
                if ord(chars) >=65 and ord(chars) <=87:
                    chars = chr(ord(chars)+3)
                    encodedList2.append(chars)
                elif ord(chars) == 88:
                    overLength = 65
                    encodedList2.append(chr(overLength))
                elif ord(chars) == 89:
                    overLength = 66
                    encodedList2.append(chr(overLength))
                elif ord(char) ==90:
                    overLength = 67
                    encodedList2.append(chr(overLength))
                else:
                    encodedList2.append(chars)
                        
        lengthList = len(encodedList)
        out_file = open(userFile,"w")
        for i in range (0, lengthList):
            out_file.write(encodedList2[i])
        out_file.close()
caesarCipher()