Skip to content

Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.

Notifications You must be signed in to change notification settings

tungfang/CSE374-Intermediate-Programming-Concepts-and-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSE374-Intermediate-Programming-Concepts-and-Tools

Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.

This repor contains all 8 homework that I have completed for the course.

HW0:

The purpose of this assignment is to be sure that I have my Linux environment set up for the quarter and that you can log in and execute shell commands. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw0.html

HW1:

The purpose of this assignment is to become familiar with the basics of the Linux shell and the range of commands that are included in most Linux distributions. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw1.html

HW2:

In this assignment I gained some more experience with shell commands and with writing short shell scripts. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw2.html

HW3:

The main goal of this assignment is to learn more about shell scripting and using regular expressions and string processing programs, particularly grep and sed. I learned about accessing files from the web and using a program called gnuplot for plotting files. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw3.html

HW4:

The purpose of this assignment is to gain some experience with C programming by implementing a utility program that is similar to grep, but without the ability to process regular expressions (i.e., a lot like a simple version of fgrep). In particular, in this assignment, I

  • Gained experience creating and running C programs,
  • Becomed familiar with some of the basic C libraries, including those for file and string handling,
  • Got a better understanding of how Unix utilities are implemented,
  • Gained some basic experience with the unix debugger, gdb, and
  • Learned to use a style-checking tool to locate source code that may need attention. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw4.html

HW5:

In this assignment, I developed a more complex program using dynamic data structures. In doing so I:

  • Gained experience developing a larger system one part at a time, testing as you go.
  • Learned about the trie data structure, a version of a search tree.
  • Gained experience working with trees, structs, and dynamically allocated data.
  • Gained more experience reading and processing text files in C.
  • Practiced writing simple Makefiles. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw5.html

HW6:

In this assignment I developed and benchmark a memory management package. I was required to work with a partner on this project. We turned in a single assignment. This assignment continues our exploration of procedural programming, memory management, and software tools, as well as software development and working in groups. In particular, in this assignment we:

  • Implemented and test a memory management package that has the same functionality as the standard library malloc and free functions,
  • Gained experience using source-code management systems, in particular git,
  • Gained further experience with software development tools like make, and
  • Gained experience working in groups. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw6.html

HW7:

In this assignment I supplied the implementation of a C++ type for Rational numbers. I was supplied with a small calculator program that evaluates arithmetic expressions using my code. I used this to experiment with and test my implementation. But my only job was to provide an implementation of type Rational. https://courses.cs.washington.edu/courses/cse374/19sp/homework/hw7.html

About

Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published