CS2440 Computer Science II

 
    Course Topic:    
  This course is as the second step after CS1440, to introduce students to more advanced programming concepts and methods. In CS1440 you got familiar with Java statements, how to use them to write simple programs that just do the jobs. In CS2440 focus is on solving more complex problems with programming, learning to use new Java constructs, analyzing the running time of your program and how to write better programs.

 
  Course Goals:  
 
  • Improving programming skills
  • Improving problem solving skills
  • Learning new programming constructs and using library classes
  • Understanding recursion and be able to use it as an algorithmic method
  • Being able to determine the complexity of small algorithms and programs, i.e. Big-O notation
  • Being able to compare the efficiencies of different approaches to solve a problem
  • Understanding the design and implementation of List classes
  • Knowing how to implement linked structures
 
     
  Lectures:  
 
  • 2440-101:      MWF 10:00 - 10:50 pm, in BH 311
  • 2440-102:      MWF 12:00 pm - 12:50 pm, in BH 311
 
     
  Labs:  
  Alongside this course there is a mandatory lab session which is to provide you with the opportunity to have hands-on experience on the concepts you learn through the course. Labs are essential part of learning and teaching assistants - available at lab sessions - could assist you with implementing Java codes related to the course assignments and projects. Labs have their own sessions, policies and grades. Please check their requirements on ASULearn and with lab instructors. You can not pass this course if you do not get at least a D- in the lab. At the end of semester, your lab grade is given to me to factor in in the course grade.  
     
  Contact Information:  
 
  • Professor: Dr. Mohammad Mohebbi
  • Phone: 828 262 2740
  • Office: Belk 312C
  • Email: My appstate username is mohebbim, and my email address is my username AT appstate.edu
 
     
  Office Hours:  
 
  • M,W: 3:00 to 4:00
  • Tue: 2:00 to 3:30 and 4:30 to 5:00
  • If the office hours do not work for you, please email me, we set another time.
 
     
  Help Sessions:  
  Study Halls will be held on Sunday, Monday, and Tuesday nights from 6:00 to 9:00 pm.
Location: Room 311, Sundays and Mondays. On Tuesdays in room 310 from 6:00 to 6:30, and in room 311 from 6:30 to 9:00.

Tutoring is available through University Tutoring Services. You can apply for a tutor by following the instructions at https://studentlearningcenter.appstate.edu/tutoring-services
 
     
  Textbook:  
  Data Structures and Other Objects Using Java (4th Edition), Michael Main, Prentice Hall, 2011.  
     
  Required Supplies:  
  3-ring binder for worksheets, notes and assignments.  
     
  Grading and Coursework Policies:  
  All coursework for this class is individual.
The following grading scale will used in this course:
-   Attendance 5%
-   Quizzes and homework 12%
-   Labs assignments 23%
-   In-class exams 30%
-   Final exam 30%
 
     
  Grading Scale:  
 
  A= 93 to 100 A- = 90-92.9    
