Difference between revisions of "CS 2340"

From Georgia Tech Student Wiki
m
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.
  +
  +
== 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 timeslots available.
+
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.
 
=== Majors That Require This Class ===
 
 
* Computational Media
 
* Computer Science
 
 
Computer Engineering students that elect to take a CS thread (Systems & Architecture, Information Internetworks, or Devices) must take CS 2340 as well.
 
   
 
== Past Semesters ==
 
== Past Semesters ==

Revision as of 14:37, 1 July 2021

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

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

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

Programming

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.

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

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

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

Past Semesters

Spring 2021: Dungeon Crawler

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

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