Course Syllabus

Programming Fundamentals III

COSC 2436

Semester with Course Reference Number (CRN)

Spring 2019

Instructor contact information (phone number and email address)

Pham Dai Xuan

Tel.: (84-28) 37155033, ext. 1551

Email: xuanpd@saigontech.edu.vn

Website: http://www.saigontech.edu.vn/faculty/XuanPD/

 

Office Location and Hours

Office: Room 605, SaigonTech Tower, Quang Trung Software City

Office Hours: 7:30 – 16:30

Course Location/Times

Lecture:

    Room, SaigonTech Tower, Quang Trung Software City

    Monday, 13:00 - 14:30

    Wednesday, 13:00 - 14:30

Lab:

    Room, SaigonTech Tower, Quang Trung Software City

    Tuesday, 13:00 - 14:30

    Thursday, 13:00 - 14:30

Course Semester Credit Hours (SCH) (lecture, lab) If applicable

Credit Hours:

4

 

Lecture Hours:

3

 

Laboratory Hours:

3

 

External Hours:

 

 

Total Course Contact Hours

96

Course Length (number of weeks)

16

Type of Instruction

Lecture/Lab

Course Description:

Further applications of programming techniques, introducing the fundamental concepts of data structures and algorithms. Topics include fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), recursion, sorting and searching algorithms, as well as algorithmic analysis.

Course Prerequisite(s)

PREREQUISITE(S): 

  • MATH 2413 and COSC 1337/1437


  FREQUENT REQUISITES

  • College Level Reading
  • College Level Mathematics
  • College Level Writing

Academic Discipline/CTE Program Learning Outcomes (PLO)

1. Identify the fundamental principles of programming, including those of algorithm analysis, software design, operating systems, and database

2. Design and develop computer programs that are correct, simple, clear, efficient, well organized, and well documented

3. Know and be able to apply important data structures and algorithms

4. Understand the hardware and software aspects of computer systems that support application software development

5. Develop software engineering proficiency

Course Student Learning Outcomes (SLO): 4 to 7

1. Analysis of Algorithms

2. Design and develop programs that implement basic data structures, including stacks, queues, linked lists, hash tables, trees, and graphs

3. Understanding and implement sorting algorithms

4. Understanding and implement searching algorithms

Learning Objectives (Numbering system should be linked to SLO - e.g., 1.1, 1.2, 1.3, etc.)

1. Analysis of Algorithms

    1.1 Big-O notation

    1.2 Getting big-O estimates

    1.3 Growth rates

    1.4 Run-time analysis

2. Design and develop programs that implement basic data structures, including stacks, queues, linked lists, hash tables, trees, and graphs

    2.1 The Java collection framework

    2.2 Array-based lists, linked lists

    2.3 Stacks and queues

    2.4 Binary trees, binary search trees

    2.5 Tree Maps and tree sets

    2.6 Priority queues

    2.7 Graphs

3. Understanding and implement sorting algorithms

    3.1 Insertion sort, selection sort, bubble sort

    3.2 Merge sort, quick sort

4. Understanding and implement searching algorithms

    4.1 Sequential search, binary search, red-black-tree search

    4.2 Hashing: The HashMap, HashSet classes

Instructional Methods

Face to Face

Instructor's Requirements

As a student wanting to learn about the Java language, it is your responsibility to read the textbook and the supplemental materials posted in the blackboard, complete assignments in time, participate in the classroom exercises and activities, and attend class regularly.

 

As I believe that engaging the students in the learning is essential for teaching to be effective, you will spend the majority of class time involved in collaborative activities. You will be involved in class exercises, collaborate with your classmates and your instructor.  As you will want to contribute to these discussions, you will need to come to class prepared to discuss, analyze and evaluate information from your text and other assigned readings.

Cheating and Plagiarism

1. Cheating

a)    Copy tests, works, reports etc. from computers, database, programs of other students and people.

b)    Use study materials or electronic devices during examinations, tests without instructor’s permission.

c)     Collaborate with other students during examinations, tests, or assignments without instructor’s permission.

d)    Use or submit the same work for different classes without instructors’ permission.

e)    Use, buy, sell, steal, spread out, ask for a part or a whole of unpublished tests.

f)      Take the test for someone else or have someone take the test for you or help or ask someone to do your homework.

g)    Bribe to get unpublished tests.

h)    Bribe students, instructors, or school staff to change grades.

2. Plagiarism

a)    Submit other people’s works to get points.

b)    Copy words or ideas without citing source and author’s name.

c)     Do not use quotation marks for direct citation.

d)    Cite the wrong source.

e)    Change the wording but sentence structure without citing author’s name.

f)      Borrow words/ phrases from a source without using quotation marks or with making negligible change.

g)    Copy too many words or ideas that make up the most of personal work, regardless of whether source and author’s name are cited.

h)    Copy information from Internet such as company information, market information etc.

i)      Use Google Translation to write up papers, regardless of whether you use your own ideas or borrow ideas.

Use Google Translation to write up papers by translating Vietnamese from existing Vietnamese study materials/ sources into English.

Course Policies on Make-up Exams, Late Assignments, Tardiness

Students are expected to take each exam on the scheduled dates.

 

Make-up exams are not guaranteed, but are granted at the discretion of the instructor. If make-up exams are allowed, it is necessary to make arrangements with the instructor prior to exam date.

 

