Foundations in Software Development
| Code | School | Level | Credits | Semesters |
| DATA1003 | Computer Science | 1 | N/A | Autumn UK |
- Code
- DATA1003
- School
- Computer Science
- Level
- 1
- Credits
- N/A
- Semesters
- Autumn UK
Summary
Indicative content:
- Creating a basic program from writing it to compiling and running it.
- Reading / Writing data to / from a file.
- Storing and manipulating variables.
- Using fundamental control structures.
- Decomposing problems and using functions and libraries.
- Basic testing and debugging.
- Handling strings and basic text mining.
Target Students
Entry level data science apprentices.
Classes
27 hours of weekly distance learning lab exercises with supporting video material and drop-in remote support sessions. Two x 6-hour block release days.
Assessment
- 100% Assessment: Completion of teaching block
Assessed by end of designated period
Educational Aims
This teaching block aims to introduce the basics of software development aimed at a learner who has little or no previous experience. It will show learners the basic principles of coding and will give the technical skills for them to break down simple problems and produce solutions to them using software. The focus will be on software that processes data and applies mathematical and data science techniques.Learning Outcomes
- Can use appropriate tools to write simple programs which solve a problem, especially a data science problem.
- Understands and can use basic procedural control structures and programming operators to implement simple algorithms.
- Can store and manipulate different types of data (for example numerical, textual, lists, sets, maps).
- Understands the need for software testing and can demonstrate basic software testing principles in practice.
KSBs
K3. How data can be used systematically, through an awareness of key platforms for data and analysis in an organisation, including:
- Data processing and storage, including on-premise and cloud technologies.
- Database systems including relational, data warehousing & online analytical processing, "NoSQL" and real-time approaches, the pros and cons of each approach.
- Data-driven decision making and the good use of evidence and analytics in making choices and decisions.
K4. How to design, implement and optimise analytical algorithms - as prototypes and at production - using:
- Statistical and mathematical models and methods.
- Advanced and predictive analytics, machine learning and artificial intelligence techniques, simulations, optimisation, and automation.
- Applications such as computer vision and Natural Language Processing.
- An awareness of the computing and organisational resource constraints and trade-offs involved in selecting models, algorithms and tools.
- Development standards, including programming practice, testing, source control.
K5. The data landscape: how to critically analyse, interpret and evaluate complex information from diverse datasets:
- Sources of data including but not exclusive to les, operational systems, databases, web services, open data, government data, news and social media.
- Data formats, structures and data delivery methods including "unstructured” data.
- Common patterns in real-world data.
S1. Identify and clarify problems an organisation faces, and reformulate them into Data Science problems. Devise solutions and make decisions in context by seeking feedback from stakeholders. Apply scientific methods through experiment design, measurement, hypothesis testing and delivery of results. Collaborate with colleagues to gather requirements.
S2. Perform data engineering: create and handle datasets for analysis. Use tools and techniques to source, access, explore, prole, pipeline, combine, transform and store data, and apply governance (quality control, security, privacy) to data.
S3. Identify and use an appropriate range of programming languages and tools for data manipulation, analysis, visualisation, and system integration. Select appropriate data structures and algorithms for the problem. Develop reproducible analysis and robust code, working in accordance with software development standards, including security, accessibility, code quality and version control.
S4. Use analysis and models to inform and improve organisational outcomes, building models and validating results with statistical testing: perform statistical analysis, correlation vs causation, feature selection and engineering, machine learning, optimisation, and simulations, using the appropriate techniques for the problem.
S5. Implement data solutions, using relevant software engineering architectures and design patterns. Evaluate Cloud vs. on-premise deployment. Determine the implicit and explicit value of data. Assess value for money and Return on Investment. Scale a system up/out. Evaluate emerging trends and new approaches. Compare the pros and cons of software applications and techniques.
B3. Adaptability and dynamism when responding to varied tasks and organisational timescales, and pragmatism in the face of real-world scenarios.
B5. An impartial, scientific, hypothesis-driven approach to work, rigorous data analysis methods, and integrity in presenting data and conclusions in a truthful and appropriate manner.