The TExES Computer Science 8 – 12 Exam is a certification examination that is designed to determine if an individual has the programming skills and computer knowledge necessary to teach a computer science course at the high school level in the Texas public school system. This exam assesses the individual’s knowledge of topics related to algorithms, networking, program design, software development, and other similar topics as well as the individual’s ability to effectively teach students the fundamental concepts related to these topics. This exam may be required in order to become certified as a high school teacher for a computer science course in the state of Texas depending on the specific teaching position the individual is pursuing. The exam consists of 100 multiple-choice questions that are related to the following areas:
- Technology Applications Core (12.5%)
- Program Design and Development (35%)
- Programming Language Topics (40%)
- Specialized Topics (12.5%)
The exam-taker will have five hours to complete the exam and the exam will be scored on a scale of 100 – 300 with 240 set as the minimum score considered as passing for the exam. The registration fee for the Computer Science 8 – 12 Exam is $131 and the exam is offered in a computer-based format. However, there are usually other exams and fees that are required in addition to this exam in order to become certified as a high school computer science teacher within the state of Texas.
Sample Study Notes
1. Define basic information technology concepts and essential applications.
There are six basic concepts important to understanding information technology (IT). These concepts should be introduced to students beginning in the first grade and continuing through the high school years.
BINARY: brief representations of long strings of numbers used in computations
ASCII (American Standard Code for Information Interchange): letters and punctuation signs combined with strings of binary numbers
HIERARCHY: the order to understanding and using information technology; this concept is sometimes referred to as “nesting quality”
WORLD WIDE WEB: the www is a communication tool that links information via bursts of binary data
STORED PROGRAM: a CPU (central processing unit) stores multiple sets of instructions and determines the next step in a process.
ROUTING: sequences of binary numbers move through a connected network The three essential applicable benefits of the basic concepts are:
WORD AND NUMBER PROCESSING: formatting of documents and spreadsheets
SEARCHING THE INTERNET: using the ASCII encoding system to find information
GREATER EFFICIENCY: increased speed in finding, comparing, and transmitting data
2. Explain software design.
Software design is the process of plotting a solution to solve a problem in computer programming. Developers analyze requirements, determine specifications, and write a program to address the needs. The process may be automated (no discussion with users) or semi-automated which involves end-user input. A design may be a simple flow chart defining a sequence of events, or a complicated series of interrelated instructions. The result may be platform-specific, meaning it can only be used on a particular framework, or platform-independent, meaning it will work on most frameworks. When designing software, there are several things to consider depending upon the desired goals:
EXTENSION: ease with which new features can be added without changing the architecture
ROBUST: ability to tolerate unpredictable input
RELIABLE: does what it is supposed to do
SECURE: ability to withstand unwanted intrusions
MAINTAIN: easily accepts updates when needed
COMPATIBLE: operates with other software
MODULAR: made of independent components
REUSE: all components contain essential functions so they can be used in similar designs.
3. Discuss design patterns and their documentation.
A design pattern is a template with recognizable code that provides a solution to a common design problem. It speeds up the software design process, because the pattern has already been tested and proven to work. The documentation describes the context, the issues, and the solution. There is no standard format, but one outlined by the Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides) in their book Design Patterns is a good starting point. The structure, participants and collaboration sections are especially important:
PATTERN NAME: descriptive and unique
INTENT: goals and reasons to use it
ALSO KNOWN AS: other names
MOTIVATION: how it is used
APPLICABILITY: Situations in which it can be used
STRUCTURE: graphical representation
PARTICIPANTS: classes and objects and their roles
COLLABORATION: how classes and objects interact
CONSEQUENCES: results, side effects and tradeoffs
IMPLEMENTATION: how to set up and integrate
SAMPLE CODE: how to use it in programming language
KNOWN USES: specific examples
RELATED PATTERNS: differences with similar patterns
4. Discuss computer programming.
Computer programming (or coding) is the writing, testing, troubleshooting and maintaining of source code (files used to convert human-readable data to a computer-executable format). It is a precise set of instructions that allows a computer to perform a specific task. The code may be a modification of an existing code or a completely new code needed to provide a solution to a different issue. There are application programs written to create documents and databases, and system programs to control the functions of the computer itself. Programmers need to understand and be proficient in many areas, such as algorithms (math-based formula of specific instructions written in computer language) and formal logic (a set of established rules). Good programming is an art, a science, a craft, and a kind of engineering all rolled into one discipline. The profession is not regulated by any government entity and there is no formal licensing procedure or standardized test to become a computer programmer. Colleges, universities and technical schools all offer courses; some degree plans require students to take one or two classes as a graduation requirement.
5. Explain programming languages.
A programming language is an artificial communication tool used to write the specific instructions a computer needs to execute its functions. These specialized languages are defined by precise syntax and semantic rules that describe their structure and meaning. They are used to organize and manipulate information and turn algorithms into executable instructions. Computers do exactly what they are told to do, so programs must supply explicit directions; unlike human communications, computers are unable to use facial expressions and body language to interpret what is being conveyed. There are many programming languages, because of the diversity of the contexts in which they are used. A programmer selects a particular language based on its:
FUNCTION: is it being used to control applications, systems or other devices such as printers, robots, etc.?
TARGET: is it being used by people to control machines or by one device to control another?
CONSTRUCTS: is it being used to control the actions of machines or to manipulate data?
EXPRESSIVE POWER: what kinds of instructions are needed?
6. Define the programming language BAL.
BAL (Basic Assembly Language) is also known as Assembly Language Common (ALC) or simply assembler. It is used on IBM mainframe computers and is the closest a programmer will come to the hardware. It is a very basic, low-level language that uses source code to create a specific set of instructions in words instead of numbers for a particular type of machine. Because of its simplicity, BAL will be longer than other languages; its instructions are also harder to read. However, it is very fast and even though it is not used much any more, IBM upgrades assembler periodically when speed or very detailed control, rather than brevity, is essential to the program. Terms used in assembler include:
LOAD: replicate a value from memory to a register.
STORE: replicate a value from a register to memory.
COMPARE: compare two values.
SHIFT: move parts of a register either left or right.
EXECUTE CHANNEL PROGRAM: an input/output operation, e.g. reading data from a disk.
7. Define the programming language COBOL.
COBOL is an acronym for Common Business-Oriented Language and is one of the oldest programming languages still in use. It was developed to address business, finance and administrative functions. It is an object-oriented programming language; that is, it uses things and their interactions in developing applications and programs. In the beginning, it did not support such things as local variables or dynamic memory allocations; however, these capabilities were added in later iterations. COBOL has over four hundred (400) reserved words or keywords. (Keywords have a particular grammatical meaning and cannot be used as identifiers, e.g. proper nouns that name a specific entity.) According to the Gartner Group, an information technology company that predicts industry trends and rates IT-related companies, in 1997 80% of the world’s governments, militaries and businesses ran COBOL programs. Because it is business oriented and dates are important elements in its function, the year 2000 (Y2K) caused great concern and a flurry of activity. Programmers worked diligently to update the code and implement new programs in an effort to avoid potential problems.
8. Describe the programming language C.
The programming language C was developed in 1972 at the Bell Telephone Laboratories to use with the UNIX operating system. This client-server system is used in servers and individual workstations and was instrumental in the development of networks, as well as the Internet. C is now used on other platforms, like microcontrollers and supercomputers, and has influenced many other programming languages. It is a general-purpose language used in both implementation programs and applications. C is an imperative, procedural language that gives a series of commands which require action. It is a relatively straightforward compiler (translates source code into object code), provides easy access to memory, responds effectively to machine instructions, and requires minimal support while operating. Because of its characteristics, a program or application written in C can be modified with relatively little change to its source code, so it can be used on many different platforms (the hardware and software required to operate an application).
9. Describe Java programming language.
Java was developed by Sun Microsystems and is used on Microsoft Windows, Linux and Solaris operating systems. The majority of its syntax (the set of rules that define the particular sequence of the source code) of this programming language is derived from C and C++. Java has a simpler object model (the communication method or interface used between two entities), its code can run on any Java virtual machine (software that runs programs like a computer), and its portability makes it one of the most widely-used programming languages. Java’s characteristics:
Written using object-oriented programming methods.
Chose the best parts of other object-oriented languages.
Same program can be used on many operating systems.
Has built-in support for computer networks.
Its code can be securely implemented from remote sources.
10. Define Visual Basic programming language and list some of its features.
Visual Basic (VB) is an event-driven (determined by user actions or messages from other programs) programming language that was developed by Microsoft to be easy to learn and easy to use. VB makes it relatively simple to create graphical user interface (GUI) applications, but it can also be used to design more complex applications as well. Microsoft mainly uses visual basic to design new applications for Windows and to create new communication methods for use with Internet-based data systems. A simplistic explanation of how to use visual basic: arrange required components (reusable elements) on a form (an outline), list the specific characteristics and required actions of the components; and write code to achieve the desired functions. VB has default code that can be applied directly or modified as needed, which means new functions can be added and applications updated without having to write very many additional lines of source code.