Last modified: 8 Hours, 32 Minutes ago
This course will build on the basic programming skills acquired in the first half-session and equip the students with advanced object oriented programming knowledge, implementation of data structure and algorithms, and basic software engineering techniques. The students will be challenged with more complicated programming problems through a series of continuous assessments.
| Study Type | Undergraduate | Level | 1 |
|---|---|---|---|
| Term | Second Term | Credit Points | 15 credits (7.5 ECTS credits) |
| Campus | Aberdeen | Sustained Study | No |
| Co-ordinators |
|
||
This course uses Python as the programming language and builds on the basic programming skills acquired in CS1022. This course aims to give students a more solid grounding in programming and further builds up the students’ confidence in developing larger and more sophisticated programs for problem solving as well as further career development.
This course includes three components: (1) object oriented programming, (2) data structure and algorithms, and (3) software engineering basics. The object oriented programming (OOP) includes an introduction of the concepts and practice of OOP, OOP in Python, Python modules, object-oriented analysis, design, and testing. The data structure and algorithms component covers fundamental data structures and their related algorithms, such as stacks, queues, linked lists, trees, maps, dictionaries, and hash tables. The software engineering basics covers design patterns, UML, versioning (git), Python programming best practice, and agile development.
The course will challenge students with a series of practical exercises and mini-projects.
Information on contact teaching time is available from the course guide.
| Assessment Type | Summative | Weighting | 25 | |
|---|---|---|---|---|
| Assessment Weeks | Feedback Weeks | |||
| Feedback |
1-hour open-book in-class programming test |
|||
| Knowledge Level | Thinking Skill | Outcome |
|---|---|---|
| Conceptual | Understand | Have knowledge & understanding of the core concepts of, and common practices in, object-oriented programming. |
| Conceptual | Understand | Have knowledge and understanding of fundamentals of object-oriented analysis and design, including a range of design patterns. |
| Procedural | Analyse | Understand principled approaches to programming and to think algorithmically: to break problems down into component problems, translating these component into data structures and algorithms. |
| Assessment Type | Summative | Weighting | 25 | |
|---|---|---|---|---|
| Assessment Weeks | Feedback Weeks | |||
| Feedback |
1-hour open-book in-class programming test |
|||
| Knowledge Level | Thinking Skill | Outcome |
|---|---|---|
| Conceptual | Understand | Have knowledge and understanding of fundamentals of object-oriented analysis and design, including a range of design patterns. |
| Conceptual | Understand | Have knowledge & understanding of the core concepts of, and common practices in, object-oriented programming. |
| Procedural | Analyse | Understand principled approaches to programming and to think algorithmically: to break problems down into component problems, translating these component into data structures and algorithms. |
| Assessment Type | Summative | Weighting | 50 | |
|---|---|---|---|---|
| Assessment Weeks | Feedback Weeks | |||
| Feedback | ||||
| Knowledge Level | Thinking Skill | Outcome |
|---|---|---|
| Conceptual | Understand | Have knowledge and understanding of fundamentals of object-oriented analysis and design, including a range of design patterns. |
| Conceptual | Understand | Have knowledge & understanding of the core concepts of, and common practices in, object-oriented programming. |
| Procedural | Analyse | Understand principled approaches to programming and to think algorithmically: to break problems down into component problems, translating these component into data structures and algorithms. |
| Procedural | Create | Be able to use UML notation to document software systems. |
| Procedural | Evaluate | Be able to use existing programming tools, frameworks and systems to build, test and manage solutions. |
There are no assessments for this course.
| Assessment Type | Summative | Weighting | ||
|---|---|---|---|---|
| Assessment Weeks | Feedback Weeks | |||
| Feedback | ||||
| Knowledge Level | Thinking Skill | Outcome |
|---|---|---|
|
|
||
| Knowledge Level | Thinking Skill | Outcome |
|---|---|---|
| Procedural | Create | Be able to use UML notation to document software systems. |
| Procedural | Evaluate | Be able to use existing programming tools, frameworks and systems to build, test and manage solutions. |
| Conceptual | Understand | Have knowledge and understanding of fundamentals of object-oriented analysis and design, including a range of design patterns. |
| Procedural | Analyse | Understand principled approaches to programming and to think algorithmically: to break problems down into component problems, translating these component into data structures and algorithms. |
| Conceptual | Understand | Have knowledge & understanding of the core concepts of, and common practices in, object-oriented programming. |
We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.