SlideShare a Scribd company logo
Systems
Programming Course
Gustavo Rodriguez-Rivera
CS Common Core Courses
 Problem Solving and Object Oriented
Programming
 Programming in C
 Foundations of Computer Science
 Data Structures and Algorithms
 Computer Architecture
 Systems Programming
Objective
 Consolidate the programming skills from
the previous core courses.
 The System Programming course
concentrates on how programs run in user
space and how the interact with the OS.
 It does not cover OS internals. That will be
covered in the Operating Systems Course.
Objective (cont.)
 It solidifies the programming skills by
having the students write large programs
(>1000 lines).
 The students will use tools like IDEs,
debuggers, profilers, and source control to
help them write good and maintainable
code.
 The students will learn how to work on
teams.
Objective (cont.)
 Use of Scripting Languages.
 The students will learn to write multi-
process and multi-threaded programs.
Topics
 Address space. Structure of a Program. Text,
Data, BSS, Stack Segments.
 Review of Pointers, double pointers, pointers to
functions
 Use of an IDE and debugger to program in C
and C++.
 Executable File Formats. ELF, COFF, a.out.
 Development Cycle, Compiling, Assembling,
Linking. Static Libraries
 Loading a program, Runtime Linker, Shared
Libraries.
Topics (cont.)
 Scripting Languages. sh, bash, basic UNIX
commands.
 File creation, read, write, close, file mode.
 IO redirection, pipes
 Fork, wait, waitpid, signals.
 Directories, creating, directory list.
 Project: Writing your own shell.
 Source Control Systems (CVS, SVN) and
distributed (GIT, Mercurial)
Topics (cont.)
 Programming with Threads, thread creation.
 Race Conditions, Mutex locks.
 Socket Programming.
 Iterative and concurrent servers.
 Project: Implementing your own web server with
threads and process concurrency.
 Memory allocation. Problems with memory
allocation. Memory Leaks, Premature Frees,
Memory Smashing, Double Frees.
 Execution Profiling.
Textbook
 No official Textbook.
Class Notes
Selected Documents and Tutorials available
in the Internet
 Recommended Textbook.
Advanced Programming in the UNIX
Environment, Addison-Wesley, 1992.
Credits
 Dr. Douglas Comer wrote the initial
proposal for the Systems Programming
Course.
 The proposal was reviewed by Tim Korb,
Gustavo Rodriguez-Rivera and the
Systems Faculty.
Hardware Lab in the
Computer Architecture
Course
By Gustavo Rodriguez-Rivera
Introduction
 We want to teach the students that computer
programs are everywhere and not only in
Windows, Linux, and Macintosh computers.
 The students also program in
 Robots
 Phones
 Embedded Processors
 The students get hands on experience with both
hardware and software.
The Hardware Kit
 The students buy a kit from the department at cost.
 The kit contains, breadboard, wires, gates, PIC18
processor, LED display, speaker, and everything they
need to do projects with the PIC18 processor.
 PIC 18 processor:
 8 bit architecture
 2K RAM, 64KB Flash Memory for Programs
 USB communication
 Digital Input/Outputs, Analog inputs
 Timers, interrupts
 Assembly and C programming with Microchip’s MPLAB IDE
The Hardware Kit
Programming the PIC18
 The students write the Assembly or C
program in a PC running Windows and the
the MPLAB IDE environment.
 The program is assembled/compile and
downloaded to the PIC18 using a
programmer called PICKit2.
The MPLAB IDE
Projects
 Implementing a 7-Segment display
decoder using AND, OR, NOT gates.
 Ambient light using an RGB Full Color
LED, Pulse Wide Modulation (PWM),
push buttons, and the segment display.
 Configurable Alarm Clock with selectable
ring tones and interrupts.
 Interfacing the PC and a servo motor
using the USB port.
Thanks!
You are invited to see some of the student’s
projects here in the room.
The URL of the course is
http://www.cs.purdue.edu/homes/cs250

More Related Content

PPTX
Master the Fundamentals of C Programming Language
PDF
Learn C programming course in Jalandhar.pdf
PPTX
C is a general−purpose, high−level language that was originally developed by ...
PPTX
Summer training PPT Manasv Singharia.pptx
PPTX
Expection Setting - 1st ppt. pptx
PPTX
Bsc cs i pic u-1 introduction to c language
PDF
Introduction to Programming Roadmaps.pdf
DOCX
Net Resume D Hill
Master the Fundamentals of C Programming Language
Learn C programming course in Jalandhar.pdf
C is a general−purpose, high−level language that was originally developed by ...
Summer training PPT Manasv Singharia.pptx
Expection Setting - 1st ppt. pptx
Bsc cs i pic u-1 introduction to c language
Introduction to Programming Roadmaps.pdf
Net Resume D Hill

