Course: Data Structures and Algorithms (1)

Academic Year/Semester: 111-1
Course Number: 130021
Instructor: Tzu-Yi Yu
Course Title: Data Structures and Algorithms (1)
Grade: 2 Credits: 3.0
Class location: Room 241, Management Building
Class hours: 3bcd

This course can cultivate the following core competencies in students:
Information technology application and innovation ability (undergraduate program)

Course objectives:

According to a report by the Central News Agency on March 30, 2016, the 107 curriculum proposed by the National Academy for Educational Research in our country will be reviewed by the “Curriculum Review Committee” after restructuring by the Ministry of Education. According to the established draft, programming is part of the technology field and is listed as a required course in junior high and high school. It is evident that programming has become a national policy. In the future, programming courses may even extend to elementary education. It is clear that knowing how to program is very important.

Writing code and being able to write good code are two different things. What makes a good program? A good program not only needs to solve problems correctly and provide the correct answers but also needs to balance execution efficiency and effective memory management under the correct conditions. In other words, this is an advanced programming course. After learning the basics of programming and object-oriented programming, the data structures course teaches how to combine algorithm design with data design using object-oriented techniques, which is both a subject and an art of design.

In the field of computer science, the relationships between data are often referred to as data structures. Procedures that solve mathematical problems within a finite number of steps are often defined as algorithms. Specifically, the study of data structures mainly concerns how to organize data in computer memory in a more efficient way to improve program execution efficiency. In addition to teaching commonly used data structures, the goal of the course is to cultivate students’ ability to write efficient programs that solve complex problems with fewer computational steps through program implementation. In this course, we will cultivate students’ ability to analyze problems, design appropriate data structures, and accumulate experience through computer program implementation. This will lead to the enhancement and development of students’ information technology application abilities, innovative thinking skills in project writing, and the improvement and development of their information technology capabilities for future employment.

The main purpose and core competency of this course is to develop students’ skills in applying and innovating with information technology. In order to help students achieve this goal, the course will be implemented as follows:

1.Lecture content will be recorded and uploaded to the course information website (moodle) in the form of videos. The videos will cover theoretical content from the textbook, programming outlines and directions, supplementary materials, and in-class assignments.

2.If there are videos for the week, they will be closed one week after the class, and students are advised to complete their homework before the videos are closed. If there is a legitimate reason for needing additional time to watch the videos, students should contact the instructor or teaching assistant.

3.To foster a culture of discussion, students will be grouped together and assigned fixed seats. Students in the same group will also sit together.

4.During the first class, the instructor will discuss the video content from the previous class with students in their respective groups and on an individual basis, and class participation grades will be based on the accuracy of their answers.

5.In order to develop proficiency in information technology and implement theoretical concepts in practice, students will be required to write programs. Programs will be divided into individual and group assignments. The programming language is not limited, but it should be able to compile and execute correctly.

6.To cultivate proficiency in information technology and implement theoretical concepts, this course requires the writing of programs. Programs are divided into individual and group assignments, and any programming language can be used, but it must compile and run correctly.

7.Students can only use C/C++, Java, or C# programming languages for assignments. If another language is to be used, students must decide and inform the teaching assistant two weeks after the start of the course. The score for programming assignments is not related to the programming language used, but rather to the completion of the assignment requirements.

8.To increase the diversity of computer language learning, this course will use C# programming language as a teaching tool. In other words, C# will be used to demonstrate theoretical concepts and practical exercises, and will also be used to write part of the assignments. Students can complete the entire assignment based on the demo exercises in class and submit them using Visual Studio 2013/2015 as the compilation and execution tool.

9.C# is not a compulsory requirement for this course and is not related to assignment grades. Students can choose their own programming language to submit assignments based on their preferences. However, any form of plagiarism is not tolerated, and any instance of cheating on assignments or exams will be subject to disciplinary action according to school rules.

10.Individual programming assignments are due on the day of the assignment, while group assignments are due one week later. Through continuous writing and discussion, it is hoped that students can improve their ability to apply and innovate in information technology.


Instructor office hours:Location: B24 in the College of Management building. Wednesdays from 14:00 to 16:00.

Teaching approach:
In addition to regular classroom instruction (slides, textbooks), students are required to preview and discuss in class.
Students will report and operate on specific topics (students taking the course should bring their laptops to class for practical exercises).

Grading criteria:
Class participation accounts for 5% of the grade. The grade is also based on the following components: Keynote notes (10%), mid-term exam (20%) (written), mid-term exam (15%) (computer-based), in-class computer-based exams (20%) (possibly limited to one hour), and final exam (30%) (a combination of written and computer-based exams or only written).

Course schedule (week, topic, activities, evaluation/assignment, text, etc.):