B+= 87 to 89.9 B= 83-86.9 B- = 80-82.9
  C+= 77 to 79.9 C= 73-76.9 C- = 70-72.9
  D+= 67 to 69.9 D= 63-66.9 D- = 60-62.9
  F= < 60        
 
     
  Important Notes:  
 

 
  Academic Integrity:  
  Please be aware of academic integrity policy at Appalachian State University and how violations are treated. You can find all the information related to academic integrity at this address (http://studentconduct.appstate.edu/).

 
  Students with Disabilities:  
  In accordance with the Americans with Disabilities Act (ADA) of 1990, and Section 504 of the Rehabilitation Act of 1973, the Appalachian State University is committed to provide reasonable accommodations for individuals with documented qualifying disabilities. The students seeking accommodations based on a substantially limiting disability must contact and register with The Office of Disability Services (ODS) at http://www.ods.appstate.edu/ or 828-262-3056. Upon a complete registration, individuals will meet with ODS staff to discuss eligibility and appropriate accommodations.  
     
  Syllabus:  
  A tentative syllabus for this course appears below.
Section numbers matches the course book’s chapters or subchapters.
 
 

Wk

Day

Read Before
Class
Quiz Due Before Midnight Program Due

Topic in Class

1

Wednesday,
Jan. 17
      Go over syllabus, take attendance, talk about enums.
Thursday,
Jan. 18
      Lab 1 - Playing Card

Friday,
Jan. 19

Section 3.1 Quiz on Enums  

Start 2D arrays

2

Monday,
Jan. 22
Section 1.1 Quiz 3.1   2D arrays, nested loops, upcoming lab
Wednesday,
Jan. 24
  Quiz 1.1   2D arrays, nested loops
Thursday,
Jan. 25
      Lab 2 - Maze Game
Friday,
Jan. 26
Section 1.2     Complexity

3

Monday,
Jan. 29
  Quiz 1.2   Complexity
Wednesday,
Jan. 31
Section 1.3     Complexity, start exceptions
Thursday,
Feb.1
      Lab 3 - Big Oh
Friday,
Feb. 2
Sections 2.1-2.2, Appendix C     Exceptions

4

Monday,
Feb. 5
  Quiz 2.1-2.2   Graphical user interfaces
Wednesday,
Feb. 7
Sections 2.3-2.4     Parameters, equals method, clones
Thursday,
Feb. 8
      Lab 4 - Simple GUI Calculator
Friday,
Feb. 9
Section 3.2 Quiz 2.4   Bag of ints

5

Monday,
Feb. 12
Section 3.3 Quiz 3.2   Sequence ADT
Wednesday,
Feb. 14
Section 13.1 Quiz 3.3   DoubleArrSeq practice, inheritance, generics
Thursday,
Feb. 15
      Lab 5 - DoubleArrSeq
Friday,
Feb. 16
Section 13.2     More inheritance

6

Monday,
Feb. 19
Sections 4.1-4.2 Quiz 13.1   Abstract classes and interfaces
Wednesday,
Feb. 21
      Robot Game assigned
Thursday,
Feb. 22
      Lab 6 - Zoo
Friday,
Feb. 23
Sections 4.3     Linked list fundamentals and nodes

7

Monday,
Feb. 26
Sections 4.4     Computing length, traversing, searching, copying a linked list
Wednesday,
Feb. 28
      More practice with linked lists
Thursday,
Mar. 1
      Exam #1
Friday,
Mar. 2
  Quiz 4.1-4.2   Linked List Bag

8

Monday,
Mar. 5
      Spring Break
Wednesday,
Mar. 7
      Spring Break
Thursday,
Mar. 8
      Spring Break
Friday,
Mar. 9
      Spring Break

9

Monday,
Mar. 12
Sections 3.5,
4.5, 4.6
Quiz 4.3-4.4 Part 1 of Robot Game due Sequence ADT, more complicated linked lists
Wednesday,
Mar. 14
      Prepare for Lab 7
Thursday,
Mar. 15
      Lab 7 - DoubleLinkedSeq
Friday,
Mar. 16
      Discuss DoubleLinkedSeq

10

Monday,
Mar. 19
Sections 5.1-5.3 Quiz 3.5, 4.5, 4.6   Object class, wrappers, generic methods and classes
Wednesday,
Mar. 21
Sections 5.4-5.5 Quiz 5.1-5.3   Generic nodes and interfaces
Thursday,
Mar. 22
      Lab 7 -cont. DoubleLinkedSeq
Friday,
Mar. 23
Sections 5.6-5.7 Quiz 5.4-5.5   Iterators and interfaces, discuss the lab

11

Monday,
Mar. 26
Sections 6.1-6.2 Quiz 5.6-5.7  

Generic Bag

Wednesday,
Mar. 28
Sections 6.3-6.4 Quiz 6.1-6.2   Stack class and applications
Thursday,
Mar. 29
      Lab 8 - SortedLinkedList
Friday,
Mar. 30
Section 7.1-7.2 Quiz 6.3-6.4   More on stacks

12

Monday,
Apr. 2
      Easter Holiday
Wednesday,
Apr. 4
Section 7.3 Quiz 7.1-7.2   Queue class
Thursday,
Apr. 5
      Lab 9 - Calculator 2
Friday,
Apr. 6
  Quiz 7.3 Part 2 of Robot Game due Array and linked list Queues

13

Monday,
Apr. 9
Sections 8.1-8.2     Intro. to Recursion
Wednesday,
Apr. 11
Section 8.3 Quiz 8.1-8.2   Recursive methods
Thursday,
Apr. 12
      Exam #2
Friday,
Apr. 13
  Quiz 8.3   Recursion and backtracking

14

Monday,
Apr. 16
Section 11.1     Serial and Binary search
Wednesday,
Apr. 18
Section 12.1   Part 3 of Robot Game due Quadratic sorts
Thursday,
Apr. 19
      Lab 10 - Backtracking Maze Solver/Sorting(?)
Friday,
Apr. 20
First half
Section 12.2
Quiz 11.1   Finish quadratic sorts, mergesort
15 Monday,
Apr. 23
  Quiz 12.1   Mergesort
Wednesday,
Apr. 25
Second half
Section 12.2
     Discuss Map ADT, mergesort complexity
Thursday,
Apr. 26
      Lab Final
Friday,
Apr. 27
    Web-CAT submission of
final Robot Game player
Quicksort
16 Monday,
Apr. 30
    6:00 pm Robot Game
tournament
Finish quicksort, complexity review
Wednesday,
May 2
  Quiz 12.2   Review:recursion review
Thursday,
May 3
      Reading Day
Friday,
May 4
       
17 Monday,
May 7
      Final exam, sections 102, 103
11:00 am - 1:30 pm
Tuesday,
May 8
       
Wednesday,
May 9
      Final exam, sections 101, 104
8:00 am - 10:30 am
Final exam, section 105,
11:00 am - 2:30 pm
Thursday,
May 10
       
Friday,
May 11