<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Resources | Shaorong Wang | Visual Computing</title><link>https://www.shaorongwang.com/courses/c-programming/materials/</link><atom:link href="https://www.shaorongwang.com/courses/c-programming/materials/index.xml" rel="self" type="application/rss+xml"/><description>Resources</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-US</language><image><url>https://www.shaorongwang.com/media/sharing.png</url><title>Resources</title><link>https://www.shaorongwang.com/courses/c-programming/materials/</link></image><item><title>Learning Resources</title><link>https://www.shaorongwang.com/courses/c-programming/materials/learning-resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.shaorongwang.com/courses/c-programming/materials/learning-resources/</guid><description>&lt;h3 id="reference-materials"&gt;Reference Materials&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/courses/c-programming/materials/practices/"&gt;Programming practices and examples&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://flowus.cn/visualcomputing/share/cc5a45de-5e39-4199-94eb-3144019f4bfd?code=9B3ACH"&gt;Supplementary programming materials&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="books"&gt;Books&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Stephen Prata, &lt;em&gt;C Primer Plus&lt;/em&gt;, 6th ed., Posts &amp;amp; Telecom Press, 2019.&lt;/li&gt;
&lt;li&gt;Brian W. Kernighan and Dennis M. Ritchie, &lt;em&gt;The C Programming Language&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Xiaolin Wang et al., &lt;em&gt;Introduction to Computing: Solutions to Programming Reading Exercises&lt;/em&gt;, Tsinghua University Press, 2011.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Focused Examples</title><link>https://www.shaorongwang.com/courses/c-programming/materials/examples/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.shaorongwang.com/courses/c-programming/materials/examples/</guid><description>&lt;ul class="vcg-course-resource-list"&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FBasicIO.c&amp;amp;title=Basic&amp;#43;input&amp;#43;and&amp;#43;output#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Basic input and output&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Basic scanf, character, and string input&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FIsPrime.c&amp;amp;title=Divisibility&amp;#43;and&amp;#43;prime&amp;#43;numbers#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Divisibility and prime numbers&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Divisibility tests and prime-number detection&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FNumber.c&amp;amp;title=Integer&amp;#43;techniques#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Integer techniques&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Digit processing, greatest common divisors, and exhaustive search&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FLoops.c&amp;amp;title=Loops&amp;#43;and&amp;#43;accumulation#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Loops and accumulation&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Loop-based accumulation and series approximation&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FArray.c&amp;amp;title=Arrays&amp;#43;as&amp;#43;function&amp;#43;parameters#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Arrays as function parameters&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;One- and two-dimensional array parameters, traversal, and deletion&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FPointer.c&amp;amp;title=Pointers#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Pointers&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Pass-by-value, pointer parameters, and value swapping&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FAlgorithm.c&amp;amp;title=Sorting&amp;#43;and&amp;#43;searching#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Sorting and searching&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Linear and binary search, bubble sort, and selection sort&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FString.c&amp;amp;title=Strings#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Strings&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;String traversal, reversal, conversion, and word splitting&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FIO.c&amp;amp;title=Input%2C&amp;#43;output%2C&amp;#43;and&amp;#43;text&amp;#43;files#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Input, output, and text files&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;File I/O, sorting, structures, and dynamic memory&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FOthers.c&amp;amp;title=Other&amp;#43;examples#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Other examples&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Counting array-element frequencies&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="modular-programming"&gt;Modular Programming&lt;/h3&gt;
&lt;ul class="vcg-course-resource-list"&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fwhy-modular-code.md&amp;amp;title=Why&amp;#43;modular&amp;#43;code&amp;#43;matters#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Why modular code matters&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Modularity for portability, reuse, design, and maintenance&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fmodular-code-properties.md&amp;amp;title=Properties&amp;#43;of&amp;#43;modular&amp;#43;code#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Properties of modular code&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Fundamental concepts of modules, cohesion, and coupling&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/examples/?kind=code&amp;amp;language=c&amp;amp;resource=%2Fcourse-resources%2Fcode%2Fc%2FModularCode.c&amp;amp;title=Modular&amp;#43;C&amp;#43;example#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Modular C example&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Reusable functions for one- and two-dimensional arrays of different lengths&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Programming Practices</title><link>https://www.shaorongwang.com/courses/c-programming/materials/practices/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.shaorongwang.com/courses/c-programming/materials/practices/</guid><description>&lt;ul&gt;
&lt;li&gt;Do not stop when a program first produces the expected output; also check readability, maintainability, efficiency, and robustness.&lt;/li&gt;
&lt;li&gt;Store computed results in variables before displaying them. Program state matters more than transient console output.&lt;/li&gt;
&lt;li&gt;Analyze control flow and data flow, then verify your reasoning with a debugger or temporary diagnostic output.&lt;/li&gt;
&lt;li&gt;When requesting help, explain what you tried, what you understand, and the precise point that remains unclear.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="detailed-guides"&gt;Detailed Guides&lt;/h3&gt;
&lt;ul class="vcg-course-resource-list"&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/practices/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fprogramming-foundations-learning.md&amp;amp;title=Learning&amp;#43;Programming&amp;#43;Fundamentals#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Learning Programming Fundamentals&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Learning goals, study methods, and problem-solving advice&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/practices/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fc-programming-tips.md&amp;amp;title=C&amp;#43;Programming&amp;#43;Tips#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;C Programming Tips&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;scanf input, character handling, and common integer types&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/practices/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fc-programming-debugging.md&amp;amp;title=Common&amp;#43;C&amp;#43;Compilation&amp;#43;and&amp;#43;Runtime&amp;#43;Errors#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Common C Compilation and Runtime Errors&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Common compilation, input, and type errors&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="input-and-common-errors"&gt;Input and Common Errors&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Whitespace in a &lt;code&gt;scanf&lt;/code&gt; format usually consumes any amount of input whitespace. Character input needs extra care because it may read a pending newline.&lt;/li&gt;
&lt;li&gt;Match each format specifier to its destination type, and include &lt;code&gt;&amp;amp;&lt;/code&gt; when an address is required.&lt;/li&gt;
&lt;li&gt;Use ASCII punctuation in source code and end statements with an ASCII semicolon.&lt;/li&gt;
&lt;li&gt;Declare and initialize variables before reading their values.&lt;/li&gt;
&lt;li&gt;Integer division produces an integer result, even if that result is later assigned to a floating-point variable.&lt;/li&gt;
&lt;li&gt;When Microsoft Visual C warns about functions such as &lt;code&gt;scanf&lt;/code&gt;, understand the safer alternatives first. Legacy exercises may require &lt;code&gt;_CRT_SECURE_NO_WARNINGS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="programming-style"&gt;Programming Style&lt;/h3&gt;
&lt;ul class="vcg-course-resource-list"&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/practices/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fcpp-best-practices.md&amp;amp;title=C%2B%2B&amp;#43;Best&amp;#43;Practices#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;C&amp;#43;&amp;#43; Best Practices&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Common C&amp;#43;&amp;#43; programming practices and code-quality guidance&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;li class="vcg-course-resource-item"&gt;
&lt;a
class="vcg-course-resource-link"
href="https://www.shaorongwang.com/courses/c-programming/materials/practices/?kind=markdown&amp;amp;language=text&amp;amp;resource=%2Fcourse-resources%2Fmarkdown%2Fnaming-conventions.md&amp;amp;title=Naming&amp;#43;Conventions#course-resource-viewer"
data-vcg-course-resource-link
&gt;
&lt;span class="vcg-course-resource-label"&gt;Naming Conventions&lt;/span&gt;
&lt;span class="vcg-course-resource-description"&gt;Naming conventions for variables, functions, classes, and other identifiers&lt;/span&gt;
&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Additional Resources</title><link>https://www.shaorongwang.com/courses/c-programming/materials/additional-resources/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.shaorongwang.com/courses/c-programming/materials/additional-resources/</guid><description>&lt;h3 id="development-environment"&gt;Development Environment&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/course-resources/files/C/info/debugging/Visual-Studio-2019-C-Environment.pdf"&gt;Visual Studio 2019 C environment&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/course-resources/files/C/info/debugging/Visual-Studio-Debugging.mp4"&gt;Visual Studio debugging video&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/course-resources/files/C/resource/MyHeart.rar"&gt;OpenCV sample: MyHeart&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/course-resources/files/C/resource/OpenCV-Setup-Guide.pdf"&gt;OpenCV setup guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.shaorongwang.com/course-resources/files/C-CPlusPlus/Developing-Multi-File-Projects.pdf"&gt;Visual Studio multi-file projects&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://visualstudio.microsoft.com/downloads/"&gt;Visual Studio 2022 Community&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/visualstudio/install/install-visual-studio"&gt;Install Visual Studio 2022&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/cppblog/c-tutorial-debugging-overview/"&gt;C/C++ debugging overview&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/cpp/build/vscpp-step-1-create"&gt;Create a C++ console application&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>