Kode Matakuliah: IFS2280 |
Bobot sks: 3 |
Semester: 4 |
Unit Penanggung Jawab: Prodi S1 Teknik Elektro |
Sifat: Wajib |
Nama Matakuliah | Penyelesaian Masalah dengan C | |||
Problem Solving with C | ||||
Silabus Ringkas | [Uraian ringkas silabus matakuliah dalam Bahasa Indonesia (maksimum 30 kata)] | |||
This course lays the foundation of algorithm analysis and data structures for the electrical engineering curriculum. In this class, students will experience applications of concepts learned in the classroom. They will learn through hands-on experience how to read and understand problem statements and develop the algorithm and implement it using C to solve the problem. | ||||
Silabus Lengkap | [Uraian lengkap silabus matakuliah dalam Bahasa Indonesia (maksimum 100 kata)] | |||
Luaran (Outcomes) | Provide an introduction to problem solving tools using an engineering workstation
|
|||
Matakuliah Terkait | IFS1101 Pengantar Teknologi Informasi | Prasyarat | ||
IFS2180 Pengantar Pemrograman | Prasyarat | |||
Kegiatan Penunjang | [Praktikum, kerja lapangan, dsb.] | |||
Pustaka | Hanly, Jeri, and Koffman, Elliot, “Problem Solving and Program Design in C”, 5th ed, Addison Wesley, New York, 2007 | |||
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, “Introduction to Algorithms”, The MIT Press, 3rd edition, 2009 | ||||
[Penulis, Judul, Edisi, Penerbit, Tahun terbit] ([Pustaka utama/alternatif/pendukung]) | ||||
Panduan Penilaian | [Termasuk jenis dan bentuk penilaian] | |||
Catatan Tambahan |
Mg# | Topik | Sub Topik | Capaian Belajar Mahasiswa | Sumber Materi |
1 | Introduction | History and Overview |
|
|
2 | Programming Construct |
Variables, types, expressions, and assignment Simple I/O |
|
|
3 | Programming Construct | Conditional Structures |
|
|
4 | Programming Construct |
Iterative control structures, Pointers
|
|
|
5 | Programming Construct | Functions and parameter passing, File I/O |
|
|
6 | Algorithms and problem-solving |
Problem-solving strategies, Structured decomposition Debugging strategies |
|
|
7 | Data Structure |
Arrays and Records Strings and string processing |
|
|
8 | Data Structure |
Data representation in memory Static, stack, and heap allocation Runtime storage management Linked structures |
|
|
9 | Midterm | |||
10 | Data Structure |
Implementation strategies for stacks, queues, and hash tables Implementation strategies for graphs and trees |
|
|
11 | Recursion |
The concept of recursion Recursive mathematical functions Divide-and-conquer strategies Recursive backtracking |
|
|
12 | Basic Algorithm Analysis |
Asymptotic analysis of upper and average complexity bounds Identifying differences among best, average, and worst case behaviors |
|
|
13 |
Big “O,” little “o,” omega, and theta notation Empirical measurements of performance Time and space tradeoffs in algorithms |
Use big O, omega, and theta notation to give asymptotic upper, lower, and tight bounds on time and space complexity of algorithms. | ||
14 | Algorithm Strategy |
Brute-force/exhaustive search algorithms Greedy algorithms |
Design algorithms using the brute-force, greedy, and divide-and-conquer strategies. | |
15 | Algorithm Strategy |
Divide-and-conquer Backtracking |
Design an algorithm using at least one other algorithmic strategy from the list of topics for this unit. | |
16 | Computing Algorithm | Simple numerical algorithms | Use and implement the fundamental abstract data types—specifically including hash tables, binary search trees, and graphs—necessary to solve algorithmic problems efficiently. | |
17 | Computing Algorithm |
Sequential and binary search algorithms Sorting algorithms Hash tables Binary search trees |
|
|
18 | Intro to Parallel and Distributed | Why parallel computation?, Task/Thread, concurrency, OpenMP |
|
|
19 | Final Exam |