Difference between revisions of "CS 2340"

From Georgia Tech Student Wiki
(Credit count)
(→‎Spring 2024: Added projects completed by another section.\)
 
(9 intermediate revisions by 6 users not shown)
Line 1: Line 1:
  +
'''CS 2340''', formally known as '''Objects and Design''', is a 3-credit Computer Science project-based class taken as a core requirement for College of Computing majors. It provides a high-level overview of software engineering principles, such as the development process, testing, design patterns, and object-oriented design. It is currently taught in Java. It is immediately preceded by [[CS 1331]], and is followed by the [[CS Junior Design]] sequence.
== Overview ==
 
CS 2340 is a 3 credit hour CS class taken by all CS students, with no lab or recitation. Some CompE students (depending on thread) take this class as well.
 
   
 
== Workload ==
CS 2340 is a project based class. In its current form, it goes over topics in the development process, testing, and design patterns. It is currently taught in Java.
 
  +
As CS 2340 is a project-based class, there are only two components to the class: the course project and exams.
   
  +
Exams test knowledge of concepts in class through multiple choice questions and design diagrams. Every exam will have a diagramming component of some form, including the final.
==== Topics Covered ====
 
   
  +
The course project is a chance to apply course topics into a real coding project. The theme of the project will vary by semester, and occasionally, the language will as well. Projects are done in groups of 2-5 and are structured in a sprint-style.
  +
 
== Topics List ==
  +
Topics covered in the course include:
 
# The Unified Process
 
# The Unified Process
 
# Testing and Test-Driven Development
 
# Testing and Test-Driven Development
# UML
+
# UML
 
# Class Diagramming
 
# Class Diagramming
 
# Design Principles
 
# Design Principles
 
# Design Patterns
 
# Design Patterns
 
# Code Review
 
# Code Review
  +
== Prerequisite Knowledge ==
   
  +
=== Programming ===
==== How it fits in the Curriculum ====
 
  +
'''Note: This applies to the Java versions of 2340, which has been the case since 2019.'''
CS 2340 is a required class for all CS and CM majors (and required for any CompE majors that elect to take a CS thread). It is generally taken in your late first-year or early second-year. The class isn't a prereq for many classes, other than Compilers ([[CS 4240]]), but it is one of the prerequisites for the CS/CM Junior Design Capstone.
 
  +
  +
As CS 2340 has CS 1331 as a prerequisite, CS 2340 expects high knowledge of Java programming and a basic understanding Object-Oriented Principles, such as encapsulation, inheritance, overloading, overriding, and polymorphism. Some versions of the class also expect basic familiarity with JavaFX and JARs. While the class will not expect knowledge of the fine details of Java like CS 1331 did, experience similar to what's expected in CS 1332 is needed as all programming is done in Java.
  +
  +
As of Fall 2022, the stack alternates between JavaFX in the fall and Android Studio in the spring.
  +
  +
== Future Outlook ==
  +
CS 2340 is not a prerequisite for many CS classes. It only serves as a prerequisite for [[CS 4240]] (Compilers), which is only required for the Systems and Architecture thread.
  +
  +
CS 2340 is however, a prerequisite for the standard Junior Design option, as that is an even more enhanced software design experience.
   
 
== Current Registration Info ==
 
== Current Registration Info ==
CS 2340 is not a [[linked course]], nor does it have a [[Recitation]]. This means you solely have to register for the lecture (e.g. Section A, B, C, etc.)
+
CS 2340 is not a [[linked course]], nor does it have a [[Recitation]]. This means you solely have to register for the lecture (e.g. Section A, B, C, etc.).
  +
  +
Note that your project team may have to meet at TA office hours to get milestone checkoffs, but there are usually many time slots available.
   
 
=== Prerequisites ===
 
=== Prerequisites ===
 
The sole prerequisite is a C or higher in CS 1331.
 
The sole prerequisite is a C or higher in CS 1331.
   
  +
== Resources ==
=== Majors That Require This Class ===
 
   
  +
=== Spring 2024 ===
* Computational Media
 
  +
There were two main projects made using Android SDK (in Java) for this class:
* Computer Science
 
   
  +
# A Scheduler App that allowed students to store Exams, Classes and Assignments with attributes like Dates, Location, etc.
Computer Engineering students that elect to take a CS thread (Systems & Architecture, Information Internetworks, or Devices) must take CS 2340 as well.
 
  +
