Difference between revisions of "CS 1331"

From Georgia Tech Student Wiki
(changed recitation from 'must' to 'may')
(Updated text, removed CS 1321 as a prereq (it doesn't exist anymore))
Line 4: Line 4:
 
==== Topic List ====
 
==== Topic List ====
 
CS 1331 basically focuses on Java Programming semantics, a very brief introduction to Data Structures & Algorithms, and also looks into JavaFx basics. The course is slightly fast-paced, but enough time, resources, and attention is given to students who do not have a background in programming to grasp the concepts.
 
CS 1331 basically focuses on Java Programming semantics, a very brief introduction to Data Structures & Algorithms, and also looks into JavaFx basics. The course is slightly fast-paced, but enough time, resources, and attention is given to students who do not have a background in programming to grasp the concepts.
  +
  +
# Introduction to Java
  +
# Variables, Data Types, and Arithmetic
  +
# Objects
  +
# Loops, Control Flow, and Decision Making
  +
# Arrays
  +
# Methods
  +
# Classes and Object-Oriented Programming
  +
# Inheritance and Polymorphism
  +
# Interfaces
  +
# Basic Sorting Algorithms and Introduction to Big-O
  +
# File I/O and Exception Handling
  +
# ArrayLists and LinkedLists
  +
# Recursion
  +
# JavaFX and GUI Programming
  +
 
==== How it fits in the curriculum ====
 
The course not only touches upon the Java Programming language (3rd most popular according to Stack Overflow), but also introduces many fundamental programming concepts that are universal for any programming language. The course also focuses on Object Oriented Design and JavaFX, which will be emphasized in CS 2340, and also touches ADTs, and Searching & Sorting, which will be built on in CS 1332.
  +
  +
Most future CS courses have 1331 as either a direct prerequisite or require a class that has CS 1331 as a prerequisite. It is thus very important to take this course as early as possible.
  +
 
== Current Registration Info ==
 
[TODO: actually this ''isn't'' a linked course, it's just a regular course with an ''optional'' recitation. We're working on a [[Recitation]] page...]
  +
 
This is a [[linked course]]. You may register for a lecture section (e.g. A, B, C) ''and'' a corresponding recitation section with the same section but with the 1331R course number (e.g. lecture section: 1331 A will have recitation section 1331R A). The recitation is optional, but since attendance is voluntary, it is recommended that you sign up for it.
  +
 
The course also has a placement test that you can take before the semester begins to test out.
  +
 
=== [https://oscar.gatech.edu/bprod/bwckctlg.p_disp_course_detail?cat_term_in=202108&subj_code_in=CS&crse_numb_in=1331 Prerequisites] ===
 
At least one of the following:
  +
 
* C or Higher in CS 1301
 
* C or Higher in CS 1315
 
* C or Higher in CS 1371
  +
 
=== Majors That Require This Class ===
  +
 
* Computer Science
 
* Computer Engineering
  +
* Computational Media
  +
 
== Resources ==
 
[https://cs1331.org <nowiki>CS 1331 2019 Website</nowiki>] <br />
 
[https://classes.cc.gatech.edu/AY2021/cs1331a_spring/index.html <nowiki>CS 1331 Spring 2021 Section A Website</nowiki>]
  +
  +
== Full Topics List ==
   
 
# Java Introduction
 
# Java Introduction
Line 65: Line 111:
 
## Math Operations
 
## Math Operations
 
# Enumerations
 
# Enumerations
# static
+
# Static
#* methods
+
#* Methods
#* variables
+
#* Variables
 
# Arrays
 
# Arrays
 
#* 1 Dimensional
 
#* 1 Dimensional
Line 76: Line 122:
 
# Wrapper Classes
 
# Wrapper Classes
 
# Abstract Classes and Interfaces
 
# Abstract Classes and Interfaces
## Heirarchies
+
## Hierarchies
 
## Polymorphism & Dynamic Binding
 
## Polymorphism & Dynamic Binding
 
## Comparable
 
## Comparable
Line 93: Line 139:
 
## GUI Controls
 
## GUI Controls
 
## ADTs
 
## ADTs
##* Sets
+
##* Sets
##* Java Collections
+
##* Java Collections
##* Hashing
+
##* Hashing
##* Lists, Linked Lists
+
##* Lists, Linked Lists
##* Iterable/ Iterators
+
##* Iterable
 
# Class Design and Interaction
 
# Class Design and Interaction
 
# Software Design & Development [Optional]
 
# Software Design & Development [Optional]
 
# Testing, Debugging and IDEs
 
# Testing, Debugging and IDEs
 
# JavaDocs & Creating your own packages
 
# JavaDocs & Creating your own packages
 
==== How it fits in the curriculum ====
 
The course not only touches upon the Java Programming language (3rd most popular according to Stack Overflow), but also introduces many fundamental programming concepts that are universal for any programming language. The course also focuses on Object Oriented Design and JavaFX, which will be emphasized in CS 2340, and also touches ADTs, and Searching & Sorting, which will be built on in CS 1332.
 
 
Most future CS courses have 1331 as either a direct or indirect prerequisite.
 
 
== Current Registration Info ==
 
[TODO: actually this ''isn't'' a linked course, it's just a regular course with an ''optional'' recitation. We're working on a [[Recitation]] page...]
 
 
This is a [[linked course]]. You may register for a lecture section (e.g. A, B, C) ''and'' a corresponding recitation section with the same section but with the 1331R course number (e.g. lecture section: 1331 A will have recitation section 1331R A). The recitation is optional, but since attendance is voluntary, it is recommended that you sign up for it.
 
 
The course also has a placement test that you can take before the semester begins to test out.
 
 
=== [https://oscar.gatech.edu/bprod/bwckctlg.p_disp_course_detail?cat_term_in=202108&subj_code_in=CS&crse_numb_in=1331 Prerequisites] ===
 
At least one of the following:
 
 
* C or Higher in CS 1301 or,
 
* C or Higher in CS 1315 or,
 
* C or Higher in CS 1321 or,
 
* C or Higher in CS 1371
 
 
=== Majors That Require This Class ===
 
 
* Computer Science
 
* Computer Engineering
 
 
== Resources ==
 
[https://cs1331.org <nowiki>CS 1331 2019 Website</nowiki>] <br />
 
[https://classes.cc.gatech.edu/AY2021/cs1331a_spring/index.html <nowiki>CS 1331 Spring 2021 Section A Website</nowiki>]
 

Revision as of 20:15, 19 May 2021

Overview

[No official Course page]

Topic List

CS 1331 basically focuses on Java Programming semantics, a very brief introduction to Data Structures & Algorithms, and also looks into JavaFx basics. The course is slightly fast-paced, but enough time, resources, and attention is given to students who do not have a background in programming to grasp the concepts.

  1. Introduction to Java
  2. Variables, Data Types, and Arithmetic
  3. Objects
  4. Loops, Control Flow, and Decision Making
  5. Arrays
  6. Methods
  7. Classes and Object-Oriented Programming
  8. Inheritance and Polymorphism
  9. Interfaces
  10. Basic Sorting Algorithms and Introduction to Big-O
  11. File I/O and Exception Handling
  12. ArrayLists and LinkedLists
  13. Recursion
  14. JavaFX and GUI Programming

How it fits in the curriculum

The course not only touches upon the Java Programming language (3rd most popular according to Stack Overflow), but also introduces many fundamental programming concepts that are universal for any programming language. The course also focuses on Object Oriented Design and JavaFX, which will be emphasized in CS 2340, and also touches ADTs, and Searching & Sorting, which will be built on in CS 1332.

Most future CS courses have 1331 as either a direct prerequisite or require a class that has CS 1331 as a prerequisite. It is thus very important to take this course as early as possible.

Current Registration Info

[TODO: actually this isn't a linked course, it's just a regular course with an optional recitation. We're working on a Recitation page...]

This is a linked course. You may register for a lecture section (e.g. A, B, C) and a corresponding recitation section with the same section but with the 1331R course number (e.g. lecture section: 1331 A will have recitation section 1331R A). The recitation is optional, but since attendance is voluntary, it is recommended that you sign up for it.

The course also has a placement test that you can take before the semester begins to test out.

Prerequisites

At least one of the following:

  • C or Higher in CS 1301
  • C or Higher in CS 1315
  • C or Higher in CS 1371

Majors That Require This Class

  • Computer Science
  • Computer Engineering
  • Computational Media

Resources

CS 1331 2019 Website
CS 1331 Spring 2021 Section A Website

Full Topics List

  1. Java Introduction
    1. Object Oriented Programming
    2. Syntax vs Semantics
    3. Interpreted vs Compiled
    4. What is a class
    5. Comments
    6. Compilation Process
  2. Variables & Assignment
    1. Identifiers
    2. Variables
    3. Constants
    4. Literals
      • Numeric
      • Strings
  3. Expressions
    • Order of Operations
  4. Classes and Objects
    1. Encapsulation
    2. Instance Methods
    3. Overriding
    4. 'this' operator
    5. scope of variables
    6. visibility modifiers
      • public
      • private
      • protected
      • default (package private)
    7. getters and setters
    8. Constructors
      • Default Constructors
      • Creating Constructors
      • Parameterized Constructors
      • Constructor Overloading
      • Constructor Chaining
      • Copy Constructor
        1. Shallow Copy
        2. Deep Copy
    9. The Object Class
    10. Object Equality
    11. toString
    12. hashCode
  5. Command Line
    1. Command Line Output
    2. Command Line Input
  6. Program Control Flow
    • Branching
      1. Conditionals: if, else if, else ladders
      2. Logical Operations
      3. Logical Operator Precedence
      4. Ternary Operator
      5. Switch
    • Iteration
      1. for Loop
      2. while Loop
      3. Continue and Break
      4. do-while loop
  7. Packages and Built In Classes
    1. Random Class
    2. Math Operations
  8. Enumerations
  9. Static
    • Methods
    • Variables
  10. Arrays
    • 1 Dimensional
    • 2 Dimensional
    • Multi Dimensional
  11. Checkstyle / Coding Conventions
  12. null reference
  13. Wrapper Classes
  14. Abstract Classes and Interfaces
    1. Hierarchies
    2. Polymorphism & Dynamic Binding
    3. Comparable
  15. Exceptions and Error Handling
  16. File I/O
  17. Generics
  18. ArrayLists
  19. Asymptotics and Big-O
  20. Searching and Sorting
  21. Recursion
  22. JavaFX
    1. Concepts, Graphics and Shapes
    2. Event Driven Programming
    3. Layout
    4. Mouse & Key Events
    5. GUI Controls
    6. ADTs
      • Sets
      • Java Collections
      • Hashing
      • Lists, Linked Lists
      • Iterable
  23. Class Design and Interaction
  24. Software Design & Development [Optional]
  25. Testing, Debugging and IDEs
  26. JavaDocs & Creating your own packages