CS-354: Machine Organization and Programming

University of Wisconsin, Madison
Department of Computer Sciences
Spring 2016

Basic Information

Section 1:
Mon Wed Fri @ 9:55AM-10:45AM (CS 1240)
Instructor: Ganesh Kumar Velu Rajendran (Ganesh)
Email: ganz@cs.wisc.edu
Office Hours: Mon 10:50-11:50, Fri 11:50-12:50 @ CS 4369 and by appointment.

Section 2:
Mon Wed Fri @ 12:05AM-12:55AM (PSYCHOLOGY113)
Instructor: Adalbert Gerald Soosai Raj (Gerald)
Email: gerald@cs.wisc.edu
Office Hours: Wed 4-5, Fri 2-3 @ CS 4384 and by appointment.

Teaching Assistants (Both Sections)

Lokesh Jindal (lokeshjindal15@cs.wisc.edu)
Office Hours: Tue, Thu 4-5 @ CS 3395

Haseeb Tariq (haseeb@cs.wisc.edu)
Office Hours: Tue, Thu 9:30-10:30 @ CS 1307

Urmish Thakker (uthakker@cs.wisc.edu)
Office Hours: Tue, Thu 1:30-2:30 @ CS 4387

Name: Xiangjin Wu (xwu@cs.wisc.edu)
Office Hours: Tue 3-4, Thu 2-3 @ CS 3387

All TAs can be contacted by appointments outside office hours.

Piazza

Link to Piazza

Important Links

Overview - Books - Projects - Quizzes - Exams - Grades - Handouts - Worksheets - C Style Guide - C Commenting Guide

Announcements

Watch this space regularly!
01/21: Project 0 assigned. Due: Jan 29 (Fri) at 9 am.
01/29: Project 1 assigned. Due: Feb 12 (Fri) at 9 am.

01/18 Martin Luther King, Jr. Day 01/19  01/20 Intro to Systems!1(CSAPP) 01/21  01/22 Intro to C Programming!1-4(K&R);
01/25 Input/Output7(K&R) 01/26  01/27 Pointers and Arrays5(K&R); 01/28  01/29 Structures6(K&R)
Assign 0 DUE
02/01 Stack vs Heap memory 02/02  02/03 Linked Lists list 02/04  02/05  Stacks, Queues, and C wrap
02/08 Information Storage and Integer Representation 02/09  02/10 Integer Arithmethic 02/11  02/12 Floating Point
Assign 1 DUE
02/15 Intro to Assembly! 02/16  02/17 Accessing information, Arithmetic and Logical Operations 02/18  02/19 Control Structures - I
02/22 Control Structures - II 02/23  02/24 Functions and Stack Frames 02/25  02/26 Arrays, Structures, and Pointers
02/29 Out of bounds memory references and buffer overflow 03/01  03/02 x86-64 Assembly Code 03/03  03/04 Intro to Code Optimization
03/07 Loop Inefficiencies, Procedure Calls, and Memory References 03/08  03/09 Loop unrolling, Enhancing Parallelism, and Limiting Factors 03/10  03/11 Memory Performance, and Optimization in Real World
03/14 Random Access Memory and Disks 03/15  03/16 Locality and Memory Hierarchy 03/17 MIDTERM 03/18 Cache Memories - I
03/21 Enjoy    Spring    Break!
03/28 Cache Memories - II 03/29  03/30 Writing Cache-friendly Code 03/31  04/01 Impact of Caches on Program Performance
04/04 Virtual Memory 04/05  04/06 Dynamic Memory Allocation - I 04/07  04/08 Dynamic Memory Allocation - II
04/11 Dynamic Memory Allocation - III 04/12  04/13 Garbage Collection 04/14  04/15 Memory Related Bugs in C programs
04/18 Linking - Basics 04/19  04/20 Linking - Advanced 04/21  04/22 System Calls and Interrupts in OS
04/25 Processes and Threads 04/26  04/27 Concurrent Programming 04/28  04/29 Networks - Sockets Programming
05/02 Fun with Python Programming! 05/03  05/04 Fun with Python Programming! 05/05  05/06 Wrap Up!
05/09 No Class 05/10  05/11 No Class 05/12  05/13 FINAL EXAM