C Programming II | CMPR.X401

C Programming II | CMPR.X401


C remains one of the most popular programming languages. It is widely available on most, if not all, computing platforms. This language is highly valued for its speed, low-level capabilities and platform independent characteristics. It is also actively used in the development of other languages. This course will broaden your skills as a C language programmer by introducing sophisticated problem-solving and optimization techniques.

This course delves into the design, implementation, and use of advanced data structures. Students will solidify their understanding of strings, arrays, pointers, structures, unions and bit manipulation. Emphasis will be on programming that employs and improves upon a variety of data structures. Through this course, you will learn to write efficient programs by understanding the complexities of various algorithms.


Learning Outcomes
At the conclusion of the course, you should be able to

  • Define a data type and understand the memory layout for different variables.
  • Manipulate arrays of any data type, program with loops and control flow, play with pointers.
  • Define user created structures, use files to read the input data and write output.
  • Allocate structure memory dynamically, manipulate linked lists.
  • Sort complex data though simple and advanced sort routines.
  • Create tree structures, assign data elements in tree format and traverse trees.
  • Create graph nodes to traverse through them, find shortest path from a graph between two nodes.
  • Identify a minimum spanning tree of a graph created with the node information.
  • Describe the critical role of testing in building quality software.
  • Employ Generative AI for rapid prototyping and learning.

Topics Include

  • Data types, variables, operators, and operator precedence
  • Arrays in general, including two-dimensional and multi-dimensional configurations
  • Dynamic memory allocation
  • Pointers, strings, file input and output
  • Data structures such as linked, circular and doubly linked lists, stacks, queues, and hash tables
  • Binary trees in general, including implementation, traversal and drawbacks
  • Recursions and implementation of recursive algorithms
  • Huffman algorithm
  • Sorting routines, Big O notation and the complexity of algorithms
  • Graphs: their traversal and applications
  • Black Box and White Box Testing
  • Generative AI

Skills Needed: Students should have a good understanding of programming using data types such as pointers, structures, control flow, and iterative vs recursive programming.

NOTES: Development will be done on an online Linux platform. Generative AI will use Copilot on the Visual Code platform.


Next Section Starts In:


Days
:
Hours
:
Mins
:
Secs

April 23, 2024, 6:30 p.m.
2024-04-23T18:30:00-07:00
Have a question about this course?
Speak to a student services representative.
Call (408) 861-3860
FAQ
ENROLL EARLY!

Prerequisite(s):

Sections Open for Enrollment:

Open Sections and Schedule
Start / End Date Quarter Units Cost Instructor
04-23-2024 to 06-25-2024 3.0 $800

Avnish Aggarwal

Enroll

Final Date To Enroll: 04-23-2024

Schedule

Date: Start Time: End Time: Meeting Type: Location:
Tue, 04-23-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 04-30-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 05-07-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 05-14-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 05-21-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 05-28-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 06-04-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 06-11-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 06-18-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE
Tue, 06-25-2024 6:30 p.m. 9:30 p.m. Flexible SANTA CLARA / REMOTE