# A Spotify Wrapped Sharing application that allows users to see a creative representation of their listened songs
  +
While another section made:
   
  +
# A Fitness Tracker application that allowed users can enter health information (sleep hours and fitness minutes) and start/stop a timer
== Past Semesters ==
 
  +
# A Food Management application that allows users to track daily calorie intake, create recipes, manage ingredient quantities, and generate shopping lists.
   
 
=== Spring 2021: Dungeon Crawler ===
 
=== Spring 2021: Dungeon Crawler ===
Line 37: Line 56:
 
[https://www.youtube.com/watch?v=XBG8cKt8fcc Example 1]
 
[https://www.youtube.com/watch?v=XBG8cKt8fcc Example 1]
   
=== Fall 2020: Faming Simulator ===
+
=== Fall 2020: Farming Simulator ===
 
The project for Fall 2020 was a Farm Simulator, again using JavaFX and Java.
 
The project for Fall 2020 was a Farm Simulator, again using JavaFX and Java.
  +
[[Category:Courses|^CS^CS]]

Latest revision as of 09:42, 19 March 2024

CS 2340, formally known as Objects and Design, is a 3-credit Computer Science project-based class taken as a core requirement for College of Computing majors. It provides a high-level overview of software engineering principles, such as the development process, testing, design patterns, and object-oriented design. It is currently taught in Java. It is immediately preceded by CS 1331, and is followed by the CS Junior Design sequence.

Workload[edit | edit source]

As CS 2340 is a project-based class, there are only two components to the class: the course project and exams.

Exams test knowledge of concepts in class through multiple choice questions and design diagrams. Every exam will have a diagramming component of some form, including the final.

The course project is a chance to apply course topics into a real coding project. The theme of the project will vary by semester, and occasionally, the language will as well. Projects are done in groups of 2-5 and are structured in a sprint-style.

Topics List[edit | edit source]

Topics covered in the course include:

  1. The Unified Process
  2. Testing and Test-Driven Development
  3. UML
  4. Class Diagramming
  5. Design Principles
  6. Design Patterns
  7. Code Review

Prerequisite Knowledge[edit | edit source]

Programming[edit | edit source]

Note: This applies to the Java versions of 2340, which has been the case since 2019.

As CS 2340 has CS 1331 as a prerequisite, CS 2340 expects high knowledge of Java programming and a basic understanding Object-Oriented Principles, such as encapsulation, inheritance, overloading, overriding, and polymorphism. Some versions of the class also expect basic familiarity with JavaFX and JARs. While the class will not expect knowledge of the fine details of Java like CS 1331 did, experience similar to what's expected in CS 1332 is needed as all programming is done in Java.

As of Fall 2022, the stack alternates between JavaFX in the fall and Android Studio in the spring.

Future Outlook[edit | edit source]

CS 2340 is not a prerequisite for many CS classes. It only serves as a prerequisite for CS 4240 (Compilers), which is only required for the Systems and Architecture thread.

CS 2340 is however, a prerequisite for the standard Junior Design option, as that is an even more enhanced software design experience.

Current Registration Info[edit | edit source]

CS 2340 is not a linked course, nor does it have a Recitation. This means you solely have to register for the lecture (e.g. Section A, B, C, etc.).

Note that your project team may have to meet at TA office hours to get milestone checkoffs, but there are usually many time slots available.

Prerequisites[edit | edit source]

The sole prerequisite is a C or higher in CS 1331.

Resources[edit | edit source]

Spring 2024[edit | edit source]

There were two main projects made using Android SDK (in Java) for this class:

  1. A Scheduler App that allowed students to store Exams, Classes and Assignments with attributes like Dates, Location, etc.
  2. A Spotify Wrapped Sharing application that allows users to see a creative representation of their listened songs

While another section made:

  1. A Fitness Tracker application that allowed users can enter health information (sleep hours and fitness minutes) and start/stop a timer
  2. A Food Management application that allows users to track daily calorie intake, create recipes, manage ingredient quantities, and generate shopping lists.

Spring 2021: Dungeon Crawler[edit | edit source]

The project that was assigned for the Spring 2021 semester was a Dungeon Crawler game using the JavaFX framework in Java. An example can be found below.

Example 1

Fall 2020: Farming Simulator[edit | edit source]

The project for Fall 2020 was a Farm Simulator, again using JavaFX and Java.