|
Dec 21, 2024
|
|
|
|
CSC 5120 - Software Development for Machine Learning4 lecture hours 0 lab hours 4 credits Course Description The objective of this course is to develop practical software engineering skills combined with application of data structures and algorithms concepts to enable students to implement non-trivial software projects. This course is designed for students who have some programming experience but have not had comprehensive exposure to developing intermediate-sized programs composed of multiple modules; implementing and analyzing data structures and basic algorithms; and other related computing topics. Upon completion of the course, students will be able to use Python and related libraries to implement non-trivial software for data and computational challenges that will prepare them to succeed in data science and machine learning coursework as well as other programming classes. Prereq: CSC 1110 or CSC 1310 or instructor consent Note: This course is open to qualified undergraduate students. Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Design and implement software that uses logic and looping to solve problems
- Implement logic for reading, parsing, and writing common text file formats
- Use data structures such as strings, lists, sets, dictionaries, and tuples to solve data processing and algorithmic problems
- Write software organized into multiple classes and modules
- Use a version control tool (i.e., Git) to share and collaborate on software development projects
- Document the implementation of software systems
- Write automated tests for pre-conditions and post-conditions using a testing framework
- Use recursion to solve a given problem
- Design and implement linked lists and trees to store and access data and state information
- Implement and apply tree algorithms to solving search and planning problems
- Use exact tracing to quantify and predict the runtime of a given algorithm
- Apply the concepts of asymptotic complexity to accurately characterize the Big-O of a given algorithm
Prerequisites by Topic
- Programming experience with a high-level language
Course Topics
- Introduction to procedural and object-oriented Python
- Python data types: strings, lists, sets, dictionaries, and tuples
- Loading and manipulating data stored in tabular or semi-structured text files
- Implementing and using classes in Python
- Interactions with Git repositories
- Writing tests with assertion statements and the Python unittest library
- Linked lists and trees
- Recursion
- Search and planning problems in AI such as playing games
- Applications of tree data structures and algorithms to solve search and planning problems
Coordinator Dr. Jonathon Flynn
Add to Portfolio (opens a new window)
|
|