Similar to SystemsProgrammingCourse FSDFFSFDSDSDSFSFS (20)

DOCX
kavita_resume_3
PPT
Intro1
PPTX
Diploma ii cfpc u-1 introduction to c language
PPTX
introduction to c language
PPTX
Mca i pic u-1 introduction to c language
PPTX
Btech i pic u-1 introduction to c language
PDF
Alvaro Denis Resume
PPTX
T3_Embedded programing_07072022T3_Embedded programing_07072022.pptx
PPTX
Introduction to computers, input and output devices
PDF
Rashmi_Resume
PDF
Foundry Analysis and sec lectire 01 .pdf
DOCX
SrinivasaVithal_CV
PDF
C & C++ Training Institute in Hamirpur.pdf
DOCX
Surya resume
PPT
PDF
oyedele_resume_updated
PPTX
Unit 1 of c++ part 1 basic introduction
PDF
Sambhab_Mohapatra
DOC
DIPAK INGLE_RESUME_final
kavita_resume_3
Intro1
Diploma ii cfpc u-1 introduction to c language
introduction to c language
Mca i pic u-1 introduction to c language
Btech i pic u-1 introduction to c language
Alvaro Denis Resume
T3_Embedded programing_07072022T3_Embedded programing_07072022.pptx
Introduction to computers, input and output devices
Rashmi_Resume
Foundry Analysis and sec lectire 01 .pdf
SrinivasaVithal_CV
C & C++ Training Institute in Hamirpur.pdf
Surya resume
oyedele_resume_updated
Unit 1 of c++ part 1 basic introduction
Sambhab_Mohapatra
DIPAK INGLE_RESUME_final

More from meharikiros2 (17)

PPTX
CHapter four database managementm04.pptx
PPT
CHAPTERGAHAhsghdfsfdsfsdfsfdsfsdfAGSHagsh-7.ppt
PPTX
chapter three 3-part II-1lecture slide.pptx
PPTX
ExitExam Tutorial gfgfgfdfdfdfdf (1).pptx
PPT
CHAPTER-7 C++ PROGRAMMING ( STRUCTURE IN C++)
PPT
Query optimization and processing for advanced database systems
PPTX
Emerging chap asasasasasawwqwqwwqwewewr4.pptx
PPTX
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
PPT
chapter1lecturenotes sdsdasdddadad(2).ppt
PPTX
Lab Session for sql programming language 1.pptx
PPTX
RIFLI-Computer-Basics-Part-1-1 lecture not
PPT
Lecture 01 - CS193Jxcxcxcx Summer 2003.ppt
PPT
JavaAdvanced programming for expertes dsd
PPTX
Computer_Programming_Fundamentals in cpp
PPTX
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
PPT
This is introduction to distributed systems for the revised curiculum
PPTX
ITET-4.pptx
CHapter four database managementm04.pptx
CHAPTERGAHAhsghdfsfdsfsdfsfdsfsdfAGSHagsh-7.ppt
chapter three 3-part II-1lecture slide.pptx
ExitExam Tutorial gfgfgfdfdfdfdf (1).pptx
CHAPTER-7 C++ PROGRAMMING ( STRUCTURE IN C++)
Query optimization and processing for advanced database systems
Emerging chap asasasasasawwqwqwwqwewewr4.pptx
Chapter-1-IntroDistributeddffsfdfsdf-1.pptx
chapter1lecturenotes sdsdasdddadad(2).ppt
Lab Session for sql programming language 1.pptx
RIFLI-Computer-Basics-Part-1-1 lecture not
Lecture 01 - CS193Jxcxcxcx Summer 2003.ppt
JavaAdvanced programming for expertes dsd
Computer_Programming_Fundamentals in cpp
Introduction-to-C-Part-1 JSAHSHAHSJAHSJAHSJHASJ
This is introduction to distributed systems for the revised curiculum
ITET-4.pptx

Recently uploaded (20)

PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
additive manufacturing of ss316l using mig welding
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Sustainable Sites - Green Building Construction
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
Welding lecture in detail for understanding
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PDF
composite construction of structures.pdf
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PPT
Mechanical Engineering MATERIALS Selection
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf
additive manufacturing of ss316l using mig welding
CYBER-CRIMES AND SECURITY A guide to understanding
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Sustainable Sites - Green Building Construction
Embodied AI: Ushering in the Next Era of Intelligent Systems
Welding lecture in detail for understanding
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
composite construction of structures.pdf
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Mechanical Engineering MATERIALS Selection
R24 SURVEYING LAB MANUAL for civil enggi
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx

SystemsProgrammingCourse FSDFFSFDSDSDSFSFS

  • 2. CS Common Core Courses  Problem Solving and Object Oriented Programming  Programming in C  Foundations of Computer Science  Data Structures and Algorithms  Computer Architecture  Systems Programming
  • 3. Objective  Consolidate the programming skills from the previous core courses.  The System Programming course concentrates on how programs run in user space and how the interact with the OS.  It does not cover OS internals. That will be covered in the Operating Systems Course.
  • 4. Objective (cont.)  It solidifies the programming skills by having the students write large programs (>1000 lines).  The students will use tools like IDEs, debuggers, profilers, and source control to help them write good and maintainable code.  The students will learn how to work on teams.
  • 5. Objective (cont.)  Use of Scripting Languages.  The students will learn to write multi- process and multi-threaded programs.
  • 6. Topics  Address space. Structure of a Program. Text, Data, BSS, Stack Segments.  Review of Pointers, double pointers, pointers to functions  Use of an IDE and debugger to program in C and C++.  Executable File Formats. ELF, COFF, a.out.  Development Cycle, Compiling, Assembling, Linking. Static Libraries  Loading a program, Runtime Linker, Shared Libraries.
  • 7. Topics (cont.)  Scripting Languages. sh, bash, basic UNIX commands.  File creation, read, write, close, file mode.  IO redirection, pipes  Fork, wait, waitpid, signals.  Directories, creating, directory list.  Project: Writing your own shell.  Source Control Systems (CVS, SVN) and distributed (GIT, Mercurial)
  • 8. Topics (cont.)  Programming with Threads, thread creation.  Race Conditions, Mutex locks.  Socket Programming.  Iterative and concurrent servers.  Project: Implementing your own web server with threads and process concurrency.  Memory allocation. Problems with memory allocation. Memory Leaks, Premature Frees, Memory Smashing, Double Frees.  Execution Profiling.
  • 9. Textbook  No official Textbook. Class Notes Selected Documents and Tutorials available in the Internet  Recommended Textbook. Advanced Programming in the UNIX Environment, Addison-Wesley, 1992.
  • 10. Credits  Dr. Douglas Comer wrote the initial proposal for the Systems Programming Course.  The proposal was reviewed by Tim Korb, Gustavo Rodriguez-Rivera and the Systems Faculty.
  • 11. Hardware Lab in the Computer Architecture Course By Gustavo Rodriguez-Rivera
  • 12. Introduction  We want to teach the students that computer programs are everywhere and not only in Windows, Linux, and Macintosh computers.  The students also program in  Robots  Phones  Embedded Processors  The students get hands on experience with both hardware and software.
  • 13. The Hardware Kit  The students buy a kit from the department at cost.  The kit contains, breadboard, wires, gates, PIC18 processor, LED display, speaker, and everything they need to do projects with the PIC18 processor.  PIC 18 processor:  8 bit architecture  2K RAM, 64KB Flash Memory for Programs  USB communication  Digital Input/Outputs, Analog inputs  Timers, interrupts  Assembly and C programming with Microchip’s MPLAB IDE
  • 15. Programming the PIC18  The students write the Assembly or C program in a PC running Windows and the the MPLAB IDE environment.  The program is assembled/compile and downloaded to the PIC18 using a programmer called PICKit2.
  • 17. Projects  Implementing a 7-Segment display decoder using AND, OR, NOT gates.  Ambient light using an RGB Full Color LED, Pulse Wide Modulation (PWM), push buttons, and the segment display.  Configurable Alarm Clock with selectable ring tones and interrupts.  Interfacing the PC and a servo motor using the USB port.
  • 18. Thanks! You are invited to see some of the student’s projects here in the room. The URL of the course is http://www.cs.purdue.edu/homes/cs250