作者:王鹤群
新航道SAT阅读首席主讲、教研主管, 获美国教育专业排名前三的密歇根州立大学MQM专业博士学位, 美国HawkQueen Global Education教育基金会理事,1999年在中国开始GRE/GMAT/TOEFL教学、研究和市场推广,后专注于SAT教学和研究,2010-2012在中国为美国大学理事会做SAT考试数学科目的多维教育实验,是目前中国大陆北美留学考试领域不可多得的导师型。
新SAT文法的目的:
考察学生编辑和修改不同类型的文章的能力。既要让所修改的文章避免各种语法错误、标点错误、和用法错误,也要使其能够按照写作目的和读者受众的不同,更加准确的表辞达意。
为了综合检验学生的编辑修改能力,考试时所采用的文章的体裁、主题与复杂程度都有所不同。某些文章还配有统计图表,需要学生具有一定的图表解说能力。具体情况如下:
文章的体裁:记叙文、说明文、议论文。
文章的主题:包罗万有,例如:事业、人文社科、历史、科技,等等。
文章的复杂程度:有直截了当的,也有含蓄表达的,更有充斥长难句的。
文章的说明性图表:与原文内容互相补充,学生需要解读图表来纠正文章错误。
新SAT文法的主要考察形式:
试题的格式如下图所示:左边是需要编辑修改的文章,右边是相应的题目。因为左右需要完美对应,所以一篇文章会出现在多页纸上。考生需要看清楚文章标题上面所列出的与该文章相关的题目个数。(例如:本文的标题是A Life in Traffic, 与之相关的题目是第1题到第11题)。划线部分是出题处。
题目的类型都是单选题,A、B、C、D四项之中选择一个答案。表面上看,题目的内容五花八门,但是实质上只考察学生的两种能力:语法能力(Standard English Conventions)和表达能力(Expression of Ideas)。从形式上看,题目分为两类。一类题目是下图中第二题这种题目:A选项是NO CHANGE, 其他三个选项是修改划线处的三种不同建议。另一类题目是下图种题这种题目:首先给出了一个要求,然后让学生按照要求为文中划线处选择一个答案。


Expression content.attr is undefined on line 36, column 16 in WEB-INF/t/cms/group/default/content/资讯内容_移动站资讯.html.
The problematic instruction:
----------
==> if content.attr.timeus?? [on line 36, column 11 in WEB-INF/t/cms/group/default/content/资讯内容_移动站资讯.html]
----------
Java backtrace for programmers:
----------
freemarker.core.InvalidReferenceException: Expression content.attr is undefined on line 36, column 16 in WEB-INF/t/cms/group/default/content/资讯内容_移动站资讯.html.
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freemarker.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
at freemarker.core.Dot._getAsTemplateModel(Dot.java:78)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.ExistsExpression._getAsTemplateModel(ExistsExpression.java:71)
at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
at freemarker.core.Expression.isTrue(Expression.java:138)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.MixedContent.accept(MixedContent.java:92)
at freemarker.core.Environment.visit(Environment.java:210)
at freemarker.core.Environment.process(Environment.java:190)
at freemarker.template.Template.process(Template.java:237)
at com.jeecms.cms.staticpage.StaticPageDaoImpl.contentStatic(StaticPageDaoImpl.java:544)
at com.jeecms.cms.staticpage.StaticPageSvcImpl.content(StaticPageSvcImpl.java:58)
at com.jeecms.cms.staticpage.StaticPageSvcImpl.contentRelated(StaticPageSvcImpl.java:67)
at sun.reflect.GeneratedMethodAccessor969.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy44.contentRelated(Unknown Source)
at com.jeecms.cms.staticpage.ContentStaticPageListener.afterSave(ContentStaticPageListener.java:30)
at com.jeecms.cms.manager.main.impl.ContentMngImpl.afterSave(ContentMngImpl.java:666)
at com.jeecms.cms.manager.main.impl.ContentMngImpl.save(ContentMngImpl.java:270)
at sun.reflect.GeneratedMethodAccessor978.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy23.save(Unknown Source)
at com.jeecms.cms.action.admin.main.CmsContentShareAct.push(CmsContentShareAct.java:161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:35)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:311)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:662)