Хороший Финальный Проект Программирования Информатики Средней школы AP? - PullRequest
3 голосов
/ 14 мая 2010

Привет, ребята, этот вопрос может показаться очень конкретным, но мне нужны какие-то идеи для проекта, который я мог бы сделать в течение моего последнего месяца или около того в моем классе AP Computer Science. Я смотрел на некоторые последние идеи колледжа, и многие из них кажутся просто скучными. Сначала я подумал о написании IRC-клиента в JAVA, но я бы не стал изучать что-то «новое», которое помогло бы мне в будущем. Затем я подумал о создании приложений для iPhone / Touch (у меня нет телефона Android, и я легко могу достать его), но мне понадобятся идеи для создания приложений для этого.

Я хочу сделать что-то, что будет казаться нетривиальным и нуждается в некотором объяснении, но также поможет мне в конечном счете изучить новые концепции в информатике. Если вы, ребята, могли бы помочь, я был бы очень признателен. У меня действительно есть только месяц, чтобы сделать этот проект, поэтому стараюсь держать проект в этом диапазоне. Также я не против изучения новых языков.

Спасибо:)

Редактировать: Мой основной язык программирования - JAVA, так как я использую его в течение последних полутора лет. Я также знаю C ++ (очень мало) и PHP (довольно хорошо).

Ответы [ 10 ]

3 голосов
/ 14 мая 2010

Я думаю, что наиболее «полным» видом программного обеспечения, которое вы можете сделать и многому научиться, является игра. В играх используется множество областей компьютерной науки, таких как сеть, хранилище, базы данных, графика, темы, математика, физика, искусственный интеллект и так далее. Даже простая сетевая игра потребует от вас охвата многих областей, поэтому я думаю, что стоит попробовать.

3 голосов
/ 14 мая 2010

Вот немного странно, но кто знает: работай! Может быть, взять что-то вроде Haskell и сделать быстрый проект, может быть, переводчик для простого языка.

В Интернете есть множество учебных пособий и книг. Напишите себе схему за 48 часов довольно эффективно. Объедините это с некоторыми уроками из Real World Haskell , и я не думаю, что выучить совершенно новую парадигму программирования И извлечь из нее полезную программу за один месяц невозможно.

Преимущества здесь? Во-первых, вы узнаете совершенно новый способ программирования, функциональный стиль. Многие защитники утверждают, что это действительно откроет ваш разум новым идеям программирования, и я думаю, что Хаскелл определенно открыл мне глаза на некоторые новые концепции. Во-вторых, вы узнаете много нового о лексизировании и синтаксическом анализе, а также о первых общих шагах по работе с языком программирования. Три, давай, как круто это проект! Вы пишете свой собственный язык и переводчик для него!

3 голосов
/ 14 мая 2010

IRC-приложение, вероятно, действительно научит вас нескольким новым вещам, большинство из которых будет полезно позже, например, стандартам, спецификациям, сетям, многопоточности и т. Д., Но это займет намного больше месяца.

Какой язык (языки) вы знаете сейчас? Если вы знаете Java и знаете, как создавать GUI, вы можете попробовать написать игру. Крестики-нолики были бы довольно просты, вы могли бы сделать это за месяц, и, чтобы оживить его, сыграть против вас ИИ или сделать выбор между людьми.

Таким образом, вы узнаете о различных структурах данных, применении правил игры, хотя бы некоторой оптимизации и, если все сделано правильно, создании своего собственного API, позволяющего человеку управлять с помощью одного набора ввода (GUI) и ИИ через другого (принятие решения, без GUI)

0 голосов
/ 14 мая 2010

Хотя это и не так волнует, как некоторые игровые идеи, есть несколько вещей, которые вы можете создать, которые очень актуальны в современном мире информационных технологий, могут привести вас к изучению вещей, которые являются ценными и могут быть выполнены в разной степени за время -frame / Языки, которые вы предложили.

  • Простой брокер сообщений ( Например, Xml / B2B Exchange Order Exchange )
  • Простая шина сообщений ( Пример. Публикация / подписка, может использоваться для отправки IRC-сообщений )
  • Распределенное хранилище ( Например, кэш, Hashtable, Data-Grid и т. Д. ),
  • «Прочная» очередь «точка-точка»
  • Простая система управления делами ( Пример. CRM )
0 голосов
/ 14 мая 2010

Возможно, мини-сервер базы данных. Хранилище ключей / значений, с потоками и сетевым сокетом. Здесь можно сделать много интересных поворотов (кеширование, параллелизм, как хранить на диске, как пережить сбой). Сохраняя это ключ / значение, вы сохраняете сложность относительно низкой.

0 голосов
/ 14 мая 2010

Представление класса интересным общедоступным API-интерфейсам (например, создание клиентом Twitter или погодным приложением) очень поможет им в реальном мире.

0 голосов
/ 14 мая 2010

Шашки могут быть забавными, и вы можете добавить в них элемент ИИ, поскольку он достаточно прост, чтобы создать полное дерево решений.

0 голосов
/ 14 мая 2010

Вместо того, чтобы делать небольшой проект с нуля, вы можете рассмотреть возможность добавления полезной функции в какой-либо проект с открытым исходным кодом. Таким образом, вы не будете тратить так много времени только на создание базовой инфраструктуры.

0 голосов
/ 14 мая 2010

Мы сделали игру «Морской бой» для курса программирования в колледже для новичков. Преимущества аналогичны тем, что упоминал Слокун, но вы действительно можете сходить с ума от ИИ в линкоре. Или, если вы хотите пройти маршрут UI, вы также можете провести здесь много времени. И в сущности, это действительно не так сложно, чтобы отслеживать детали игры.

0 голосов
/ 14 мая 2010

Однажды нам пришлось сделать приложение, которое позволяло пользователям просматривать короткие клипы.После того, как клип будет воспроизведен, приложение отображает список клипов, из которых зрители могут выбрать (путем голосования через SMS), какой клип просматривать следующим.Мы сделали всю сделку на Java.Вы также можете включить базу данных, в которой хранятся клипы и, возможно, даже пользователи, и управлять базой данных через Hibernate .Мы использовали SMS Lib , чтобы разрешить использование SMS в приложении.

...