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 handson 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 problemsolving 
Problemsolving 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 Divideandconquer 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 
Bruteforce/exhaustive search algorithms Greedy algorithms 
Design algorithms using the bruteforce, greedy, and divideandconquer strategies.  
15  Algorithm Strategy 
Divideandconquer 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 