Students will not be able to submit assignments, projects after the due/closing date.

Grading Scheme

A = 100- 90

B = 89 – 80

C = 79 – 70

D = 69 – 60

F = 59 and below

The passing grade of this course is D.

Instructor Grading Criteria

In-class Test 1:                                    10%

In-class Test 2:                                    10%

Homework Assignments, Projects:      30%

Mid-term Exam:                                   25%

Final Exam:                                          25%

Instructional Materials

William J. Collins, Data Structures and the Java Collections Framework, 3rd edition, Wiley, 2011.

 

Course Calendar

 

Week

Date

Topics

Note

1

Mon Jan 7, 2019

Big-O Notation

Estimating the Efficiency of Methods

Chapter 3

Tue Jan 8, 2019

Tutor session

 

Wed Jan 9, 2019

The Java Collections Framework

Chapter 4

Thu Jan 10, 2019

Tutor session

 

2

Mon Jan 14, 2019

Recursion

Chapter 5

Tue Jan 15, 2019

Tutor session

 

Wed Jan 16, 2019

Backtracking

Chapter 5

Thu Jan 17, 2019

Tutor session

 

3

Mon Jan 21, 2019

Array-Based Lists

Chapter 6

Tue Jan 22, 2019

Tutor session

 

Wed Jan 23, 2019

Linked Lists

Chapter 7

Thu Jan 24, 2019

Tutor session

 

4

Mon Feb 11, 2019

Doubly-Linked Lists

Chapter 7

Tue Feb 12, 2019

Tutor session

 

Wed Feb 13, 2019

In-class Test 1

 

Thu Feb 14, 2019

Tutor session

 

5

Mon Feb 18, 2019

Stacks

Chapter 8

Tue Feb 19, 2019

Tutor session

 

Wed Feb 20, 2019

Queues

Chapter 8

Thu Feb 21, 2019

Tutor session

 

6

Mon Feb 25, 2019

Binary Trees

Chapter 9

Tue Feb 26, 2019

Tutor session

 

Wed Feb 27, 2019

Binary Search Trees

Chapter 10

Thu Feb 28, 2019

Tutor session

 

7

Mon Mar 4, 2019

Binary Search Trees (Cont’d)

Chapter 10

Tue Mar 5, 2019

Tutor session

 

Wed Mar 6, 2019

Insertion Sort, Selection Sort, Bubble Sort

Chapter 11

Thu Mar 7, 2019

Tutor session

 

8

Mon Mar 11, 2019

Merge Sort

Chapter 11

Tue Mar 12, 2019

Tutor session

 

Wed Mar 13, 2019

Midterm Exam

 

Thu Mar 14, 2019

Exam Correction

 

9

Mon Mar 18, 2019

Quick Sort

Chapter 11

Tue Mar 19, 2019

Tutor session

 

Wed Mar 20, 2019

Tree Maps

Chapter 12

Thu Mar 21, 2019

Tutor session

 

10

Mon Mar 25, 2019

Tree Maps (Cont’d)

Chapter 12

Tue Mar 26, 2019

Tutor session

 

Wed Mar 27, 2019

Tree Sets

Chapter 12

Thu Mar 28, 2019

Tutor session

 

11

Mon Apr 1, 2019

Priority Queues

Chapter 13

Tue Apr 2, 2019

Tutor session

 

Wed Apr 3, 2019

Priority Queues (Cont’d)

Chapter 13

Thu Apr 4, 2019

Tutor session

 

12

Mon Apr 8, 2019

Priority Queues (Cont’d)

Chapter 13

Tue Apr 9, 2019

Tutor session

 

Wed Apr 10, 2019

In-class Test 2

 

Thu Apr 11, 2019

Tutor session

 

13

Mon Apr 15, 2019

Hashing

Chapter 14

Tue Apr 16, 2019

Tutor session

 

Wed Apr 17, 2019

The HashMap/HashTable Class

Chapter 14

Thu Apr 18, 2019

Tutor session

 

14

Mon Apr 22, 2019

The HashSet Class

Chapter 14

Tue Apr 23, 2019

Tutor session

 

Wed Apr 24, 2019

Graph Algorithms

Chapter 15

Thu Apr 25, 2019

Tutor session

 

15

Mon Apr 29, 2019

Graph Algorithms (Cont’d)

Chapter 15

Tue Apr 30, 2019

NO CLASS

Re-Unification Day and Labor Day

Wed May 1, 2019

NO CLASS

Re-Unification Day and Labor Day

Thu May 2, 2019

Tutor session

 

16

Mon May 6, 2019

Graph Algorithms (Cont’d)

Chapter 15

Tue May 7, 2019

Tutor session

 

Wed May 8, 2019

Graph Algorithms (Cont’d)

Chapter 15

Thu May 9, 2019

Tutor session

 

17

Mon May 13, 2019

Final Exam

 

Tue May 14, 2019

Exam Correction

 

 

 

 

 

 

 

 

 

 

Exam Format

 

Exam

Exam Type

Open/Close Book

Number of Questions

Duration (min.)

Points

Chapters

Mid-term

Theory

Close

30

15

30

3, 4, 5, 6, 7, 8, 9, 10, 11

Practice

Close

4

90

70

3, 4, 5, 6, 7, 8, 9, 10, 11

Final

Theory

Close

30

15

30

12, 13, 14, 15

Practice

Close

4

90

70

12, 13, 14, 15