├── .husky └── pre-commit ├── bun.lockb ├── WEB ├── guide-httpd.pdf └── httpd.conf ├── .prettierrc ├── package.json ├── .github └── workflows │ └── format.yml ├── CONTRIBUTING.md ├── .gitignore ├── LICENSE └── README.md /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | bunx lint-staged 2 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Imtjl/2nd-year-guide/HEAD/bun.lockb -------------------------------------------------------------------------------- /WEB/guide-httpd.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Imtjl/2nd-year-guide/HEAD/WEB/guide-httpd.pdf -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "proseWrap": "always", 3 | "useTabs": true, 4 | "singleQuote": false 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "formatting", 3 | "devDependencies": { 4 | "@types/bun": "latest", 5 | "husky": "^9.1.4", 6 | "lint-staged": "^15.2.8", 7 | "prettier": "^3.3.3" 8 | }, 9 | "lint-staged": { 10 | "*.md": "prettier --write" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /.github/workflows/format.yml: -------------------------------------------------------------------------------- 1 | name: Prettier Check 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | prettier-check: 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v2 18 | 19 | - name: Set up Bun 20 | uses: oven-sh/setup-bun@v1 21 | with: 22 | bun-version: latest 23 | 24 | - name: Install dependencies 25 | run: bun install 26 | 27 | - name: Run Prettier 28 | run: bun x prettier --check "**/*.md" 29 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to the Project 2 | 3 | - [RU](#RU) 4 | - [EN](#EN) 5 | 6 | 7 | 8 | Thank you for your interest in contributing to this project! Here are some 9 | guidelines to help you get started. 10 | 11 | ## Markdown Formatting with Prettier 12 | 13 | This project uses [Prettier](https://prettier.io/) to automatically format 14 | Markdown files. 15 | 16 | ## Setup 17 | 18 | 0. **Fork this repository** 19 | 20 | 1. **Clone your forked repository:** 21 | 22 | ```bash 23 | git clone https://github.com/yourusername/your-repo.git 24 | cd your-repo 25 | ``` 26 | 27 | 2. **Install [Bun](https://bun.sh/docs/installation)** (a.k.a. faster npm) 28 | 29 | 3. **Install dependencies:** 30 | 31 | ```bash 32 | bun install 33 | ``` 34 | 35 | Now Prettier will automatically format Markdown files on each commit. This is 36 | done using Husky and lint-staged. 37 | 38 | If you want to manually use prettier, run: 39 | 40 | ```bash 41 | bun x prettier --write "**/*.md" 42 | ``` 43 | 44 | Enjoy! 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore 2 | 3 | # Logs 4 | 5 | logs 6 | _.log 7 | npm-debug.log_ 8 | yarn-debug.log* 9 | yarn-error.log* 10 | lerna-debug.log* 11 | .pnpm-debug.log* 12 | 13 | # Caches 14 | 15 | .cache 16 | 17 | # Diagnostic reports (https://nodejs.org/api/report.html) 18 | 19 | report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json 20 | 21 | # Runtime data 22 | 23 | pids 24 | _.pid 25 | _.seed 26 | *.pid.lock 27 | 28 | # Directory for instrumented libs generated by jscoverage/JSCover 29 | 30 | lib-cov 31 | 32 | # Coverage directory used by tools like istanbul 33 | 34 | coverage 35 | *.lcov 36 | 37 | # nyc test coverage 38 | 39 | .nyc_output 40 | 41 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 42 | 43 | .grunt 44 | 45 | # Bower dependency directory (https://bower.io/) 46 | 47 | bower_components 48 | 49 | # node-waf configuration 50 | 51 | .lock-wscript 52 | 53 | # Compiled binary addons (https://nodejs.org/api/addons.html) 54 | 55 | build/Release 56 | 57 | # Dependency directories 58 | 59 | node_modules/ 60 | jspm_packages/ 61 | 62 | # Snowpack dependency directory (https://snowpack.dev/) 63 | 64 | web_modules/ 65 | 66 | # TypeScript cache 67 | 68 | *.tsbuildinfo 69 | 70 | # Optional npm cache directory 71 | 72 | .npm 73 | 74 | # Optional eslint cache 75 | 76 | .eslintcache 77 | 78 | # Optional stylelint cache 79 | 80 | .stylelintcache 81 | 82 | # Microbundle cache 83 | 84 | .rpt2_cache/ 85 | .rts2_cache_cjs/ 86 | .rts2_cache_es/ 87 | .rts2_cache_umd/ 88 | 89 | # Optional REPL history 90 | 91 | .node_repl_history 92 | 93 | # Output of 'npm pack' 94 | 95 | *.tgz 96 | 97 | # Yarn Integrity file 98 | 99 | .yarn-integrity 100 | 101 | # dotenv environment variable files 102 | 103 | .env 104 | .env.development.local 105 | .env.test.local 106 | .env.production.local 107 | .env.local 108 | 109 | # parcel-bundler cache (https://parceljs.org/) 110 | 111 | .parcel-cache 112 | 113 | # Next.js build output 114 | 115 | .next 116 | out 117 | 118 | # Nuxt.js build / generate output 119 | 120 | .nuxt 121 | dist 122 | 123 | # Gatsby files 124 | 125 | # Comment in the public line in if your project uses Gatsby and not Next.js 126 | 127 | # https://nextjs.org/blog/next-9-1#public-directory-support 128 | 129 | # public 130 | 131 | # vuepress build output 132 | 133 | .vuepress/dist 134 | 135 | # vuepress v2.x temp and cache directory 136 | 137 | .temp 138 | 139 | # Docusaurus cache and generated files 140 | 141 | .docusaurus 142 | 143 | # Serverless directories 144 | 145 | .serverless/ 146 | 147 | # FuseBox cache 148 | 149 | .fusebox/ 150 | 151 | # DynamoDB Local files 152 | 153 | .dynamodb/ 154 | 155 | # TernJS port file 156 | 157 | .tern-port 158 | 159 | # Stores VSCode versions used for testing VSCode extensions 160 | 161 | .vscode-test 162 | 163 | # yarn v2 164 | 165 | .yarn/cache 166 | .yarn/unplugged 167 | .yarn/build-state.yml 168 | .yarn/install-state.gz 169 | .pnp.* 170 | 171 | # IntelliJ based IDEs 172 | .idea 173 | 174 | # Finder (MacOS) folder config 175 | .DS_Store 176 | -------------------------------------------------------------------------------- /WEB/httpd.conf: -------------------------------------------------------------------------------- 1 | ServerRoot "/usr/local" 2 | 3 | 4 | Mutex default:/home/studs/s409463/httpd-root/mutex-dir/ 5 | 6 | Listen 24478 7 | 8 | 9 | LoadModule authn_file_module libexec/apache24/mod_authn_file.so 10 | #LoadModule authn_dbm_module libexec/apache24/mod_authn_dbm.so 11 | #LoadModule authn_anon_module libexec/apache24/mod_authn_anon.so 12 | #LoadModule authn_dbd_module libexec/apache24/mod_authn_dbd.so 13 | #LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so 14 | LoadModule authn_core_module libexec/apache24/mod_authn_core.so 15 | LoadModule authz_host_module libexec/apache24/mod_authz_host.so 16 | LoadModule authz_groupfile_module libexec/apache24/mod_authz_groupfile.so 17 | LoadModule authz_user_module libexec/apache24/mod_authz_user.so 18 | #LoadModule authz_dbm_module libexec/apache24/mod_authz_dbm.so 19 | #LoadModule authz_owner_module libexec/apache24/mod_authz_owner.so 20 | #LoadModule authz_dbd_module libexec/apache24/mod_authz_dbd.so 21 | LoadModule authz_core_module libexec/apache24/mod_authz_core.so 22 | LoadModule access_compat_module libexec/apache24/mod_access_compat.so 23 | LoadModule auth_basic_module libexec/apache24/mod_auth_basic.so 24 | #LoadModule auth_form_module libexec/apache24/mod_auth_form.so 25 | #LoadModule auth_digest_module libexec/apache24/mod_auth_digest.so 26 | #LoadModule allowmethods_module libexec/apache24/mod_allowmethods.so 27 | #LoadModule file_cache_module libexec/apache24/mod_file_cache.so 28 | #LoadModule cache_module libexec/apache24/mod_cache.so 29 | #LoadModule cache_disk_module libexec/apache24/mod_cache_disk.so 30 | #LoadModule cache_socache_module libexec/apache24/mod_cache_socache.so 31 | LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so 32 | #LoadModule socache_dbm_module libexec/apache24/mod_socache_dbm.so 33 | #LoadModule socache_memcache_module libexec/apache24/mod_socache_memcache.so 34 | #LoadModule watchdog_module libexec/apache24/mod_watchdog.so 35 | #LoadModule macro_module libexec/apache24/mod_macro.so 36 | #LoadModule dbd_module libexec/apache24/mod_dbd.so 37 | #LoadModule dumpio_module libexec/apache24/mod_dumpio.so 38 | #LoadModule buffer_module libexec/apache24/mod_buffer.so 39 | #LoadModule ratelimit_module libexec/apache24/mod_ratelimit.so 40 | LoadModule reqtimeout_module libexec/apache24/mod_reqtimeout.so 41 | #LoadModule ext_filter_module libexec/apache24/mod_ext_filter.so 42 | #LoadModule request_module libexec/apache24/mod_request.so 43 | #LoadModule include_module libexec/apache24/mod_include.so 44 | LoadModule filter_module libexec/apache24/mod_filter.so 45 | #LoadModule substitute_module libexec/apache24/mod_substitute.so 46 | #LoadModule sed_module libexec/apache24/mod_sed.so 47 | #LoadModule deflate_module libexec/apache24/mod_deflate.so 48 | LoadModule mime_module libexec/apache24/mod_mime.so 49 | LoadModule log_config_module libexec/apache24/mod_log_config.so 50 | #LoadModule log_debug_module libexec/apache24/mod_log_debug.so 51 | #LoadModule logio_module libexec/apache24/mod_logio.so 52 | LoadModule env_module libexec/apache24/mod_env.so 53 | #LoadModule mime_magic_module libexec/apache24/mod_mime_magic.so 54 | #LoadModule expires_module libexec/apache24/mod_expires.so 55 | LoadModule headers_module libexec/apache24/mod_headers.so 56 | #LoadModule unique_id_module libexec/apache24/mod_unique_id.so 57 | LoadModule setenvif_module libexec/apache24/mod_setenvif.so 58 | LoadModule version_module libexec/apache24/mod_version.so 59 | LoadModule remoteip_module libexec/apache24/mod_remoteip.so 60 | #LoadModule proxy_module libexec/apache24/mod_proxy.so 61 | #LoadModule proxy_connect_module libexec/apache24/mod_proxy_connect.so 62 | #LoadModule proxy_ftp_module libexec/apache24/mod_proxy_ftp.so 63 | #LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so 64 | #LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so 65 | #LoadModule proxy_scgi_module libexec/apache24/mod_proxy_scgi.so 66 | #LoadModule proxy_uwsgi_module libexec/apache24/mod_proxy_uwsgi.so 67 | #LoadModule proxy_wstunnel_module libexec/apache24/mod_proxy_wstunnel.so 68 | #LoadModule proxy_ajp_module libexec/apache24/mod_proxy_ajp.so 69 | #LoadModule proxy_balancer_module libexec/apache24/mod_proxy_balancer.so 70 | #LoadModule proxy_express_module libexec/apache24/mod_proxy_express.so 71 | #LoadModule proxy_hcheck_module libexec/apache24/mod_proxy_hcheck.so 72 | #LoadModule session_module libexec/apache24/mod_session.so 73 | #LoadModule session_cookie_module libexec/apache24/mod_session_cookie.so 74 | #LoadModule session_crypto_module libexec/apache24/mod_session_crypto.so 75 | #LoadModule session_dbd_module libexec/apache24/mod_session_dbd.so 76 | #LoadModule slotmem_shm_module libexec/apache24/mod_slotmem_shm.so 77 | LoadModule ssl_module libexec/apache24/mod_ssl.so 78 | #LoadModule lbmethod_byrequests_module libexec/apache24/mod_lbmethod_byrequests.so 79 | #LoadModule lbmethod_bytraffic_module libexec/apache24/mod_lbmethod_bytraffic.so 80 | #LoadModule lbmethod_bybusyness_module libexec/apache24/mod_lbmethod_bybusyness.so 81 | LoadModule unixd_module libexec/apache24/mod_unixd.so 82 | #LoadModule dav_module libexec/apache24/mod_dav.so 83 | LoadModule status_module libexec/apache24/mod_status.so 84 | LoadModule autoindex_module libexec/apache24/mod_autoindex.so 85 | #LoadModule asis_module libexec/apache24/mod_asis.so 86 | #LoadModule info_module libexec/apache24/mod_info.so 87 | 88 | #LoadModule cgi_module libexec/apache24/mod_cgi.so 89 | 90 | 91 | #LoadModule cgid_module libexec/apache24/mod_cgid.so 92 | 93 | #LoadModule dav_fs_module libexec/apache24/mod_dav_fs.so 94 | #LoadModule vhost_alias_module libexec/apache24/mod_vhost_alias.so 95 | #LoadModule negotiation_module libexec/apache24/mod_negotiation.so 96 | LoadModule dir_module libexec/apache24/mod_dir.so 97 | #LoadModule imagemap_module libexec/apache24/mod_imagemap.so 98 | #LoadModule actions_module libexec/apache24/mod_actions.so 99 | #LoadModule speling_module libexec/apache24/mod_speling.so 100 | LoadModule userdir_module libexec/apache24/mod_userdir.so 101 | LoadModule alias_module libexec/apache24/mod_alias.so 102 | LoadModule rewrite_module libexec/apache24/mod_rewrite.so 103 | LoadModule php_module libexec/apache24/libphp.so 104 | LoadModule fastcgi_module libexec/apache24/mod_fastcgi.so 105 | 106 | 107 | 108 | 109 | 110 | User www 111 | Group www 112 | 113 | 114 | 115 | ServerAdmin you@example.com 116 | 117 | ServerName helios.cs.ifmo.ru:2222 118 | 119 | 120 | 121 | AllowOverride none 122 | Require all denied 123 | 124 | 125 | 126 | DirectoryIndex fastCGI-1.0-SNAPSHOT-jar-with-dependencies.jar index.html 127 | 128 | 129 | 130 | 131 | Require all denied 132 | 133 | 134 | 135 | ErrorLog "/home/studs/s409463/httpd-root/error.log" 136 | PidFile "/home/studs/s409463/httpd-root/httpd.pid" 137 | 138 | 139 | LogLevel warn 140 | 141 | 142 | 143 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 144 | LogFormat "%h %l %u %t \"%r\" %>s %b" common 145 | 146 | 147 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 148 | 149 | 150 | 151 | CustomLog "/home/studs/s409463/httpd-root/access.log" combined 152 | 153 | 154 | 155 | 156 | 157 | ScriptAlias /cgi-bin/ "/usr/local/www/apache24/cgi-bin/" 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | AllowOverride None 167 | Options None 168 | Require all granted 169 | 170 | 171 | 172 | 173 | RequestHeader unset Proxy early 174 | 175 | 176 | 177 | 178 | TypesConfig etc/apache24/mime.types 179 | 180 | AddType application/x-compress .Z 181 | AddType application/x-gzip .gz .tgz 182 | 183 | 184 | 185 | 186 | 187 | 188 | Include etc/apache24/extra/proxy-html.conf 189 | 190 | 191 | 192 | 193 | SSLRandomSeed startup builtin 194 | SSLRandomSeed connect builtin 195 | 196 | 197 | 198 | AcceptFilter http none 199 | AcceptFilter https none 200 | 201 | 202 | ServerName localhost 203 | DocumentRoot /home/studs/s409463/static 204 | Alias /index "/home/studs/s409463/static" 205 | 206 | Options +Indexes 207 | AllowOverride None 208 | Require all granted 209 | 210 | 211 | ScriptAlias /fcgi-bin/ /home/studs/s409463/httpd-root/fcgi-bin/ 212 | 213 | SetHandler fastcgi-script 214 | Options +ExecCGI 215 | Require all granted 216 | 217 | FastCgiExternalServer /home/studs/s409463/httpd-root/fcgi-bin/fastCGI-1.0-SNAPSHOT-jar-with-dependencies.jar -host localhost:24348 218 | 219 | 220 | 221 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

Гайд по II курсу 🐥

2 | 3 | # Описание 4 | 5 | > Вашему вниманию представляется продолжение 6 | > [гайда по I курсу](//github.com/Imtjl/1st-year-guide) 7 | 8 | # Оглавление 9 | 10 | - [Описание](#описание) 11 | - [Оглавление](#оглавление) 12 | - [Сокращения](#сокращения) 13 | - [Гелиос на стероидах](#гелиос-на-стероидах) 14 | - [Веб-программирование (3)](#веб-программирование) 15 | - [Лабораторная 1 (веб)](#лабораторная-1-веб) 16 | - [Деплой лабораторной 1 (веб)](#деплой-лабораторной-1-веб) 17 | - [Лабораторная 2 (веб)](#лабораторная-2-веб) 18 | - [Деплой лабораторной 2-3 (веб)](#деплой-лабораторной-2-3-веб) 19 | - [Лабораторная 3 (веб)](#лабораторная-3-веб) 20 | - [Лабораторная 4 (веб)](#лабораторная-4-веб) 21 | - [Деплой лабораторной 1 (веб)](#деплой-лабораторной-4-веб) 22 | - [Теория вероятностей (3)](#теория-вероятностей) 23 | - [Селина (теорвер)](#селина-теорвер) 24 | - [Кудашов (теорвер)](#кудашов-теорвер) 25 | - [Математика (базовый уровень) (3)](#математика-базовый-уровень) 26 | - [Языки программирования (3)](#языки-программирования) 27 | - [Физика (3,4)](#программирование) 28 | - [Физика ИВТ](#физика-ивт) 29 | - [Физика СППО](#физика-сппо) 30 | - [Боярский, Коробков, Горбенко](#боярский-коробков-горбенко) 31 | - [Алгоритмы и структуры данных (4)](#алгоритмы-и-структуры-данных) 32 | - [Архитектура компьютера (4)](#архитектура-компьютера) 33 | - [Лабораторная 1 (АК)](#лабораторная-1-ак) 34 | - [Лабораторная 2 (АК)](#лабораторная-2-ак) 35 | - [Лабораторная 3 (АК)](#лабораторная-3-ак) 36 | - [Лабораторная 4 (АК)](#лабораторная-4-ак) 37 | - [Вычислительная математика (4)](#вычислительная-математика) 38 | - [Вычмат ИВТ](#вычмат-ивт) 39 | - [Вычмат СППО](#вычмат-сппо) 40 | - [Рубежка 1 (Вычмат)](#рубежка-1-вычмат) 41 | - [Рубежка 2 (Вычмат)](#рубежка-2-вычмат) 42 | - [Математическая статистика (4)](#математическая-статистика) 43 | - [Методы оптимизации (4)](#методы-оптимизации) 44 | - [Селина (метопы)](#селина-метопы) 45 | - [Кудашов (метопы)](#кудашов-метопы) 46 | - [Основы программной инженерии (4)](#основы-программной-инженерии) 47 | - [Техники публичных выступлений (4)](#техники-публичных-выступлений) 48 | - [Особая благодарность](#особая-благодарность) 49 | 50 | # Сокращения 51 | 52 | - `Веб` - Веб-программирование 53 | - `Теорвер` - Теория вероятностей 54 | - `Матан` - Высшая математика 55 | - `ЯП(ы)` - Языки программирования 56 | - `Алгосы` - Алгоритмы и структуры данных 57 | - `АК` - Архитектура компьютера 58 | - `Вычмат` - Вычислительная математика 59 | - `Матстат` - Математическая статистика 60 | - `ОПИ` - Основы программной инженерии 61 | - (легаси) `МИСПИ` - Методы и средства программной инженерии 62 | - `ТПВ` - Техники публичных выступлений 63 | - `ИЭК` - Инновационная экономика и технологическое предпринимательство 64 | - `Метопы` - Методы оптимизации 65 | - `БМС / Модельки` - Бизнес-модели основных секторов инновационной экономики 66 | 67 | # Гелиос на стероидах 68 | 69 | - Установка и сборка `fish`, `oh-my-fish`, `neovim` 70 | - TODO: Настройка красивых промптов в **cli** `Postgres` 71 | - TODO: Адекватная работа в **cli** `Postgres` 72 | 73 | > А почему бы не добавить герлянды и свистоперделки на и без того скучный 74 | > гелиос? Прикольно же :) 75 | 76 | | ![image_2024-08-11_03-11-45](https://github.com/user-attachments/assets/e41aa05f-0557-4a09-aca3-477369a7c8bb) | 77 | | ------------------------------------------------------------------------------------------------------------- | 78 | | ![image](https://github.com/user-attachments/assets/331644fc-8b35-4960-bf64-c729f9cc84b6) | 79 | | ![image](https://github.com/user-attachments/assets/4f6c20c2-bb0a-4672-8bfb-18237bed7fb5) | 80 | 81 | ## Шаг 0: Настройка оболочки 82 | 83 | ### 0.1 Добавление файла `.bash_profile` (если ещё нету) 84 | 85 | ```bash 86 | touch .bash_profile 87 | ``` 88 | 89 | > он будет запускаться при каждом вашем заходе на гелиос 90 | 91 | ### 0.2 Настройка файла `.bash_profile` 92 | 93 | - используйте редактор `vim`: 94 | 95 | ```bash 96 | vim .bash_profile 97 | ``` 98 | 99 | - скопируйте данную конфигурацию и вставьте в .bash_profile: 100 | 101 | ```bash 102 | if [ -f "$HOME/.local/bin/fish" ]; then 103 | exec $HOME/.local/bin/fish 104 | fi 105 | 106 | export _JAVA_OPTIONS="-Xmx512M -XX:MaxMetaspaceSize=3200m" 107 | export JAVA_VERSION="17.0+" 108 | export JAVA_HOME="/usr/local/openjdk17" 109 | export PATH="$HOME/.local/bin:$PATH" 110 | export PATH="$HOME/neovim/build/bin:$PATH" 111 | ``` 112 | 113 | ## Шаг 1: Установка Fish Shell 114 | 115 | ### 1.1 Скачивание исходного кода Fish 116 | 117 | ```bash 118 | curl -LO https://github.com/fish-shell/fish-shell/releases/download/3.6.1/fish-3.6.1.tar.xz 119 | ``` 120 | 121 | ### 1.2 Извлечение архива 122 | 123 | ```bash 124 | tar -xf fish-3.6.1.tar.xz cd fish-3.6.1 125 | ``` 126 | 127 | ### 1.3 Сборка и установка Fish 128 | 129 | ```bash 130 | cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release 131 | -DCMAKE_INSTALL_PREFIX=$HOME/.local ninja -C build ninja -C build install 132 | ``` 133 | 134 | ### 1.4 Добавление Fish в PATH 135 | 136 | ```bash 137 | echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile 138 | source ~/.bash_profile 139 | ``` 140 | 141 | ## Шаг 2: Установка Oh My Fish 142 | 143 | ### 2.1 Установка Oh My Fish 144 | 145 | ```bash 146 | curl -L https://get.oh-my.fish | fish 147 | ``` 148 | 149 | ### 2.2 Установка Fish как оболочки по умолчанию 150 | 151 | ```bash 152 | echo "exec fish" >> ~/.bash_profile 153 | source ~/.bash_profile 154 | ``` 155 | 156 | ### 2.3 Установка темы Oh My Fish (по желанию) 157 | 158 | ```bash 159 | omf install lambda 160 | ``` 161 | 162 | ```bash 163 | omf theme lambda 164 | ``` 165 | 166 | ### 2.4 Удаление приветствия fish (по желанию) 167 | 168 | > вводить прямо так как написано 169 | 170 | ```bash 171 | vim .config/fish/fish_variables 172 | :25 173 | o 174 | SETUVAR fish_greeting:"" 175 | esc 176 | :wqa 177 | ``` 178 | 179 | ## Шаг 3: Установка Neovim 180 | 181 | ### 3.1 Скачивание исходного кода Neovim 182 | 183 | ```bash 184 | curl -LO https://github.com/neovim/neovim/archive/refs/tags/stable.tar.gz 185 | tar xzf stable.tar.gz 186 | cd neovim-stable 187 | ``` 188 | 189 | ### 3.2 Сборка и установка Neovim 190 | 191 | ```bash 192 | cd neovim 193 | gmake clean 194 | cmake -S . -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/.local -DMAN_INSTALL_DIR=$HOME/.local/share/man 195 | gmake install 196 | ``` 197 | 198 | ### 3.3 Клонирование своей конфигурации Neovim 199 | 200 | - Например моя конфигурация, но приготовьтесь умереть: 201 | 202 | ```bash 203 | git clone https://github.com/worthant/nvim.git ~/.config/nvim 204 | ``` 205 | 206 | > TODO: создать урезанную сборку неовима для гелиоса 207 | 208 | P.S.: Теперь наслаждаетесь тем, что не запустится половина плагинов. Зависит 209 | сильно от вашего конфига, но советую как миниум раза 4 зайти и выйти в неовим, 210 | чтобы, к примеру, `lazy.nvim` и `mason` проперделись и зарезолвили большую часть 211 | проблем. 212 | 213 | ## Cli Postgres 214 | 215 | - edit `.psqlrc` file 216 | 217 | ```bash 218 | \set VERBOSITY terse 219 | \set QUIET 1 220 | \timing 221 | 222 | \pset linestyle unicode 223 | \pset border 2 224 | \setenv CLICOLOR 1 225 | \setenv LESS "-R" 226 | 227 | \set PROMPT1 '%M:%[%033[1;31m%]%>%[%033[0m%] %n@%/%R%#%x ' 228 | \set PROMPT2 '%M %n@%/%R %# ' 229 | ``` 230 | 231 | # Веб-программирование 232 | 233 | Курс веба представляет собой сдачу 4-х лабораторных связанных с разработкой как 234 | фронтеда (пользовательского интерфейса), используя базовую связку HTML + CSS + 235 | JS и фреймворки react, vue, angular, так и бэкенда (серверной части, обработка 236 | запросов от пользователя) используя PHP, Java EE / Spring, JSP. 237 | 238 | > [!IMPORTANT] 239 | > Не забывайте согласовывать требования с вашим практиком. Если в выполненной 240 | > лабораторной что-то отличается от того, что говорит ВАШ практик - это 241 | > нормально. Адаптируйтесь, на работе очень пригодится. 242 | 243 | Теперь рассмотрим каждую лабораторную отдельно, кратко опишем основные моменты, 244 | чтобы было понятно что вас ждёт и на что стоит обратить внимание: 245 | 246 | ## Лабораторная 1 (веб) 247 | 248 | > (HTML + CSS + JS) + (PHP) 249 | 250 | Надо сверстать простой сайтик, назначение которого - небольшая игра. Попал ты 251 | точкой в координатную плоскость или промахнулся. 252 | 253 | [-> Подробное описание с выполненным вариантом](https://github.com/worthant/simple-one-page-website/blob/726cfdd610064b9f9260f41cf24b76f1cd568005/README_RU.md) 254 | [-> Гайд на деплой, теор.вопросы se.ifmo](https://docs.google.com/document/u/0/d/13eAoOwDXg1enr3eFeawcM76AAhufZljDA4XYcNYAyDg/mobilebasic) 255 | [-> Гайд на поднятие httpd сервера на helios](./WEB/guide-httpd.pdf) 256 | 257 | > Имхо: ничего зазорного в чтении гайда для educational purposes нету. Но лучше 258 | > не опирайтесь на то, что в нём написано - перепроверяйте информацию и сами всё 259 | > ресёрчите. Условный MDN docs более авторитетен :D 260 | 261 | TODO: добавить showcase - гифку 262 | 263 | - _Кратко то, что нужно сделать_: Рисуем график, табличку, а в заголовке сайта 264 | пишем своё ФИО, по нажатию отправляем запрос на PHP веб-сервер с координатами 265 | тыка, а сервер проверяет попадание и возвращает ответ. По сути в лабе 266 | требуется полный SSR, т.е. веб-сервер должен вернуть табличку, или строчку в 267 | таблице. Как практика норм, но это оверхед на ровном месте, поэтому если 268 | практик позволит, можете просто вернуть с сервера json {координаты + 269 | true/false}, а потом на клиентской части с помощью javascript это удобно 270 | отрисовать. Это спойлер, потому что в последующих лабах так и будете делать. 271 | 272 | ## Лабораторная 2 (веб) 273 | 274 | > (HTML + CSS + JS) + (Servlets + JSP) 275 | 276 | [-> Защищённая на фулл лаба (RU/EN): 277 | = гифка для демонстрации, 278 | = деплой лабораторной, 279 | = разбор теории и сылки на полезные материалы, 280 | = выполненный вариант](https://github.com/worthant/MVC-GeoValidator/tree/868f30f3819a3120080d0e98daae65f6048466e9) 281 | 282 | ## Лабораторная 3 (веб) 283 | 284 | > (CSS + JSF) + (JSF) + (ORM: Hibernate/Eclipse Link) 285 | 286 | JSF - зло, намучаетесь жесть. Если повезёт и аккуратно пройдёте по протоптанной 287 | дорожке, то лаба делается супер-быстро. Зло в том что это старый фуллстак 288 | фреймворк для веб-приложений. Лютое легаси, отвратительные доки, половина 289 | встроенных вещей может просто не работать, потому что так надо и их придётся 290 | обходить костыльными путями - будут конфликты устаревших версий пакетов, 291 | рандомные ошибки и всё тому прочее. Материалы ниже были созданы в попытках 292 | сохранить драгоценное время и нервы студентов: 293 | 294 | [-> Видос с демонстрацией ёбнутой лабы (если есть много свободного времени)](https://www.youtube.com/watch?v=ny15aofvGCI&feature=youtu.be) 295 | [-> Полностью задокументированный рабочий шаблон для быстрого старта](https://github.com/worthant/web3-jsf-eclipselink-template) 296 | [-> Защищённая на фулл лаба (RU/EN): 297 | = легко поднять в докере / гайд деплоя на гелиос 298 | = ссылки на разбор теории + полезные материалы 299 | = описание / требования](https://github.com/worthant/interactive-graph-ui) 300 | 301 | > [!IMPORTANT] 302 | > Имхо: вообще неважно как вы тут выкрутитесь - главное найдите способ завести 303 | > лабу, и сделайте так чтобы было очень сложно её положить. Если этого 304 | > добьётесь - лаба сдана, больше ничего не надо. Чем меньше придётся работать с 305 | > этим говном - тем лучше :) 306 | 307 | ## Лабораторная 4 (веб) 308 | 309 | > (React/Vue/Angular) + (Spring/Jakarta EE) + (Hibernate/Eclipse Link) 310 | 311 | Кто бы что ни говорил, тут всё равно что вам попадётся - лаба приятная, потому 312 | что относительно новые фреймворки, нет конфликтов зависимостей и вас никто не 313 | будет ограничивать. А также у многих практиков можно выпросить желаемый стэк. И 314 | если фронтовый фреймворк достаточно просто, то на бэке могут дать Java EE и 315 | сказать что всё, иди пиши :) 316 | 317 | [-> Демонстрация конченной лабы, если у вас нет личной жизни 318 | (все ссылки на исходники в описании)](https://www.youtube.com/watch?v=u1tMPwoMX9M) 319 | 320 | Имхо: неважно у вас Java EE / Spring. Многим нравится спринг потому что он 321 | простенький, и потому что на нём работы много. Я писал на Java EE, и хоть 322 | сначала и плевался, со временем понял что фреймворк буквально проще спринга во 323 | всём, и в этом его огромное преимущество. Придётся ручками написать большую 324 | часть бэка, но это компенсируется тем что Java EE простая как пробка и в отличие 325 | от спринга - на защите вам тоже должно быть сильно легче. 326 | 327 | > [!IMPORTANT] 328 | > Учтите, что всех ждёт рубежка, на которой может попасться как java EE, так и 329 | > Spring и любой фронтовый фреймворк, поэтому учить надо в любом случае всё, 330 | > даже если практик будет вас спрашивать лояльно. Поэтому при написании лабы на 331 | > Java EE, Spring MVC никто не отменял :D 332 | 333 | ### Деплой лабораторной 4 (веб) 334 | 335 | Способов на самом деле много, я делал хостинг фронта на github pages и бэка на 336 | гелиосе, а сайт был доступен через мой домен. Поэтому domain.com/api форвардился 337 | на гелиос, а domain.com показывал фронт сайта, который раздавался бесплатным 338 | хостингом github pages. Это сложный варик, но мне его одобрил практик. Бэк надо 339 | в любом случае хостить на гелиосе - это дурацкое требование, но оно есть и 340 | никуда вы не денетесь, учитите. 341 | 342 | TODO тут надо написать про vite, npm, относительные пути, чтоб лаба работала на 343 | se.ifmo, по-хорошему и другие сборщики в единый index.html файл 344 | 345 | ## Рубежка (веб) 346 | 347 | TODO: ссылки на разборы рубежки, вопросы и варики рубежки 348 | 349 | # Теория вероятностей 350 | 351 | Курс теорвера представляет собой написания КР, небольших лаб. Основные темы: 352 | Среднеквадратическое отклонение, Дисперсия, Математическое ожидание, коэффициент 353 | стьюдента, проверка нулевой гипотезы и тд. Рекомендую делать решаторы так как в 354 | следующем семе будет всё буквально то же самое на курсе матстата. Курс ведут два 355 | преподавателя: Селина и Кудашов, так что ваше обучение зависит от того к кому 356 | ваша группа попадёт 357 | 358 | ## Селина (теорвер) 359 | 360 | С долгами лучше не оставаться и как следствие пропускать пары, так как в 361 | противном случае придётся сдавать лабораторные вместе со всем потомком и 362 | очередью из 100+ человек, в то время как скорость очереди около 10-15 минут на 363 | человека. На лекции можно не ходить, так как они добавляют не значительные 3 364 | балла, которые по сути бесполезны, так как закрывая все ключевые точки вовремя 365 | вы с большой долей вероятности получите зачёт. 366 | 367 | TODO возможно доделать описание, добавить ссылки на сливы кр, эксель 368 | таблички-решаторы лаб, в идеале наверное вспомнить все лабы и написать их список 369 | 370 | ## Кудашов (теорвер) 371 | 372 | Прикольный чел, забавный. К нему лучше приходить с хорошим настроением и немного 373 | подготовленным, чтобы выходить к доске, отвечая на достаточно простые вопросы и 374 | получая плюсики. Если будете чуть готовиться к каждой паре, курс пиво, но учтите 375 | что лучше всю теорию хоть немного понимать, потому что потом будет мат.стат, как 376 | и было сказано выше. 377 | 378 | # Математика (базовый уровень) 379 | 380 | TODO тут если честно не знаю что писать и надо ли, учитывая что у нас другая 381 | математика нежели у них. // тру, пока так оставим 382 | 383 | # Языки программирования 384 | 385 | Тяжелый предмет. Дистанционный. Антиплагиат. Требует написания программ на 386 | ассемблере и С. Так же требуется небольшие знания `Git` (`GitLab`) 387 | 388 | TODO найти гайд по регистрации на гитлабе // камон бля, зайти на сайт, ввести 389 | логин/пароль 390 | 391 | TODO найти гайд по установки виртуалки // проще по факту прийти на первый 392 | семинар и всё поставить, он лютое пиво 393 | 394 | > [!IMPORTANT] 395 | > Лично я рекомендую поставить заранее линукс на дуал бут, потому что курс 396 | > супер-интересный, семинары не сложные и вас всему научат и если что помогут, 397 | > пользоваться линуксом, если стоят условные KDE/Gnome/другие гуи не сложно, но 398 | > работать на семинарах будет сильно приятнее. Рекомендую поставить linux fedora 399 | > и проблем вообще не должно быть, с убунтой будьте аккуратны, были у кого-то 400 | > проблемы на последних семинарах. Если хотите пуститься во все тяжкие - ставьте 401 | > neovim, в нём есть [классный дебаггер](https://github.com/worthant/nvim) 402 | 403 | TODO Возможно не требуется разбития на лабы здесь, так как всю нужную информацию 404 | можно найти на гитлабе, где и стырить лабу у другого студента // В целом 405 | согласен, можно написать что этот курс даёт дохрена крутых возможностей - от 406 | навыков код ревью до работы на низком уровне с программами и их дебагом. Но 407 | описания лаб как будто бы за нас Жирков лучше сделал 408 | 409 | ## Лабораторная 1 (ЯП(ы)) 410 | 411 | Input/Output library in assembly 412 | 413 | ## Лабораторная 2 (ЯП(ы)) 414 | 415 | Dictionary in assembly 416 | 417 | ## Лабораторная 3 (ЯП(ы)) 418 | 419 | Image rotation 420 | 421 | ## Лабораторная 4 (ЯП(ы)) 422 | 423 | Memory allocator 424 | 425 | ## Лабораторная 5 (ЯП(ы)) 426 | 427 | Sepia filter + ускорение через SSE инструкции 428 | 429 | # Физика 430 | 431 | ## ИВТ 432 | 433 | Пока кратко - оба семестра нереально пивные. Больше всего баллов приносит работа 434 | на практиках, которая интересная и не особо замысловатая, а также ответы на 435 | вопросы на лекциях. 436 | 437 | ### Описание 438 | 439 | Имхо: курс по уровню сложности ниже чем у многих было в школе, но на него 440 | интересно ходить, потому что это простые применения физики в реальной жизни - 441 | закрепите что уже знаете, либо изучите что-то новое. Отдельно было весело во 442 | втором семестре моделировать векторные поля для различных ситуаций, например 443 | нагреве фигуры необычной формы, физический смысл ротора и дивергенции на примере 444 | течений и завихрений в озёрах с проточным течением. Будет связь с музыкой и 445 | задачки на колебания, обычные задачки на грузики на пружинках, лекции про 446 | разработку промышленных устройств, будете готовить доклады про выбранные 447 | устройства или технологии. На лекциях частенько будет демонстрация физических 448 | опытов, поэтому рекомендую ходить просто ради интереса. 449 | 450 | ### Рубежка 451 | 452 | Стот мало баллов. Если хорошо решите, ну может 5 баллов поставят, но по сути 453 | можно скипать или не писать и вообще побоку, экз всё решает в любом случае 454 | потому что весит 40 баллов. Задачи из рубежки - те же задачи с практик + 455 | дополнительные. Половина минимум из рубежки будет в экзамене. 456 | 457 | ### Экзамен 458 | 459 | > [!IMPORTANT] 460 | > на практиках будете решать задачи - они не сложные, но рекомендую все 461 | > конспектировать и разбирать, потому что потому 1 в 1 будут на экзамене. 462 | 463 | Экз - просто билеты заботайте и пиво. Их не мало, но и не сильно много, половина 464 | как минимум скорее всего уже есть в голове со школы. Сначала получаете одну 465 | задачу из обязательного списка и решаете её перед преподом. Это задачи которые 466 | вы решали на практике, и они будут ещё раз разобраны накануне самого экзамена, 467 | поэтому просто не проморгайте и допуск к экзамену у вас в кармане. Затем вам 468 | дадут уже нормальные задачи и будете сидеть их решать. Как решите - тяните 469 | теор.билет, или сам препод вам его называет и потом его рассказываете. Обычный 470 | экз, достаточно простой. 471 | 472 | ## СППО 473 | 474 | // алёёёёё гайз 475 | 476 | # Алгоритмы и структуры данных 477 | 478 | Пока напишу коротко, как наполнение: 479 | 480 | Все лекции в записи, будут лежать на диске. Материал лекций классный, многому 481 | научит, особенно тех, кто так себе шарит за алгосы и хочет научиться. 482 | 483 | Закрыться на 3 можно с закрытыми глазами, без рук и вообще доступа в интернет. 484 | На 4C надо решить 14 из 16 задач с Яндекс контеста. Даже если вы очень слабый 485 | студент - не переживайте. Есть задачи которые заставят поломать мозг, может даже 486 | неделю с лишним, но у вас весь семестр, а задач надо всего 14. Часть из них 487 | вообще не на алгосы, а на умение разрабатывать свой язык из курса АК (привет 488 | задача на написание менеджера памяти и на парсер). 489 | 490 | # Архитектура компьютера 491 | 492 | > [!NOTE] Формат курса может отличаться от года к году 493 | 494 | > [!WARNING] 495 | > Не относитесь халатно к этому курсу, не пропускайте дедлайнов и согласовывайте 496 | > темы докладов заранее. Может прозвучать душно, но потом просто не будет дороги 497 | > назад и вы окажетесь в очень неприятной ситуации, которую можно было бы 498 | > избежать, не применив слишком много усилий 499 | 500 | Один из самых крутых курсов с точки зрения образования. Весь курс онлайн. 501 | 502 | ### 1 лаба, семинары 503 | 504 | Делаете доклад по теме (не обязательно прям по темам лекций), защищаете, ходите 505 | на другие семинары к другим, задаете вопросики. 506 | 507 | ### 2 лаба, эссе 508 | 509 | Пишете эссе по статье, ревьюите другим, скорее формальность, чем работа. 510 | 511 | ### 3 лаба, архитектуры, схема 512 | 513 | Написаны эмуляторы нескольких архутектур 514 | ([wrench](https://wrench.edu.swampbuds.me/submit-form)), пишете по вариантам 515 | алгоритм на местном ассемблере, защищаете (1 арх-а за подход). По варианту надо 516 | нарисовать схему процессора. Сложность выполнения зависит от попавшихся 517 | вариантов, но в любом случае не запредельна. 518 | 519 | ### 4 лаба, эксперимент 520 | 521 | Разрабатываете по варианту кастомный язык, пишете для него транслятор и 522 | процессор на любом языке. Полезно, но сильно сложнее и объемнее других лаб 523 | 524 | --- 525 | 526 | Для комфортного закрытия вот несколько советов: 527 | 528 | - Сдавайте лабы как можно раньше (иначе может произойти ряд приколов) 529 | - Вначале сема принимают практики студенты, очередей нет (5-6 челвоек на 530 | полтора часа), им проще сдать 531 | - Вас могут покрасить в журнале (можно сдавать лабы только конкретному 532 | преподу), обычно это делает Пенской, а ему сдавать работы заметно менее 533 | комфортно 534 | - Под конец семестра на сдачи будут гарантированные очереди (50-150 человек) 535 | - Под конец сема приоритет предоставляется людям, сдающим 4 лабу (но 4 лаба не 536 | обязательно КТ, а вот 3-я - да). Среднее время проверки одного человека с 4 537 | лабой - 20-30 мин 538 | - Количество занятий для сдачи лаб не установлено явно (под сессию их обычно 539 | добавляют, но на деле вам ничего не гарантированно). 540 | - Не тяните с выбором между лабой 1 (семинары) или 4 (эксперимент, своя модель 541 | проца и транслятора) 542 | - Требуемое на выполнение 4 лабы время сильно зависит от варианта. Если 543 | попался asm+stack то можно сделать +- 1к строк, если же попался alg язык 544 | (js-like) то вам придется писать чуть ли не компилятор (ближе к 3к строк и 545 | более) 546 | - 1 лабу можно сдавать только в основное время семестра (без сессии) 547 | - 1 лабу сдавать сильно проще (делаете доклад, защищаете, вопросики другим 548 | задаете), но 4 лаба позволяет гораздо глубже понять, что вообще твориться в 549 | процессорах и трансляторах 550 | - Посмотрите лекции 551 | - Есть все записи, и пенек их неплохо читает (на скорости x1.5+) 552 | - На защите Пенской хочет слышать именно то, о чем там говорится (особенно про 553 | схемотехнику), он почти не воспринимает то, что вы говорите ему это теми же 554 | словами или слегка сложнее 555 | 556 | Если организуетесь, не пропустите дедлайны, всё будете делать в срок и хорошо, 557 | то курс спокойно закрывается на 3-4 без экза. 558 | 559 | # Вычислительная математика 560 | 561 | Курс +- пивной. Это не алгосы, АК или ОПИ. Но времени займёт предостаточно, а 562 | если будете сильно нарушать дедлайны то можно и проблем огрести в конце сема, не 563 | советую. 564 | 565 | Надо сделать 5 лаб и написать 2 рубежки. Если закрываете все лабы до какого-то 566 | дедлайна, у нас было до мая, тогда всё остальное автоматом. 567 | 568 | > [!NOTE] 569 | > Как обычно вместо личной жизни я ёбнулся, поэтому 570 | > [вот вам репа](https://github.com/Imtjl/computational-maths). Все лабы я делал 571 | > в латехе, поэтому шаблоны легко взаимозаменяемы, а вот код писал на плюсах, 572 | > тут уже на любителя. 573 | 574 | Каждая лаба это какой-то вычислительный метод - его нужно заботать, нарисовать 575 | диаграмку последовательности, которая будет полноценно описывать работу метода, 576 | а также его запрограммировать и подготовить хороший отчёт. За все маленькие 577 | помарки снижают баллы, но даже если вам по 50% будут снимать - их хватит :) 578 | 579 | Лабы по вариантам, но методов буквально по пальцам пересчитать, поэтому вам 580 | точно будут попадаться одинаковые половине группы. 581 | 582 | > [!WARNING] 583 | > На курсе есть антиплагиат и если вас за это уличат, то поминай как звали. 584 | > Поэтому все эти материалы строго для первичного ознакомления в образовательных 585 | > целях - копировать и вставлять не думая не стоит. Но переиспользовать для себя 586 | > можно :) 587 | 588 | # Математическая статистика 589 | 590 | # Методы оптимизации 591 | 592 | ## Селина 593 | 594 | **1 лаба** - пишете на первой праке работку 595 | 596 | **2, 3, 4 лаба** - алгоритмы оптимизации 597 | 598 | **5 лаба** - симплекс-метод 599 | 600 | **6 лаба** - генетический алгоритм 601 | 602 | **ДЗ (1+2 ргр)** - транспортная задача, еще симплекс метод 603 | 604 | --- 605 | 606 | - Все что расходится с ее лекциями, не принимается, даже если по факту это то же 607 | самое (shout out метод половинного деления) 608 | - Смотрите слайды лекций, делайте, объясняйте как в них 609 | - В лабах в коде проверяет обычно только условия остановки (не реализацию, а 610 | наличие) 611 | - Не пропускайте праки, они расчитаны впритык чтобы сдать лабы с первого раза 612 | - Досдавать можно или на лекциях, или на консультациях, они раз в неделю (смотри 613 | расписание консультаций селиной в ису), в мае их обычно больше (но места 614 | ограничиваются по записи), на сессии их обычно не больше 2 615 | - Не отлетайте на допсу - гемор 616 | - Кр пишутся на лекции, задания присылаются в ису, пишете с компами, задания 617 | обычно не меняются, вариант по номеру ису, перепись на праках другой группы 618 | 619 | Селина в целом противная, так что запаситесь терпением и не филоньте (сэкономите 620 | время и силы), на деле материал легкий 621 | 622 | # Основы программной инженерии 623 | 624 | # Техники публичных выступлений 625 | 626 | # Особая благодарность 627 | 628 | - \ 629 | - worthant 630 | - TsenekovIT 631 | --------------------------------------------------------------------------------