Courses > Computer Programming and Simulation

SCME211 Computer Programming and Simulation


Instructor: Chaiwoot Boonyasiriwat (chaiwoot@gmail.com)
Class Hours: Thursday (1:30PM - 4:30PM)
Classroom: Computer Room in SC3
Objectives: To understand the concepts of C and MATLAB programming and numerical methods, and be able to write computer programs to solve mathematical problems
Grading: attendance 10, homework 25, term project 25, midterm exam 20, final exam 20

Course Materials

Topics Last modified date
Course overview Jan 17, 2018
Computer system and architecture Jan 18, 2018
C programming Mar 8, 2018
MATLAB programming Oct 25, 2016
Mathematics Mar 22, 2018
lecture note on numerical methods Apr 10, 2018

Tentative Course Schedule

Lecture Date Topics Assignments
1 Jan 18, 2018 Course overview, computer system and architecture , C programming: Hello World, code compilation and program execution, variables and data types, arithmetic operations Homework 1 (Due Jan 25)
2 Jan 25, 2018 C programming: logical operations, assignment operations, standard input/output, function, pointer
Mathematics: absolute and relative errors
Homework 2 (Due Feb 1)
Solutions: problem1.c, problem2.c, problem3.c
3 Feb 1, 2018 C programming: storage size and sizeof, program control and flow chart, file input/output
MATLAB programming: load text file, 1D graph plotting
Algorithm: random number generation
Homework 3 (Due Feb 8)
4 Feb 8, 2018 C programming: array, structure, typedef, flowchart (revisited)
Mathematics: complex arithmetic
Resource: test_mylib.zip, test_array1.c, test_struct1.c, test_struct2.c, test_complex.zip
Homework 4 (Due Feb 15)
Solution: wave.c, wave.m
5 Feb 15, 2018 C programming: enumeration, swith-case, break, continue
MATLAB programming: load and plot data
Mathematics: complex arithmetic
Exercises: Mandelbrot set fractal (flowchart), grade counting
Resources: test_enum.c, fractal.ppm, compute_grade.c
Homework 5, fractal_project.zip, Solution: main.c
6 Feb 22, 2018 C programming: storage class, scope, binary file, dynamic memory allocation
Resources: function_evaluation.c, storage_class.c, test_static.c, test_pointer.c, test_fwrite.c, test_database.c
- Mar 1, 2018 No class - holiday
7 Mar 8, 2018 C programming: const, directive
MATLAB programming: setting label and title of figure, setting font size
Mathematics: Maclaurin's and Taylor's series expansions Resource: data.txt, sort1.c
- Mar 15, 2018 Midterm examination Solutions to midterm problems
8 Mar 22, 2018 Mathematics: Taylor's series expansion (continued), numerical differentiation
Resources: derivative1.c, plot_error.m
Homework 6
9 Mar 29, 2018 Quiz 1 (solution) Homework 7
10 Apr 5, 2018 Numerical methods: numerical differentiation using finite difference method, numerical integration (rectangular and trapezoidal rules), numerical solution to ODEs using forward Euler and predictor-corrector methods
Resource: lecture note on numerical methods
Homework 8
11 Apr 12, 2018 No class -- holiday
12 Apr 19, 2018 Web development, hardware programming
Resources: HTML, CSS, JavaScript, Canvas,Processing.js, Animation
Codes: car.cpp, canvas.html, free_fall.html, mouse_events.html, keyboard_events.html
Homework 9
13 Apr 26, 2018 Web development (continued)
Resources: test1.html, style.css, calculator.html, solar_system.html
- May 3, 2018 Review
Resource: lorentz_force.html, mouse_button.html
May 9, 2018 Project presentation
  • Glen-Jaak: Snake Game (single player, multiplayer)
  • Elisa-Month: Solar system
  • Pat-Pol: Hotel reservation system
  • Jenes-Rak-Meaw: Paint
  • King-Ice: Apartment managing system
  • Eye-Ploy: Calculator
- May 15, 2018 Final examination

References

Copyright © 2013-2018 Mahidol University Center for Scientific Computing. All rights reserved.
272 Rama VI Road, Room P416, Ratchathewee, Bangkok 10400, THAILAND. Tel: +66 (0)2 201 5770-1 Fax: +66 (0)2 354 7159