2024/01/30 |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
1st year |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
HISADA Yasuhiro |
担当教員名 /Instructor |
HISADA Yasuhiro, DEMURA Hirohide, HIRATA Naru, NAKASATO Naohito, KITAZATO Kohei, SAMPE Takeaki, OFUJI Kenta, PYSHKIN Evgeny, NITTA Koyo, YAMADA Ryuhei |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
(ICTG class starts in Q4.And Prof. Pyshkin, E. is in charge of the class.) As for the programming by C language, there are a lot of students who do not have an enough skill, though it is very important for the student of University of Aizu. This course is the first half of the 2-quarter C course (latter half is called "Programming C"), and taught basics of C programming language. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. This course is aimed to learn skills such as: ・The concept of the programming is understood. →When the problem is given, a series of operation until the program to solve it is made is acquired. ・The fundamental syntax of C languages (i.e. branch, loop, array, and function, etc.) are understood. →You can make a program using them. ・A good programming style is acquired. |
授業スケジュール /Class schedule |
Details of each lecture are described below Lecture 1 What is a computer? Computer software, hardware, OS, and application, High-level language, C language and printf Lecture 2 Variable, input/output and operator Variables and its naming convention. Reserved word, variable declaration, initialization and assignment Printf/scanf, calculation, operator precedence. Lecture 3 Various variable types and type conversion Integral types, floating point types and type conversion between different types. Precise format of printf/scanf. Lecture 4 Conditional execution(branch) -if and switch/case- Data structure, algorithm, coding. Conditional execution(Branch), conditional expression, relational operator and operand. True and false, if - else, switch - case, default and break. Lecture 5 Loop1 - while -. Indent, flow chart, loop, while. Increment and decrement operator, prefix position, suffix position. Assignment operator and infinite loop Lecture 6 Loop2 - for- For, break, continue Better programs i.e. indent and efficient variable/program. Lecture 7 One-dimensional array Array, array index, element and array initialization. Criterion whether array should be used or not. Array sample program Lecture 8 Flow chart Making programs using a flow chart. Lecture 9 Two-dimensional array(Matrix) The declaration and the structure of two-dimensional array. The row and column, diagonal matrix and macro. Initialization of matrix. Addition and multiplication of matrix Lecture 10 The review and the application of matrix. Review of array. Redirection, pipe. Standard error output(stderr), picture processing(Binomialization, reversal and noise reduction) Lecture 11 The function1 Basics What is a function? Argument, passing arguments. Declaration of a function and calling a function. Prototype declaration, return value void type return. Automatic (local) variable, library function and <stdio.h> Lecture 12 The function 2 Application Newton method, integer number and binary number manipulation. Error checking, forced termination by exit(). Lecture 13 The function 3 Further topics on function Automatic variable, external variable, stack and queue data structure. Numerical calculation and accuracy. An example of numerical calculation(Free fall simulation) Lecture 14 Overall review and a good programming Understandability and efficiency of the program. Debugging, indent comment and macro. |
教科書 /Textbook(s) |
・"Programming by C language Basic part" The second edition, Uchida, ohm publishment ・Handouts (Sold in the University shop). (*)You MUST buy the handouts before the class begins. |
成績評価の方法・基準 /Grading method/criteria |
・Quiz 20% ・Computer exercise 30% ・Mid-term exam 10% ・Final exam 40% The quiz is also used as the attendance confirmation. Student whose attendance is lower than regulated attendance rate(2/3 or more) is considered to abandon the class. Student who is absent from the final examination is also considered to abandon the class. |
履修上の留意点 /Note for course registration |
Other related courses which include important concepts relevant to the course : programming C(Q3), Intro. Computer Systems(Q3) |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
From outside the university http://www.u-aizu.ac.jp/course/prog1/ From the university WS (There are newer information and information that can be seen from other domain like quiz result etc. on this URL) File:///home/course/prog1/public_html/2023/welcome.html |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
1st year |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
SAMPE Takeaki |
担当教員名 /Instructor |
HISADA Yasuhiro, SHIN Jungpil, SAMPE Takeaki, PYSHKIN Evgeny, HIRATA Naru, LYU Guowei, Idnin Pasya Bin Ibrahim, OKUDAIRA Kyoko |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
(ICTG class starts in Q1. Prof. Pyshkin, E. is in charge of the class.) <Note> This is an English translation of the Japanese course of C.Programming. If you want to know about the C.Programming ICTG English course, please follow this link (https://www.u-aizu.ac.jp/sgu/info/files/docs/P02-Englishcourse.pdf). ------------------------------------------------------------------------------------------------------------- As a successor of the "Intro. programming" course of the 2nd quarter, this course is organized based on the following concept. ・Subsequent courses, such as “algorithms and data structures”, and Graduation thesis research require fairly high programming skills. Students can acquire skills to match that. ・Students will be given an introduction to algorithms, to build bridges to subsequent classes. ・Learn the skills to create a larger program. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. Competency codes: C-SD-006 This course is aimed to learn skills such as: ・Understand loop, array and function that were learned in the intro. programming in the 2nd quarter, and use them effectively. ・Understand character, character string, file read/write, pointer, structure, recurrence, and use them in programs. ・Can write larger programs, and build up a program collaborating with group members. ・Acquire good programming-style. |
授業スケジュール /Class schedule |
・Review of Intro. Programming course. ・Character and string ・File Input & Output ・Address and pointers ・Manipulation of character strings ・Function call by value, pointers as arguments ・Command line options ・Dynamic memory allocation ・Structures and members ・Pointers to structures ・Manipulation of a linked list. ・Recursive call of functions ・Group programming and preprocessor ・The good programming style Detailed schedule of lectures will be shown in the web pages. |
教科書 /Textbook(s) |
"Programming by C language: Application part" The 2nd edition, Uchida, Ohmsha, Ltd. Handouts (To be sold at the University shop). Intro. programming and C programming handouts have been combined into one copy. You don't have to buy the handout if you already have one. |
成績評価の方法・基準 /Grading method/criteria |
・Quiz (conducted in every lecture) 20% ・Computer programming exercise 30% ・Examination 50% |
履修上の留意点 /Note for course registration |
Attendance of 2/3 or more for lecture and exercise each is required. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
From the university WS file:///home/course/prog1/public_html/2023/welcome.html From outside the university (subset of the site above) https://u-aizu.ac.jp/course/prog1/ |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
2nd year |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
WATANOBE Yutaka |
担当教員名 /Instructor |
WATANOBE Yutaka, PEI Yan, TEI Dogun, NITTA Koyo, SHIN Jungpil, KITAZATO Kohei, RAGE Uday Kiran, HAMADA Mohamed, DANG Nam Khanh |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
PL02 C Programming |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
Object -oriented programming is an important concept in software design, and its features can be used in a variety of programming languages. Object-oriented programming is a programming paradigm that enables the development of software with greater reusability, reliability, maintainability, and robustness. An understanding of object-oriented concepts is necessary to take advantage of state-of-the-art frameworks for application development. In this course, students will learn object-oriented programming using the Java programming language. In the lectures, students learn the theory of object-oriented programming, and in the exercises, they implement various design patterns using object-oriented programming through problem solving in Java. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. [Competency code] C-PL-001, C-PL-005, C-PL-007, C-SD-002, C-SD-003, C-SD-006 Students will understand the three major concepts of object-oriented programming: encapsulation, inheritance, and polymorphism, and will be able to interpret and develop programs using these concepts. This will enable them to take advantage of libraries and state-of-the-art frameworks with object-oriented programming languages. Furthermore, by solving a variety of problems, students will be able to understand the features of different design patterns and apply them to the development of their own applications. |
授業スケジュール /Class schedule |
Introduction to Object Oriented Programming Basic Grammar Classes and Objects Inheritance Interfaces Polymorphism Packages Exception Handling Numbers and Strings Basic Input/Output Processing Generics |
教科書 /Textbook(s) |
The Java Tutorial: https://docs.oracle.com/javase/tutorial/ |
成績評価の方法・基準 /Grading method/criteria |
Exercises: 100 (maximum), Examination: 100 (maximum), Final grade: sqrt(Exercises × Examination) ※The parameters of the formula might be adjusted depending on the situation |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
One of the course instructors Yan Pei has practical work experience. He worked for Neusoft Ltd. (China、CMMI5) and Alpine Electronics Europe D&R GmbH (Germany) for five years, where he attended and led software development projects (million LOC level) and teams, designed core algorithms, and applied for and obtained industrial patents. Based on these experiences, he can deliver lectures on algorithm and complexity, programming, and software engineering, etc. |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
NARUSE Keitaro |
担当教員名 /Instructor |
NARUSE Keitaro, FAYOLLE Pierre-Alain, Idnin Pasya Bin Ibrahim, SAXENA Deepika |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
This course provides the fundamental knowledge of the programming language C++ to the students who have already learned the programming language C. C++ has developed by Bjarne Stroustrup at Bell Lab in mid 1980s. It is an object oriented version of C, with the elements of class, inheritance, and dynamic binding, as well as the standard template library. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. [Competency Codes] C-SD-003, C-SD-006 The students will learn the essence of C++ language such as class and object creation, data protection, class design, template function, generic function, iterator, containers and STL. The students will be able to develop software in C++ with the object oriented manner. |
授業スケジュール /Class schedule |
The order of topics covered by each of the weeks may be varied by an instructor. However, the total topics are same. Professor Naruse class #1 Introduction and string #2 Loop and counter #3 Data collection and iterator #4 Program and data organization #5 Sequential container #6 STL #7 Associative container #8 Template function and generic function #9 Class definition #10 Memory management #11 Abstract data type #12 Class behaving as value #13 Inheritance and dynamic binding #14 Automatic memory management and summary Professor Fayolle: 1) Introduction 2) Data abstraction (concept of class); Stream-based I/O 3) Pointers and references 4) Definition and declaration; const-correctness; the static keyword 5) Overloading; constructors (default constructor, copy constructor, copy assignment operator, move semantic); destructors 6) Inheritance (code reuse vs interface reuse; substitution principle; access control; overriding and virtual methods) 7) Exceptions and related topics (RAII; smart pointers) 8) Operator overloading 9) Generic programming (class template; function template) 10) Standard library containers 11) Iterators 12) Function objects; lambda functions 13) Standard library algorithms 14) Concurrent programming (thread; mutex; condition variables; future) |
教科書 /Textbook(s) |
Each of instructors will let you know in a class. |
成績評価の方法・基準 /Grading method/criteria |
Quiz: 20% Exercise: 30% Final: 50% Percentage can be changed by instructors |
履修上の留意点 /Note for course registration |
None |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Each of instructors will let you know in a class. |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
SUZUKI Taro |
担当教員名 /Instructor |
SUZUKI Taro, NAKAJIMA Yu |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
Courses preferred to be learned prior to this course (This course assumes understanding of entire or partial content of the following courses) PL02 C Programming PL03 JAVA Programming I FU01 Algorithms and Data Structures I |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
This course focuses on programming languages as typical computer languages and explains paradigms, models and technical points of programming languages in order to present the essence of programming languages. It will give students a notion of programming paradigm, which gives main concepts of programming, and explains the characteristics of each programming paradigm. We classify programming languages are classified based on programming paradigms and common features of programming languages belonging to the same programming paradigm. Semantics of programming languages are also explained. The programming paradigms dealt with this course are: procedural programming, functional programming, logic programming and object oriented programming. Especially, procedural and object oriented programming, as the basis of C, C++ and Java dealt with in the other programming courses, are fully studied. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. [competency code] C-PL-001, C-PL-003, C-PL-005 While the other programming courses focus on the syntax and usage of programming languages, this course aims to provide students with the origins and principles of the groups of programming languages. By the end of the course students will be able to explain the following: 1. the characteristics of each programming paradigm 2. the features of procedural programming languages 3. the features of object oriented programming languages 4. syntax of programming languages 5. the abstract computation mechanism of programming languages through semantics |
授業スケジュール /Class schedule |
1. introduction: programming paradigms and computation models Introduction to procedural programming: a machine model (RAM) 2. Functional programming (1) 3. Functional programming (2) 4. Logic programming (1) 5. Logic programming (2) Introduction to Object oriented programming 6. Syntax of programming languages 7. Procedural programming(1): control structures and data structures 8. Procedural programming(2): procedures 9. Mid term exam Object oriented programming(1): Objects, Abstract data types 10.Object oriented programming(2): features of object oriented programming 11.Object oriented programming(3): features of object oriented programming 12.Semantics of programming languages(1): operational semantics of RAM 13.Semantics of programming languages(2): operational semantics of procedural languages 14.Semantics of programming languages(3): denotation and axiomatic semantics The correspondence between classes and topics described above may be changed according to the progress of the course. |
教科書 /Textbook(s) |
Michio Oyamaguchi, Hiroshi Gomi. Programming Languages (in Japanese). Corona publishing Co.ltd. The class will basically follow the textbook, but there will be some units that use handouts only distributed by the course instructor. |
成績評価の方法・基準 /Grading method/criteria |
Exercise 30% Mid term exam 30% Final exam 40% |
履修上の留意点 /Note for course registration |
Students are recommended to take Language Processing Systems at the same time, as it will deepen their understanding of programming languages when studied together with this course. In some topics, the class proceeds assuming that the students read the textbook and understand it to some extent before the lecture. In such topics, students who have not read the textbook in advance will not be able to follow the class. The course instructor uses Japanese. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
David A. Watt. Programming Language Design Concepts. Wiley. 2004. Hanne Riis Nielson and Flemming Nielson. Semantics with Applications: An Appetizer. Springer. 2007. Chris Hankin. Lambda calculi: a guide for computer scientists. Oxford University Press. 1994. The course instructor has work experiences: Prof. Suzuki was engaged in the development of C and Lisp language processing s\ ystems on Prolog inference machines with a multi-paradigm programming language\ combining logic and object-oriented programming paradigms, from 1987 to 1990 a\ t MTC Co.,Ltd. Based on his experience, he can teach theory and implementation \ of programming languages on various programming paradigms. |
Open Competency Codes Table Back |
開講学期 /Semester |
2023年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
PAIK Incheon |
担当教員名 /Instructor |
PAIK Incheon |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2023/03/20 |
---|---|
授業の概要 /Course outline |
The Java Programming II is a course for the 3rd year students who had studied basics such as objects and classes, object oriented concept, exception handling, and I/O issues in Java. This course teaches some advance topics: annotation, reflection, threads, GUI, network programming, and Android programming including new features in Java. In the first half of this course, we will study about topics related to Java language itself such as annotation, reflection, threads, GC, and GUI. In the second half, we will experience development of distributed network applications in Java on the Web and smart mobile device. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. The Java programming language benefits Internet and WWW users from access to secure, platform independent applications that can come from anywhere on the Internet. It is useful to build applications for not only distributed network but also for general-purpose. The ability to execute downloaded code on remote hosts in a secure manner is a critical requirement for many organizations. This course enables students to improve Java programming technique and knowledge to develop applications using GUI, generics, thread programming, networking, smart phone programming including new feature in Java. |
授業スケジュール /Class schedule |
1. Introduction and Java Basic Review 2. Java GUI (Events and AWT) 3. Java GUI (Swing) 4. Generics and Inner Class 5. Collections 6. Review I on GUI, Generics and Collections 7. Annotation, Documentation comments 8. Thread I 9. Thread II 10. Review II on the topics studied (Generics, Annotation, and Threads) 11. Java Network I 12. Java Network II 13. Lambda Expression and Stream API in Java 14. Android Smart Phone Programming |
教科書 /Textbook(s) |
The Java Tutorial, 4th Edition, A Short Course on the Basics by S. Zakhour, S. Hommel, J. Royal, I. Rabinovitch, T. Risser, and M. Hoeber, Sun Microsystems, 2006 (English version), 2007 (Japanese Version). |
成績評価の方法・基準 /Grading method/criteria |
1. Exercise Lab. and Report : 50% 2. Examination : 50% |
履修上の留意点 /Note for course registration |
This course covers some advanced topics of Java. Therefore, it requires that students need to know basic concept of object oriented programming including good skill in C language. The prerequisite courses are: - Intro.Programming - C Programming - JAVA Programming I |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
* Reference 1. Arnold, James Gosling, and David Holmes, The Java Programming Language, 4th Edition, SUN, 2006. (Japanese version by Pearson Education) 2. Ivor Horton, Java 2 JDK 5 Edition, Wiley Publishing, 2005 3. C.S. Horstmann, G. Cornell, Core Java, Sun Microsystem Press 4. J. O’Neil, Teach Yourself JAVA, McGraw-Hill 5. Kathy Sierra and Bert Bates, Head First Java (Head First) 2nd edition, 2005; Japanese edition, 2006. |