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
2008 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.

In CTY’s computer science courses, students investigate the theory, logic, and techniques of computer science.  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
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.

Prerequisite: Algebra I.

Lab Fee: $65

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

Top


Theory of Computation
In this theoretical mathematics and computer science course, students move beyond basic computer literacy and programming techniques as they delve into the rich mathematical foundation of computer science. They investigate the efficiency of various computational methods and explore what is possible and impossible in the digital world.

Students examine proof techniques such as mathematical induction and Cantor diagonalization as they consider a range of areas in mathematics including topics in combinatorics and different sizes of infinity. They explore the manipulation of symbols in formal languages, including those with context-free grammars such as the propositional calculus. Students work with various theoretical frameworks, like Turing machines and automata theory, to investigate issues of decidability (which problems can be solved by computer programs) as well as computability and complexity (how long a particular program would run and what resources would be required). The course culminates with an examination of the P vs. NP Millennium Prize Problem, one of the most important open questions in computer science: Are there problems for which a potential answer could be quickly verified, but where actually computing the answer would take impossibly long? The Clay Mathematics Institute has offered a $1,000,000 prize for a solution.

Note: Students infrequently use programming in this course. While programming may be used to illustrate principles or introduce new concepts, it is not the focus of the course.

Sample text: Materials compiled by the instructor.

Prerequisite: Geometry, CTY’s Mathematical Logic, or CTY’s Fundamentals of Computer Science.

Session 1: Lancaster
Session 2: Not offered

Top


Data Structures and Algorithms
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.

Note: Programming experience is required for this course.

Sample text: Data Structures and Algorithm Analysis, Weiss.

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

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.