Week 1: Course introduction, vision, learning objectives and grouping, introduction to learning tools, understanding C# language (Lecture)
Week 2: Analysis of algorithms (Big O), understanding and writing C# language (Lecture)
Week 3: Data structure: application of arrays (part 1) (representation of matrices), Lecture, in-class practice
Week 4: Data structure: application of arrays (part 1) (application of polynomials), Lecture
Week 5: Data structure: application of arrays (part 2) (magic squares), Lecture
Week 6: Data structure: introduction to stack, Quiz (arrays)
Week 7: Data structure: introduction to queue, Lecture
Week 8: Data structure: stack and queue, Lecture, Quiz
Week 9: Midterm exam
Week 10: Data structure: circular queue and multi-stack operations, Lecture & practice
Week 11: Data structure: introduction and practice of singly linked lists, Lecture & practice
Week 12: Data structure: introduction and practice of circular linked lists, Lecture & practice, Quiz
Week 13: Data structure: introduction and practice of doubly linked circular linked lists, Quiz
Week 14: Data structure: introduction and practice of doubly linked circular linked lists, Quiz
Week 15: Data structure: introduction and practice of recursion, direct recursion introduction and practice, Quiz
Week 16: Data structure: introduction and practice of recursion, indirect recursion introduction and practice, sorting
Week 17: Data structure: application of recursion
Week 18: Data structure: final exam (written and/or practical exam)

situs slot gacor provider terbaik agen toto slot terpercaya 2023 agen toto togel terpercaya 2023 situs toto togel pasaran resmi terbaik bandar toto macau pasaran resmi toto togel bandar toto slot gacor 4d 2023 bo togel online pasaran terlengkap sepanjang masa bo toto slot terlengkap sepanjang masa situs toto togel 2023 bet 100 perak daftar toto slot dan toto togel 2023 bermain toto togel dengan bet hanya 100 perak daftar toto slot bonus new member terpercaya bermain toto slot pelayanan 24 jam nonstop situs toto togel terpercaya situs toto togel online terbaik winsortoto winsortoto winsortoto winsortoto winsortoto winsortoto unsurtoto unsurtoto unsurtoto winsortoto winsortoto winsortoto rasa4d rasa4d rasa4d gampangtoto gampangtoto gampangtoto winsortoto unsurtoto gampangtoto rasa4d bungtoto bandar toto togel terbesar hadiah 4d 10 juta daftar winsortoto situs toto terbaik winsortoto situs toto slot gacor dengan toto togel terbaik winsortoto situs toto terpercaya bet 100 perak winsortoto agen toto togel dan situs toto slot 4d winsortoto situs toto togel online deposit 10rb winsortoto situs toto togel online resmi hadiah 4d 10 juta winsortoto agen toto togel online terpercaya winsortoto agen toto slot dan situs toto togel resmi winsortoto situs toto togel 4d terpercaya winsortoto bandar toto togel dan toto slot winsortoto situs toto togel online resmi terbesar winsortoto situs toto togel dan agen toto slot terpercaya winsortoto situs toto terpercaya beragam bonus winsortoto situs toto terpercaya toto togel dan toto slot gacor winsortoto situs togel online dan slot online terpercaya winsortoto situs togel online hadiah terbesar winsortoto agen toto togel bonus harian terbesar winsortoto agen togel online terlengkap bet 100 perak winsortoto situs toto togel 4d dan toto slot 4d terbaik winsortoto situs toto togel dan toto slot terpercaya winsortoto bandar toto togel online terpercaya 2023 winsortoto agen toto togel 4d dan toto slot 4d winsortoto agen toto togel online banyak bonus terbesar winsortoto situs toto terpercaya bonus new member winsortoto situs togel online resmi terpercaya pasaran terlengkap winsortoto situs toto togel online 4d terpercaya situs toto togel deposit pulsa tanpa potongan winsortoto situs toto slot pasti slot gacor winsortoto situs toto slot dan toto togel hadiah terbaik winsortoto situs toto terpercaya permainan resmi dan terpercaya winsortoto situs toto resmi bonus new member 100rb tanpa potongan winsortoto toto slot gacor dan togel online resmi terpercaya winsortoto situs toto toge online terpercaya di Indonesia winsortoto toto togel online bonus new member terbesar winsortoto agen toto togel resmi hadiah 4d 10 juta terpercaya winsortoto toto togel online hadiah 4d 10 juta bet 100 winsortoto situs togel online terlengkap dan terpercaya winsortoto situs togel online resmi dan toto slot gacor winsortoto situs toto togel dan agen toto slot gacor winsortoto situs toto togel permainan toto togel dan toto slot winsortoto situs toto terpercaya bonus menarik winsortoto situs toto togel online terpercaya winsortoto bandar toto togel dan toto slot terpercaya winsortoto situs toto togel online terlengkap dan terpercaya winsortoto situs toto togel online winsortoto situs toto terpercaya togel online dan slot online resmi winsortoto situs toto dengan permainan togel 4d dan slot 4d winsortoto situs toto terpercaya permainan togel online terlengkap winsortoto agen toto togel dan situs toto resmi winsortoto toto togel dan toto slot terpercaya dan terbaik winsortoto agen toto togel dan toto slot resmi di Indonesia winsortoto situs toto terpercaya permainan online resmi winsortoto unsurtoto gampangtoto bungtoto rasa4d titi4d ltdtoto bobatoto bobatoto situs toto togel slot situs bandar toto togel slot terpercaya titi4d titi4d login titi4d daftar titi4d slot titi4d togel situs titi4d titi4d login titi4d daftar titi4d titi4d togel titi4d slot situs titi4d agen titi4d bandar titi4d