Data Structures and Algorithms

From RealCTY
Jump to navigation Jump to search
Part of a series on
Realcty logo 20060831.png
CTY Courses
Category · Template · CAA Courses
Sites
Baltimore · Carlisle · Lancaster · Los Angeles · Saratoga Springs · Seattle
Humanities
Logic: PoR
International Politics ·
Ethics · Existentialism
Philosophy of Mind
Cognitive Psychology · Linguistics
Dissent
Newton, Darwin, and Einstein
The Art and Science of Filmmaking
Beyond the Binary: A Cultural History of Gender
Laws and Orders: Legal Systems Around the World
Writing
Writing Your World
Fiction and Poetry
Utopias and Dystopias
Persuasion and Propaganda
The Art of Fiction
Math
Probability and Game Theory
Number Theory · Mathematical Logic
Cryptology · Combinatorics and Graph Theory
Topology
Economics
Macroeconomics and the Global Economy
Fundamentals of Microeconomics
Computer Science
Data Structures and Algorithms
Fundamentals of Computer Science
Science
FPHS Biology · FPHS Chemistry · FPHS Physics
Astrophysics
Paleobiology · Genetics · Neuroscience
Investigations in Engineering
Introduction to Biomedical Sciences · Electrical Engineering
Special Relativity
Princeton & Berkeley
Global Politics: Human Rights and Justice
Human Nature and Technology
Politics and Film · Epidemiology
The Mathematics of Competitive Behavior
Science, Technology and Public Policy
Race and Politics · Politics in the Middle East
The Global Environment
Playing God: The Ethics of Human Subjects Research
You Will Be Offended: Satire, Comedy, and Public Discourse
Defunct Courses
Beginning Ancient Greek · German 1
German 2
Latin 2
French 1 · French 2
Great Revolutions
American History
Modern European History · Eastern European History
Music Theory
History of Western Art
Renaissance Art
Introduction to American Studies: Race and Class
Medieval Art
Twentieth Century Art · Gandhi's India
American Studies: The Sixties · Women and US Social Reform
American Studies: The Harlem Renaissance
Intermediate Ancient Greek
Islam · The Asian Pacific Rim
Russian History
TCE: Literature and the Arts · TCE: Popular Culture
The Crafting of Drama
The Crafting of Poetry · TCE: Shakespeare
TCE: Science Fiction
TCE: Beyond the Ring and the Wardrobe
Advanced Mathematical Modeling
Advanced Mathematical Reasoning
Statistics · Calculus: A Conceptual Approach
Topics in Precalculus
Set Theory · Digital Logic
Theoretical Foundations of Computer Science
Introduction to Laboratory Sciences · Archaeology
Ecology
Microbiology · Selected Topics in Advanced Biology
Selected Topics in Advanced Chemistry
Selected Topics in Advanced Physics · Physical Anthropology
Advanced Physics: Mechanics
Scientific Investigations: St. Mary's River · Genomics
Volcanoes
Etymologies · Oceanography: The Hawaiian Pacific
Life Cycle of an Island: Hawaii
The History of Disease · The Critical Essay: Film
Wicked Art: Pictures, Pixels, and Pens
Latin I
Goodwives and Witches: Women in Colonial America
Freaks and Geeks in Popular Media
The Digital Revolution
Advanced Robotics
Theory of Computation
Individually Paced Mathematics Sequence
Service, Leadership & Community Transformation
Advanced Cryptology
Law and Politics in US History
Intro to Organic Chemistry

Data Structures and Algorithms is a Computer Science course in the CTY program. Its course code is DATA, and it is offered only at Lancaster and only first session.

Course Description

DATA focuses on different ways of storing and retrieving information on a computer.

From the CTY Course Catalog (2017):

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 and scalability 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.

Course History

1992

DATA was first offered in 1992, when it boasted a grand total of seven students (six of them nomores) who spent the whole session in the Martin Library basement using the terrifically powerful MicroVax 3000 minicomputer trying to get a simple heap-based priority queue working. Or, just as often, being locked out of the basement lab (the librarians having never been told that a course was using it) and playing whist for hours on end. The textbooks were Aho-Hopcroft-Ullman and Cormen-Leiserson-Rivest, two books guaranteed to be of lifelong value to the budding CS student, or to anyone requiring a heavy blunt instrument for bludgeoning.

2014

In 2014 the instructor was Jon, who had been teaching the class since 2011, and the TA was known as Wizard. The class spent a good deal of its time dealing with sorting algorithms, which were often demonstrated to the class through a program known as 'The Sound of Sorting' or 'the demon music'. While first exposure to the demon music led to shock, horror, and the covering of ears, in the end it was rather well liked and students begged to hear various sorts with strange names. Sorts and searches were also performed with the students themselves using class count-off numbers or names; this yielded many duck quacks and the occasional moo. Jon was esteemed among the returners in the class for his love of tradition, such his dedication to Dr. Mario, teaching it to the class and leading it during the dance even when the wrong version of Dr. Mario was played. At the end of session, a frog was added to Wizard's hat in honor of the frogorithm frogsort. ("Frog you!") It originated frog one of the many hilarious study hall worksheets which caused a linguistic revolution; this being attempting to confrog Diana upon her return frog quarantine the next morning. It kind of worked.

2017

In 2017 the instructor was Dr. Lamprecht and the TA was Chris. Members of this class included Hudson Jakubowicz and Stephen Campbell. The class included different topics such as sorting algorithms and data structures. Many recurring jokes were exchanged in this class. These included:

  • BogoSort - A sorting algorithm that sort a data set randomly until it is in order
  • Assumption Sort - A sorting algorithm that assumes the data set is already sorted
  • Segmentation Faults - Where a program tries to access something restricted and returns an error message. These almost always arose from the copy-paste programs that we were assigned to work on.
  • Core Dumps - Where a program crashes, and loses all information about the current state of the program. This inspired chants and complaints during and outside class.
  • Menus - Almost all assignments related to programming were to add menus to already completed programs.

Many of our breaks were spent playing mafia and/or Frisbee.