Home | Contact Us | Site Map | Search     

Johns Hopkins University Logo

Center for Talented Youth

En Español   

New Here? | MyCTY Login | Apply | Alumni

Male Student Outdoors on Laptop
Students play a game after class
Home > Summer Programs > Catalogs > CTY: 7th Grade and Above
CTY: 7th Grade & Above
2009 Summer Programs Catalog

Computer Science Courses

CTY’s mathematics, science, and computer science courses are dedicated to Dr. Richard P. Longaker, Provost of Johns Hopkins University from 1979 to 1987, in recognition of his advocacy and guidance through CTY’s initial years.

Computer Science is an area of study that continues to gain importance for its wide applications. CTY math and computer science courses aim to give students the skills, knowledge, and perspective to understand the multifaceted nature of mathematics. Students move beyond basic skills to gain greater understanding of both the underlying meanings of mathematical concepts and the intriguing ways math can be applied and extended in a range of contexts.

Please refer to our Eligibility web page for minimum test score requirements for computer science courses. Sample syllabi for all courses are also available.


Fundamentals of Computer Science

Prerequisite: Algebra I.

This course introduces students to three major areas of computer science: theory and algorithms, hardware systems, and software systems. The theoretical component of the course covers the study of algorithms, Boolean algebra, binary mathematics, and the theory of computation. While studying hardware systems, students learn about the physical components of computers, digital logic, and computer architecture. In software systems, students are introduced to elements of programming languages, compilers, and computer graphics. The course also introduces operating systems, a key link between hardware and software, and computer networks.

This course helps prepare students for AP Computer Science and gives them a good indication of what they might see as a computer science major in college. While learning a particular programming language is not a goal of the course, students apply and illustrate the concepts they are learning through work on programming projects.

Sample text: An Invitation to Computer Science, Schneider and Gersting.

Lab Fee: $65

Session 1: Lancaster, Los Angeles, Saratoga Springs
Session 2: Lancaster, Los Angeles, Saratoga Springs

Top


Theory of Computation

Prerequisite: Algebra I and one of these CTY courses: Mathematical Logic, Number Theory, Fundamentals of Computer Science, or Data Structures and Algorithms.

In this theoretical mathematics and computer science course, students move beyond the computer to delve into the rich mathematical foundation of computer science. They consider the efficiency of various computational methods and explore what is possible and impossible in the digital world.

Students investigate several theoretical representations of computers, including finite automata and Turing machines, allowing them to use math to reason abstractly about the capabilities of computers. To aid in their exploration of the theory of computation, students acquire tools such as formal logic, combinatorics, and mathematical induction. These ideas are used extensively in many advanced math courses.

Students investigate computability (which problems computers can solve) and then move on to complexity (how much time a solution requires). They also explore an important application of these concepts, the P vs. NP problem: Are there problems for which an answer could be quickly verified, but computing the answer would take impossibly long? The Clay Mathematics Institute offers a $1,000,000 reward for a solution.

Note: While some course topics are useful in programming, the class does not use computers, and no programming background is required.

Sample text: Materials compiled by the instructor.

Session 1: Lancaster
Session 2: Not offered

Top


Data Structures and Algorithms

Prerequisite: CTY’s Fundamentals of Computer Science or an equivalent computer science programming experience.

In order for a computer to find a solution to a particular problem, it is necessary to formalize the problem in terms of a mathematical model, find a suitable algorithm to solve the problem in that model, and then implement the algorithm in a particular programming language. In this class, students learn how to design, analyze, and implement these algorithms.

Students begin by studying data structures such as arrays, lists, stacks, queues, trees, and sets in order to learn different ways of organizing data. Students then analyze many sorting, searching, and graphing algorithms to determine their run-time efficiency. By examining these fundamental algorithms, students learn how design decisions can affect the efficiency of an algorithm. A series of programming assignments helps students learn how to put these abstract ideas into practice. By the end of this course, students acquire the conceptual tools necessary to model and analyze computational problems.

Sample text: Data Structures and Algorithm Analysis, Weiss.

Session 1: Lancaster
Session 2: Not offered

Top

CTY: 7th Grade and Above

©The Johns Hopkins University. Baltimore, Maryland. All rights reserved.
CTY is accredited for grades 5 through 12 by the Commission on Secondary Schools of the Middle States Association of Colleges and Schools.

Center for Talented Youth -- A world leader in gifted education
5801 Smith Ave #400 McAuley Hall, Baltimore, Maryland 21209
Phone: 410 735-4100 / 410 735-6200 / Email: ctyinfo@jhu.edu

Privacy Statement

Divider

Get Adobe Reader

Best viewed at
1024 x 768 or higher resolution.