CS 2340
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:
- The Unified Process
- Testing and Test-Driven Development
- UML
- Class Diagramming
- Design Principles
- Design Patterns
- 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:
- A Scheduler App that allowed students to store Exams, Classes and Assignments with attributes like Dates, Location, etc.
- 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
- 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.
Fall 2020: Farming Simulator[edit | edit source]
The project for Fall 2020 was a Farm Simulator, again using JavaFX and Java.