Instructor: Jim Conrad
Kount Tutoring Center: https://coen.boisestate.edu/cs/computer-science-tutoring-center-cstc/
Final Exam: Proctored by BSU Testing Center. Flexible schedule TBA.
Many of your questions interest our entire class. You really aren’t the only person confused by the assignment or whose code doesn’t run! Please consider posting your questions on our piazza site; you will often get an answer faster than anywhere else. Many my-code-doesn’t-work questions benefit from screenshots illustrating a snippet of the suspicious code and an example of how the program fails.
Confused? It’s perfectly acceptable to post code snippets on piazza and/or to assist other students. Your questions, code snippets, and assistance are available to everyone just as if you asked them in our classroom; you are learning, not cheating. Besides, no one wants to plagiarize code known not to work. 🙃
Some questions, especially those requiring interactive use of the debugger, can’t be easily answered on-line. Someone has to actually execute and/or instrument your code to find the problem. These are the questions you’ll need to take to the tutors in the Kount Tutoring Center (CCP241). The CS253 tutoring schedule is posted on–line.
Warning: Tutors are often swamped with questions in the days before assignments are due.
Some problems stump even the tutors, and you’ll need assistance from the instructor. While my office hours are posted in the Contact section of my web site, why wait? Send me a text or an eMail, explain the problem, and we’ll figure out how to proceed.
- Kernighan and Ritchie. The C Programming Language. ISBN 978-0131103627. There’s a Kindle edition available.
- Meclenburg. Managing Projects with GNU Make. Online: http://www.oreilly.com/openbook/make3/book/index.csp
- gdb: https://www.tutorialspoint.com/gnu_debugger/gdb_commands.htm
- We also use the piazza site for conducting in-class polls. You can earn extra credit from most polls, and you can participate with the piazza app on your phone.
- If you have a laptop, bring it to work the in-class exercises.
- We use blackboard for in-class quizzes. Please bring your laptop or a phone with the blackboard app to class on quiz days.
|1||August 26, 2019||Syllabus, K&R Ch1||CS253L01||Syllabus, review and helloworld||P1 - cch|
|2||August 26, 2019||CS253L02||Intro to C Programming Language||Q1: Syllabus|
|3||September 2, 2019||Meclenburg Ch1||CS253L03||Make, Makefiles and gcc|
|4||September 2, 2019||K&R Ch2||CS253L04||Variables, strings, pointers, and fgets||Q2: L01..L02|
|5||September 9, 2019||CS253L05||Data types, strings, arrays, constants, enumerations||P2 - match|
|6||September 9, 2019||K&R Ch3||CS253L06||gdb||Q3: Makefiles|
|7||September 16, 2019||CS253L07||Bitwise operations|
|8||September 16, 2019||K&R Ch4||CS253L08||Functions, cpp, header file guards & program structure||Q4: K&R Ch1 and Ch2|
|9||September 23, 2019||K&R Ch5||CS253L09||Pointers and arrays||P3|
|10||September 23, 2019||CS253L10||Multi-Dimensional Arrays, Function Pointers||Q5: K&R Ch4|
|11||September 30, 2019||CS253L11||The Buffer Overflow Stack Attack|
|12||September 30, 2019||K&R Ch6||CS253L12||Structures, malloc and free||Q6: K&R Ch5|
|13||October 7, 2019||CS253L13||Structures, typedef||P4 - smash1|
|14||October 7, 2019||K&R Ch7||CS253L14||Standard (High-level) I/O||Q7: K&R Ch6|
|15||October 14, 2019||K&R Ch8||CS253L15||Low-Level I/O|
|16||October 14, 2019||CS253L16||Debugging and Valgrind||Q8: K&R Ch7 and Ch8|
|17||October 21, 2019||https://www.gnu.org/software/libc/manual/html_node/Processes.html#Processes||CS253L17||Processes, threads, processors, fork, wait and zombies|
|18||October 21, 2019||CS253L18||exec||Q9: Fork, wait|
|19||October 28, 2019||https://www.gnu.org/software/libc/manual/html_node/Signal-Handling.html#Signal-Handling||CS253L19||signal, sigaction, kill||P5 - smash2|
|20||October 28, 2019||https://www.gnu.org/software/libc/manual/html_node/Pipes-and-FIFOs.html#Pipes-and-FIFOs||CS253L20||Pipes, Producer-Consumer||Q10: Exec APIs|
|21||November 4, 2019||N/A||Pipe In-Class Exercise|
|22||November 4, 2019||CS253L21||Libraries||Q11: Signal and Kill|
|23||November 11, 2019||https://www.geeksforgeeks.org/multithreading-in-java/||CS253L22||Java Threads|
|24||November 11, 2019||http://tutorials.jenkov.com/java-concurrency/race-conditions-and-critical-sections.html||CS253L23A||Critical Sections||Q12: Pipes and libraries|
|25||November 18, 2019||CS253L23B||Protecting Critical Sections in Java||P6 - smash3|
|26||November 18, 2019||https://computing.llnl.gov/tutorials/pthreads/||P6|
|27||November 25, 2019||holiday|
|28||November 25, 2019||holiday|
|29||December 2, 2019||CS253L24||Threads in C|
|30||December 2, 2019||CS253L25||Identifying Critical Sections||Q13: Threads and Critical Sections|
|31||December 9, 2019||N/A||Review for final|
|32||December 9, 2019||CS253L26||Intro to an Operating System's Features and Structure|